Xymon Mailing List Archive search

blank recovered sms alerts on mail

list Deepak Deore
Sun, 9 Jun 2013 22:42:33 +0530
Message-Id: <CABpN7iQeiWjOHVQfJiTY2d1PSg8zqc=user-1a69d294d266@xymon.invalid>

Bill, thanks a lot for the code. I made few changes in this code as per my
requirement and mail command was not working with this. Also Recovered
BBCOLORLEVEL was always red. So made that change as well. Here is my script
here if anyone else needs this.

#!/bin/bash

TO="$RCPT"

NOTICE=`echo "$BBALPHAMSG" | grep " INFO"`
if [ ! -z "$NOTICE" ]; then
        EVENT=`echo "$BBALPHAMSG" | grep "Monitoring of"`
        REASON=`echo "$BBALPHAMSG" | grep "Reason:" | cut -d':' -f2-`
        if [ -z "$REASON" ]; then
                MSG="$EVENT"
        else
                MSG="$EVENT:$REASON"
        fi
else
        if [ "$RECOVERED" = "1" ]; then
                RECOVERED=" (Recovered)"
                BBCOLORLEVEL="green"
        else
                RECOVERED=""
        fi
        UPSVCNAME=`echo $BBSVCNAME | tr [:lower:] [:upper:]`
        MSG="$RECOVERED ($BBCOLORLEVEL) $UPSVCNAME on $BBHOSTNAME:\n
Problem for $DOWNSECS seconds"
fi

EMAIL="$TO\n\n$MSG"

echo -e "$EMAIL" | /usr/bin/mail -t


On Sat, May 25, 2013 at 9:17 PM, Bill Arlofski <user-0b8af203a56e@xymon.invalid>wrote:
On 05/25/13 06:46, deepak deore wrote:
FORMAT=PLAIN is working, I am receiving the recovered messages on my
mobile.
But that message is way long since it is not in sms format.

could you tell where should i look?
deepak, I think I may have run into a similar issue a long time ago, or
maybe
my issue was that I didn't like the level, or type of detail in the SMS
format
(i forget now), so I wrote a script to take the PLAIN format and TXT it to
me
via the AT&T email-to-SMS gateway. The benefit of this is that you have
complete control to manipulate the format and contents of the SMS that
gets sent.


Here's what I did:


First, in alerts.cfg

# Define recipient variables
# --------------------------
$waaphone=##########

# Define scripts
# --------------
$xymon-email-alert=/usr/local/sbin/xymon-email-alert.sh
$xymon-sms-alert=/usr/local/sbin/xymon-SMS-alert.sh

# Define Times
# ------------
$ninetofive=W:0900:1700
$afterhours=W:1701:0859
$weekends=60:0000:2359
$smsalerthours=W:0730:2359,60:0900:2200
$never=365d

# Define Alerts
# -------------
# Match ALL FIREWALLS
# -------------------
PAGE=revpol/client_firewalls
  SCRIPT $xymon-sms-alert $waaphone TIME=$smsalerthours DURATION>5m /
  FORMAT=SMS REPEAT=$neverCOLOR=yellow,red RECOVERED


Then my SMS alert script (/usr/local/sbin/xymon-SMS-alert.sh) follows. It
could probably use some improvement, been a while since I worked with it.
:)
(this may wrap poorly in email)

--[snip]--
#!/bin/bash
#
# waa - 20100209
# ---------------
date=`date +%Y%m%d-%H:%M:%S`
log="/tmp/xymon-SMS.log"
FROM="From: RP Xymon <user-27011985ccd9@xymon.invalid>"
TO="To: $RCPT"

# First, determine if this is a NOTICE message
# (eg: disabling or enabling a test)
# --------------------------------------------
NOTICE=`echo "$BBALPHAMSG" | grep " INFO"`
if [ ! -z "$NOTICE" ]; then

  # This is an INFO type report, so get the event
  # (what was enabled/disabled) and the reason
  # ---------------------------------------------
  EVENT=`echo "$BBALPHAMSG" | grep "Monitoring of"`
  REASON=`echo "$BBALPHAMSG" | grep "Reason:" | cut -d':' -f2-`
  if [ -z "$REASON" ]; then
    MSG="$EVENT"
    else
      MSG="$EVENT:$REASON"
  fi

  else
    # This was not an INFO type report so create
    # and format the normal SMS message
    # ------------------------------------------

    # Determine if this is a recovery notice for a test
    # -------------------------------------------------
    if [ "$RECOVERED" = "1" ]; then
      RECOVERED=" (Recovered)"
      else
        RECOVERED=""
    fi

    # Uppercase the service name
    # --------------------------
    UPSVCNAME=`echo $BBSVCNAME | tr [:lower:] [:upper:]`

    # Set the message text
    # --------------------
    MSG="$RECOVERED ($BBCOLORLEVEL) $UPSVCNAME on $BBHOSTNAME\nDown for
$DOWNSECS seconds"
fi

EMAIL="$FROM\n$TO\n\n$MSG"

# Send the email to the email-to-SMS gateway
# ------------------------------------------
echo -e "$EMAIL" | /usr/sbin/sendmail -t
--[snip]--


Hope this helps.

--
Bill Arlofski
Reverse Polarity, LLC
http://www.revpol.com/
--not responsible for anything below this line--