Hi again,
I use $MONIT_SERVICE and $MONIT_EVENT only.
The first step is I try to get the sys_id based on the resource name
($MONIT_SERVICE), then I update the table field ($MONIT_EVENT).

The used $MONIT_SERVICE names are unique, this is the reason I can use
the names.

# ServiceNow init.
SNCMD="curl"
SNLOG="../../logs/servnow.log"
SNURL='https://myinstance.service-now.intern/api/now/table/'
:
# Get the used sys_id
# {"result":[{"sys_id":"ca83c3816f054b0027e0cc60cb1f4e8e"}]}
      data='/table_name'
      data=$data'?sysparm_query=name='"${$MONIT_SERVICE}"
      data=$data'&sysparm_fields=sys_id'
      data=$data'&sysparm_limit=1"'
      data=$data' --request GET'
      data=$data' --insecure --user "user":"password"'
      data=$data' --silent --show-error'

      echo ${SNCMD} '"'"${SNURL}${data}" >> ${SNLOG} 2>&1
      result=`${SNCMD} '"'"${SNURL}${data}" >> ${SNLOG} 2>&1`

      sysid=`echo "$result" | sed -n -e 's/.*{"sys_id":"\(.*\)"}.*/\1/p'`
      if [ -n "$sysid" ]; then
        data='/table_name/'"${sysid}"
        data=$data'?sysparm_display_value=true'
        data=$data'&sysparm_exclude_reference_link=true'
        data=$data'&sysparm_fields=name%2Cmonit_event"'
        data=$data' --request PUT --header "Accept:application/json"'
        data=$data' --header "Content-Type:application/json"'
        data=$data' --data "{\"monit_event\":\"'"${$MONIT_EVENT}"'\"}"'
        data=$data' --insecure --user "user":"password"'
        data=$data' --silent --show-error'

# ServiceNow call.
        echo ${SNCMD} '"'"${SNURL}${data}" >> ${SNLOG} 2>&1
        result=`${SNCMD} '"'"${SNURL}${data}" >> ${SNLOG} 2>&1`
        rc=$(($rc + $?))
      fi

This is a snipped of the whole code only.
To get the status from monit I add an additional "not exist" rule to the
check process statements.

check process Manager with pidfile "/var/run/em.pid"
:
if not exist then restart
if not exist then exec "/usr/local/monit/scripts/servnow.sh"
   else if succeeded then exec "/usr/local/monit/scripts/servnow.sh"

On the other hand, M/Monit is useful to get some more status information
more easy.

A suggestion only,
Lutz


-- 
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general

Reply via email to