[Asterisk-Users] Asterisk Redundency
Adam Moffett
adam at plexicomm.net
Tue Oct 25 11:35:14 MST 2005
A SIP registration as a monitor is not a bad idea at all. The
registration process is not too terribly complex, and I think I could
write a perl script that could attempt registration when supplied with a
host, username, and password.
No promises, but if I can put something together I'll post it.
Still, any ideas from anybody on how to make an automatic test call or
to simulate a call somehow would be appreciated.
Benjamin Lawetz wrote:
>Ok, I tried something slightly different.
>
>I modified the existing the udp.monitor (or was it the tcp.monitor) of mon
>and basically sending a "sniffed" SIP Registration packet which I send to
>the asterisk server. If I don't receive an answer within a set time. The
>monitor sends an error.
>
>It tells you if the server is at least answering SIP. Mind you I once had a
>server freeze, but the monitoring kept getting an answer. So not 100%
>fool-proof, but save my *** in the past :-)
>
>-----Original Message-----
>From: asterisk-users-bounces at lists.digium.com
>[mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Adam Moffett
>Sent: October 25, 2005 9:51 AM
>To: Asterisk Users Mailing List - Non-Commercial Discussion
>Subject: Re: [Asterisk-Users] Asterisk Redundency
>
>
>
>Benjamin Lawetz wrote:
>
>
>
>>
>>
>>
>>
>>>Since I can't do that, what I've settled on is heartbeat + mon.
>>>Heartbeat will monitor for a system level failure and switch to the
>>>backup
>>>
>>>
>>>
>>>
>>machine if neccesary; and mon will watch the asterisk (or any
>>
>>
>>
>>
>>>other) service and restart it and/or alert me if it fails.
>>>
>>>
>>>
>>>
>>What kind of monitor are you using to monitor asterisk?
>>
>>
>>
>>
>>
>>
>Sorry for my slow response. My asterisk monitor right now is embarrassingly
>simple. All it does is execute show uptime and look for output starting
>with "System", see below. Obviously the method has limitations. 1) It will
>only really only tell me that the daemon is running, not that it's able to
>carry any calls. 2) It only works on localhost.
>
>Input on how to test a remote instance of asterisk would be welcome, as well
>as a method of making a test call or reliably testing for the ability to
>make calls. My impression is that this would require asterisk to have a
>"Dial" command in the CLI, or a linux SIP client that I could execute from
>the shell. I'm not aware of the existence of either.
>
>Any other simple and reliable methods of testing asterisk's condition would
>be welcome.
>
>The alerts, by the way are pretty simple as well. See the excerpt from
>mon.cf below. restartasterisk.alert does exactly what it says.
>stopeverything.alert shuts down heartbeat, which will cause another node in
>the cluster to take over...in fact that node will start mon, which will then
>use the restartasterisk.alert to start up asterisk. Asterisk only starts on
>the backup machine when the primary fails so that config changes replicated
>from the primary will take effect. Total downtime should be < 3min. Which
>will let me hit 5-nine if it only happens once a year ;)
>
>Config changes are replicated via rsync and ssh every few minutes.
>Voicemails are also copied from primary to backup by rsync. One thing I
>still need to do is make rsync stop attempting to replicate files when the
>failover occurrs. That will probably just require another alert below the
>"stopeverything.alert".
>
>The replication of couse means that this setup will not protect me from a
>bad config change that breaks asterisk, as that change will be replicated
>throughout the cluster. So all significant config changes should be tested
>on a standalone box.
>
>
>[root at phones2 mon]# cat /usr/lib/mon/mon.d/asterisk.monitor
>#!/bin/sh
>##can only check localhost. Always checks localhost regardless of input
>
> SHOW_UPTIME=`/usr/sbin/asterisk -rx "show uptime" | /bin/cut -b 1-6`
> if [ $SHOW_UPTIME == "System" ]; then
> exit 0
> else
> echo "localhost"
> exit 1
> fi
>
>
> From mon.cf:
>
>watch asterisk
> service asterisk
> description asterisk pbx on localhost
> interval 10s
> monitor asterisk.monitor
> period wd {Sun-Sat}
> alert mail.alert adam at plexicomm.net
> alert restartasterisk.alert adam at plexicomm.net
> alertevery 30s
> service asterisk-failover
> description checking if we need to stop heartbeat
> interval 10s
> monitor asterisk.monitor
> period wd {Sun-Sat}
> alert stopeverything.alert adam at plexicomm.net
> alertafter 5 3m
>
>_______________________________________________
>--Bandwidth and Colocation sponsored by Easynews.com --
>
>Asterisk-Users mailing list
>Asterisk-Users at lists.digium.com
>http://lists.digium.com/mailman/listinfo/asterisk-users
>To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
>
>
>_______________________________________________
>--Bandwidth and Colocation sponsored by Easynews.com --
>
>Asterisk-Users mailing list
>Asterisk-Users at lists.digium.com
>http://lists.digium.com/mailman/listinfo/asterisk-users
>To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
>
>
More information about the asterisk-users
mailing list