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 <someone at example.com>"
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--