ENV is now available to pull information about the host/service into the configuration
parent
7df7ea56b4
commit
7cada9d791
@ -0,0 +1,61 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
varName="novalue"
|
||||||
|
varDefault=""
|
||||||
|
myDelim=" "
|
||||||
|
myField=""
|
||||||
|
|
||||||
|
do_help() {
|
||||||
|
cat << HELP_EOF
|
||||||
|
This utility is designed to be called by the ARGx parameters of a Nagios configuration as follows:
|
||||||
|
|
||||||
|
\$\$(\$USER1\$/env -n <var> [-t <default>] [-f <field>] [-d <delim>]
|
||||||
|
|
||||||
|
Where:
|
||||||
|
|
||||||
|
var is the name of a NAGIOS_variable (see https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/macrolist.html) (case insensitive)
|
||||||
|
default is a default value if \$NAGIOS_var\$ is blank (case sensitive)
|
||||||
|
word is an awk-compatible field number (potentially to use with <delim>)
|
||||||
|
delim is an awk-compatible field delimiter (defaults to space)
|
||||||
|
|
||||||
|
The value will always be trimmed of leading and/or trailing spaces/tabs.
|
||||||
|
|
||||||
|
If -f is used, then the result will be as if the request were:
|
||||||
|
|
||||||
|
eche \$NAGIOS_var\$ | awk -F <delim> '{print $<field>}'
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.../env -n servicedesc
|
||||||
|
Will return "Root Partition" (or whatever the service check is named)
|
||||||
|
.../env -n hostName
|
||||||
|
Will return "localhost" (or whatever the name of the host is that ran the check)
|
||||||
|
.../env -n SERVICESTATE -t 0
|
||||||
|
Will return the current state of the service (0, 1, 2) or 0 if the state is not defined
|
||||||
|
.../env -n servicedesc -d : -f 2
|
||||||
|
If the service name is "MySQL Check: myDatabase" then it will return "myDatabase" (trimmed)
|
||||||
|
|
||||||
|
HELP_EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
case "$1" in
|
||||||
|
-n) varName=`echo "NAGIOS_$2" | tr "a-z" "A-Z"`; shift 2;;
|
||||||
|
-t) varDefault="$2"; shift 2;;
|
||||||
|
-d) myDelim="$2"; shift 2;;
|
||||||
|
-f) myField="$2"; shift 2;;
|
||||||
|
*) shift 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# If we don't have a config file, then we don't have variables
|
||||||
|
if [ -f "$NAGIOS_MAINCONFIGFILE" ]; then
|
||||||
|
varValue="${!varName}"
|
||||||
|
[ -n "$varValue" -a -n "$myField" ] && varValue=`echo "$varValue" | awk -F "$myDelim" --assign f="$myField" '{print $f}'`
|
||||||
|
fi
|
||||||
|
[ -z "$varValue" ] && varValue="$varDefault"
|
||||||
|
varValue=`echo $varValue | sed -e "s/^[ \t]*//" -e "s/[ \t]*$//"`
|
||||||
|
|
||||||
|
echo "$varValue"
|
||||||
|
|
||||||
|
exit 0
|
||||||
Loading…
Reference in New Issue