The examples of commands we've seen so far have included all the information needed to execute the checks as command-line options, for example, specifying the host address for
check_ping or the HTTP port for
check_http. An alternative way to get the information required to execute checks is via environment variables. While this isn't enabled by default, it's a method of providing a large amount of context information to a plugin that may save some configuration effort. However, it's only suitable for specialized applications of Nagios Core and, because it's resource intensive, it may not scale very well, meaning it could be unsuitable for very busy Nagios Core servers.
In this example, we'll enable environment macros and then write a short wrapper script for
check_ping that reads the address to PING from its executing environment, rather than from a command-line option.