Page 2 of 2

Re: Error with custom service macros and event handling.

Posted: Wed Mar 12, 2014 2:26 pm
by abrist
Have you considered using the $SERVICEPROBLEMID$ and $HOSTPROBLEMID$ in nagios for tracking? These are unique numbers that track problems internally in nagios.
http://nagios.sourceforge.net/docs/3_0/macrolist.html

Re: Error with custom service macros and event handling.

Posted: Wed Mar 12, 2014 3:39 pm
by j1johnson
Well, progress has been made!

Here are the services:

Code: Select all

        _SERVICE                restart_sw114
        _CLASSIFICATIONID       SC_WORKFLOW_PORTAL
        _HIERARCHYPATH          SC_APP_SYS "\\" SC_WORKFLOW_PORTAL
        _CLASSSTRUCTUREID       5642
        _DESCRIP                'sw114 DeltaSession Manager has stopped running.'
        _FR1CODE                'Unknown - code issue.'
        _FR2CODE                'Restart standalone java process.'
        _PROBLEMCODE            'Standalone sw114 process terminated on its own.'
        _IMPACT                 3
        _INTERNALPRIORITY       4
        _REPORTEDPRIORITY       3
        _URGENCY                3
        _OWNER                  AR333
        _OWNERGROUP             WASTEAM
Here is command definition:

Code: Select all

define command {
        command_name restart-service-maximo
        command_line /usr/bin/printf "%b" "$NAGIOS_SERVICESTATE\n$NAGIOS_HOSTADDRESS\n\"$NAGIOS__SERVICECLASSIFICATIONID\"\n\"$NAGIOS__SERVICEHIERARCHYPATH\"\n\"$NAGIOS__SERVICECLASSSTRUCTUREID\"\n\"$NAGIOS__SERVICEDESCRIP\"\n\"$NAGIOS__SERVICEFR1CODE\"\n\"$NAGIOS__SERVICEFR2CODE\"\n\"$NAGIOS__SERVICEPROBLEMCODE\"\n\"$NAGIOS__SERVICEIMPACT\"\n\"$NAGIOS__SERVICEINTERNALPRIORITY\"\n\"$NAGIOS__SERVICEREPORTEDPRIORITY\"\n\"$NAGIOS__SERVICEURGENCY\"\n\"$NAGIOS__SERVICEOWNER\"\n\"$NAGIOS__SERVICEOWNERGROUP\"\n$NAGIOS_SERVICEPROBLEMID" | $USER1$/restartserviceMaximo2.sh
}
Here is the script that takes in all the variables - restartserviceMaximo2.sh

Code: Select all

#!/bin/bash

ARRAY=()
while read -r LINE
do
    ARRAY+=("$LINE")
done

SERVICESTATE=${ARRAY[0]}
HOSTADDRESS=${ARRAY[1]}
SERVICECLASSIFICATIONID=${ARRAY[2]}
HIERARCHYPATH=${ARRAY[3]}
CLASSSTRUCTUREID=${ARRAY[4]}
DESCRIPTION=${ARRAY[5]}
FR1CODE=${ARRAY[6]}
FR2CODE=${ARRAY[7]}
PROBLEMCODE=${ARRAY[8]}
IMPACT=${ARRAY[9]}
INTERNALPRIORITY=${ARRAY[10]}
REPORTEDPRIORITY=${ARRAY[11]}
URGENCY=${ARRAY[12]}
OWNER=${ARRAY[13]}
OWNERGROUP=${ARRAY[14]}
SVCPROBLEMID=${ARRAY[15]}

case "$SERVICESTATE" in
        OK)
                ;;
        WARNING)
                ;;
        UNKNOWN)
                ;;
        CRITICAL)
                echo "$SERVICESTATE $HOSTADDRESS $SERVICECLASSIFICATIONID $HIERARCHYPATH $CLASSSTRUCTUREID $DESCRIPTION $FR1CODE $FR2CODE $PROBLEMCODE $IMPACT $INTERNALPRIORITY $REPORTEDPRIORITY $URGENCY $OWNER $OWNERGROUP $SVCPROBLEMID" > /tmp/newvars2.txt
                #for LINE in "${ARRAY[@]}"
                #do
                #    echo "$LINE" >> /tmp/newvars2.txt
                #done
                ;;
esac

exit 0;
And here is the output:
CRITICAL 10.14.172.238 "SC_WORKFLOW_PORTAL" "SC_APP_SYS \ SC_WORKFLOW_PORTAL" "5642" "sw114 DeltaSession Manager has stopped running." "Unknown - code issue." "Restart standalone java process." "Standalone sw114 process terminated on its own." "3" "4" "3" "3" "AR333" "WASTEAM"
The only thing that isn't coming across is the last field in the command - $NAGIOS_SERVICEPROBLEMID. I've tried $NAGIOS_SERVICEPROBLEMID, $NAGIOS__SERVICEPROBLEMID and $SERVICEPROBLEMID and nothing is coming across. Any suggestions for getting the $SERVICEPROBLEMID to come across?

Thanks!

- Jim

Re: Error with custom service macros and event handling.

Posted: Thu Mar 13, 2014 10:58 am
by abrist
As these are built-in macros, you should be able to add them to the command like so:

Code: Select all

define command {
        command_name restart-service-maximo
        command_line /usr/bin/printf "%b" "$NAGIOS_SERVICESTATE\n$NAGIOS_HOSTADDRESS\n\"$NAGIOS__SERVICECLASSIFICATIONID\"\n\"$NAGIOS__SERVICEHIERARCHYPATH\"\n\"$NAGIOS__SERVICECLASSSTRUCTUREID\"\n\"$NAGIOS__SERVICEDESCRIP\"\n\"$NAGIOS__SERVICEFR1CODE\"\n\"$NAGIOS__SERVICEFR2CODE\"\n\"$NAGIOS__SERVICEPROBLEMCODE\"\n\"$NAGIOS__SERVICEIMPACT\"\n\"$NAGIOS__SERVICEINTERNALPRIORITY\"\n\"$NAGIOS__SERVICEREPORTEDPRIORITY\"\n\"$NAGIOS__SERVICEURGENCY\"\n\"$NAGIOS__SERVICEOWNER\"\n\"$NAGIOS__SERVICEOWNERGROUP\"\n$SERVICEPROBLEMID$" | $USER1$/restartserviceMaximo2.sh
}
Note the bookended "$": $SERVICEPROBLEMID$