Xymon Mailing List Archive search

Xymon notifcations disappear due to base64 encoding

list Mark Felder
Thu, 05 Feb 2015 07:40:13 -0600
Message-Id: <user-87da3e200d10@xymon.invalid>


On Wed, Feb 4, 2015, at 19:05, Benjamin Smith wrote:
We've wasted time playing with a wrapper for the mail command that would
strip 
out the "\r" in the alerts but this has, so far, proven fruitless.
Messages 
sent via the Sprint SMS gateway go through just fine. Wondering if
anybody else 
has seen this issue, or has any idea what the best way to handle it might
be? 
I warn you this (probably) isn't exactly what you're looking for, but
I've stopped using the SMS email gateways due to reliability issues and
when things are really going bad -- rate limiting. Instead I've moved to
sending my notifications through Pushover.net which sends (fast!!) push
notifications to phones.

You can send messages two ways: their email gateway, or write a
notification script that uses their REST api. It's very simple. I wrote
this in a few minutes and haven't looked back.


#!/bin/sh

# Xymon env notes:

# BBCOLORLEVEL  The current color of the status
# BBALPHAMSG    The full text of the status log triggering the alert
# ACKCODE       The "cookie" that can be used to acknowledge the alert
# RCPT  The recipient, from the SCRIPT entry
# BBHOSTNAME    The name of the host that the alert is about
# MACHIP        The IP-address of the host that has a problem
# BBSVCNAME     The name of the service that the alert is about
# BBSVCNUM      The numeric code for the service. From SVCCODES
definition.
# BBHOSTSVC     HOSTNAME.SERVICE that the alert is about.
# BBHOSTSVCCOMMAS       As BBHOSTSVC, but dots in the hostname replaced
with commas
# BBNUMERIC     A 22-digit number made by BBSVCNUM, MACHIP and ACKCODE.
# RECOVERED     Is "1" if the service has recovered.
# DOWNSECS      Number of seconds the service has been down.
# DOWNSECSMSG   When recovered, holds the text "Event duration : N"
where N is the DOWNSECS value.

APIKEY="your api key here"
USERKEY="your user key here"
CURL="/usr/local/bin/curl"
URL="https://api.pushover.net/1/messages.json";

# Don't show an ack code if it's 0 (recovered)
[ ${ACKCODE} != 0 ] && ACK="[${ACKCODE}]"
# vm.feld.me:procs red [45595]
MESSAGE=$(cat <<EOF
${BBHOSTNAME}:${BBSVCNAME} ${BBCOLORLEVEL} ${ACK}

See
${XYMONWEBHOST}/cgi-bin/svcstatus.sh?HOST=${BBHOSTNAME}&SERVICE=${BBSVCNAME}
EOF
)

${CURL} -q -s --form-string "token=${APIKEY}" --form-string
"user=${USERKEY}" --form-string "message=${MESSAGE}" ${URL} 1>/dev/null
2>>/var/log/xymon/alert.log