Dynamically building host definitions
In this recipe, we'll learn one possible method of building Nagios configuration dynamically, to avoid having to compose or copy-paste a lot of directives for new hosts or services. In other words, this recipe is about generating configuration using templates.
To demonstrate how this is useful, we'll use the m4
macro language utility, which should be available on virtually any UNIX-like system, including GNU/Linux and BSD. As a tool designed for macro expansion, m4
is particularly well-suited to creating verbose plain text configuration files such as the ones used by Nagios Core.
The principles here should apply just as easily to your favored programming or templating language, perhaps Python or Perl, or shell scripts.
Getting ready
You will need to have the m4
macro language tool available to you, preferably but not necessarily on the same system as the one running Nagios Core. It is a very standard tool and should be already installed, or available as...