[naemon-users] Naemon macros as environment

Max Sikström max.sikstrom at op5.com
Thu Mar 19 08:59:42 CET 2015

The resoning is totally valid, that you should add the variables as you do

However, since naemon tries to execute the command line as fast as
possible, it tries to determine if the command line is complex or not, thus
if it is complex, it should start it thorugh a shell. Otherwise it starts
it directly through execvp (or similar).

In your case, it looks like you just have: VAR="value" command, and no
environment variables or such.

Looking at the source, there should be a couple of ways to trigger the
complext-command-line-criteria if outside quotes:

 - Add a random environment variable as an extra argument, if that should
work (a $ sign in the command line, after macros is expanded)
 - the characters ; and | (potential job control)
 - the characters * and ? (potential wildcards)
 - parenthesis
 - &

I suggest trying to add a ;, since that shouldn't really affect anything,
if nagios can handle that. It can at least be added as a $USERn$-variable,
and then append that USER-vairable to the command line.

Also: File a bug report to the github page, since this is a potential bug.

Best Regards,
Max Sikström

On Wed, Mar 18, 2015 at 10:25 PM, Magnus <magnus at boden.cx> wrote:

>  Hello,
> I run nagios for a few organisations and write a lot of plugins myself for
> checkpoint firewalls and other networking equipment.
> My plugins rely on some macros to be available as environment variables
> and I just switched my first nagios qa environment to naemon which was
> pretty smooth except for the macro part.
> I found in the documentation of naemon (
> http://www.naemon.org/documentation/usersguide/macros.html) that I should
> specify my macros in the command and I understand the logic behind not
> evaluating all macros:
> define command {
>     command_name    my_old_notification_script
>     command_line    NAGIOS_HOSTNAME="$HOSTNAME$" /usr/local/bin/notifiy.pl
> ...
> }
> But this doesnt work for me when my plugin is run naemon says this on the
> service output.
> (No output on stdout) stderr: execvp(NAEMON_HOSTNAME=SC_cswitch01, ...)
> failed. errno is 2: No such file or directory
> Is there something wrong with my setup or is the documentation wrong?
> define host {
>     host_name       linuxbox
>     address
>     _MACADDRESS     00:01:02:03:04:05
>     ...
> }
> Also it would be great if at least the custom macros could be made
> available as environment variables. They will never be many so I think from
> a performance standpoint they should not cause to much overhead. Are they
> available as environment variables now?
> Thanks for all the hard work you put into this and I really appreciate
> naemon which I anticipate will have a much faster development rate than
> nagios and already includes more modern components than nagios-core (like
> thruk and livestatus).
> Best Regards
> Magnus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.monitoring-lists.org/archive/naemon-users/attachments/20150319/fe92e597/attachment.html>

More information about the Naemon-users mailing list