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 <waa-hobbitml at revpol.com>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:%Slog="/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" ]; thenThis 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" fielse # 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--
Xymon mailing list Xymon at xymon.com http://lists.xymon.com/mailman/listinfo/xymon