The custom variables allow you to include your own directives when defining objects. These can then be used in commands. This allows you to define objects in a more concise way, and define service checks in a more general fashion.
The idea is that you define directives that are not standard Nagios parameters in host, service, or contact objects, and they can be accessed from all commands, such as check commands, notifications, and event handlers. This is very useful for complex Nagios configurations where you might want commands to perform nontrivial tasks for which they will require additional information.
Let's assume we want Nagios to check that the hosts have correct MAC addresses. We can then define a service once and use that custom variable for the
check command. When defining an object, a custom variable needs to be prefixed with an underscore and written in uppercase.
The custom variables are accessible as the following macros: