Custom Variable speical character handling in 3.0.2+


#1

I am experimenting on upgrading from 3.0.1 to 3.0.5. I am seeing some differences in how custom variable text is handled specifically relating to quotes, dollar sign and pipes ( " $ | ). This is causing my configuration to break. I am using the same configuration files in Nagios 3.0.1, 3.0.2, and 3.0.5. It appears the results are the same for 3.0.2 and 3.0.5, so it looks like this change was in 3.0.2.

Quotes used to be passed as part of the custom variable. It appears the are no longer … Is this one of the changes made in 3.0.2? I found a workaround for this put a \ before the space in the string. Any other ways to do this?

pipes and $ look like they are being removed from custom variables. Is there a way to get them to pass again? I use them to pass a regex string to check_snmp_storage

Here are the custom variables I am using and the resulting output. Code is below

_WEB_FLAGS -s "IIS\ running"
On nagios versions 3.0.2 and 3.0.5 debug shows

On nagios version 3.0.1 debug shows

[1230149428.619806] [2048.1] [pid=21236] Done. Final output: '/appdata0/nagios/libexec/check_http -t 20 -H gv-adm-chgear -f follow -u /nagios.html -s "IIS running"'

_DISK_EXPR "^/$|/var$|/tmp|/appdata0$|/usr$|/home$"
On nagios versions 3.0.2 and 3.0.5 debug shows

[1230149975.454811] [2048.1] [pid=21236] Done. Final output: '/appdata0/nagios/libexec/check_snmp_storage.pl -H gv-adm-con1 -C xxxxxx -2 -q FixedDisk -m "^//var/tmp/appdata0/usr/home" -w 90 -c 95 -G -S1 -t 20'
On nagios version 3.0.1 debug shows [1230150137.232683] [2048.1] [pid=21662] Done. Final output: '/appdata0/nagios/libexec/check_snmp_storage.pl -H gv-adm-con1 -C xxxxxx -2 -q FixedDisk -m "^/$|/var$|/tmp|/appdata0$|/usr$|/home$" -w 90 -c 95 -G -S1 -t 20'

Here is the code behind:

[code]define host{
host_name gv-adm-chgear
alias gv-adm-chgear
address gv-adm-chgear
hostgroups +gv-win,gv-http
use prod,win-server
_WEB_URI /nagios.html
_WEB_FLAGS -s “IIS\ running”
}

define service{
hostgroup_name gv-http
register 1
use notify-sysadmin,check-http
}

define service{
name check-http
service_description HTTP
notification_options w,u,c,r
check_command check_http!$_HOSTWEB_URI$!$_HOSTWEB_FLAGS$
use generic-service
notes Checking $HOSTADDRESS$$_HOSTWEB_URI$ with flags: $_HOSTWEB_FLAGS$
register 0
}
define command{
command_name check_http
command_line $USER1$/check_http -t 20 -H $HOSTADDRESS$ -f follow -u $ARG1$ $ARG2$
}

define host{
host_name gv-adm-con1
alias Daisy, IM, Cacti
address gv-adm-con1
hostgroups +gv-linux
use gv,prod,linux-server
_SNMP xxxxxx
_DISK_EXPR ^/$|/var$|/tmp|/appdata0$|/usr$|/home$
_DISK_FLAG -G -S1
notes On gv-adm-con1. If alerts, first try service daisy restart
}

define service{
hostgroup_name gv-linux
use notify-sysadmin,check-disk-os
register 1
}
define service{
name check-disk-os
service_description DISK-OS
check_command check_snmp_disk!$_HOSTSNMP$!$_HOSTDISK_EXPR$!$_HOSTDISK_WARN$!$_HOSTDISK_CRIT$!$_HOSTDISK_FLAG$!$_HOSTSNMP_OPT$
use check-unix
register 0
notes Warn/Crit: $_HOSTDISK_WARN$/$_HOSTDISK_CRIT$ Disk expr: $_HOSTDISK_EXPR$
}
define command{
command_name check_snmp_disk
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C $ARG1$ -2 -q FixedDisk -m “$ARG2$” -w $ARG3$ -c $ARG4$ $ARG5$ $ARG6$
}

[/code]