Defining macros in a resource file
In this recipe, we'll learn how to define
custom user macros in resource files. This is good practice for strings used in check_command
definitions or other directives that are shared by more than one host or service. For example, in lieu of writing the full path in a command_name
directive as follows:
command_name=/usr/local/nagios/libexec/check_ssh $HOSTADDRESS$
We could instead write:
command_name=$USER1$/check_ssh $HOSTADDRESS$
As a result, if the location of the check_ssh
script changes, we only need to change the value of $USER1$
in the appropriate resource file to update all of its uses throughout the configuration.
Most of the macros in Nagios Core are defined automatically by the monitoring server, but up to 32 user-defined macros can be used as well, in the form $USERn$
.
Getting ready
You will need to have a server running Nagios Core 3.0 or later, and have access to the command line to change its configuration, in particular the resource.cfg
file.
In...