Привет! У меня стоит * на FreeBSD. Пробовал такой скрипт, чтобы пришло сообщение о том, что * упал. По началу все было ок, потом даже когда * работал, сообщения валились на почту.
if ! ps aux | grep asterisk | grep -v grep; then echo "It's down!! AAA!!" | mail -s "Asterisk down!" "mail@mail.com" fi
Есть еще варианты, как проверять работает и * и как-то информировать меня, если не работает?
Nagios - панацея http://www.voip-info.org/wiki/view/Asterisk+monitoring
Используйте технологию Intel V-Pro, можете удаленно включать и выключать машину и не только.
Может стоит разобраться вообще с причиной почему падает? Вообще это не есть нормально IMHO.. Скажем запустить через strace хотяб.
логика такая
[test] exten => s,1,Answer exten => s,2,Playback(testfile.wav) exten => s,3,Wait(1) exten => s,3,Hangup [test2] exten => s,1,Set(CDR(userfield)=${uniq_key}) exten => s,2,Record(testfile2.wav) exten => s,3,Hangup
дальше генриться кол файлик звоняший с одного на другой, с переменной uniq_key, через 20 секунд проверятся в базе наличие cdr за последние 5 минут с этим userfield. если нету, проверяеться еше раз через 2 сек, и пишется писмецо, а астриск убиваеться через kill -9.
по возможности звониться с одного на другой контекс через внешний сервер(проверяеться sip). после чего скрипт проверяет файлик на наличие в нем звука(тест файлик выдает две ноты по 5 секунд каждая, проверка елементарная на наличие уровней в фалике).
тоесть, вы проверили 1) астриск совершает звонки 2) внешние каналы работают 3) звук идет.
ну раз все так бурно взялись за правильный мониторинг то тогда использовать надо Zabbix
Его можно натравить на мониторинг
1) Процесса
2) порт 5060 , 5038 ....
3) количество запущенных процессов asterisk
и конечно посылать уведомления(SMS, jabber, email)
X-lite тихо курит по сравнению с zabbix-ом :)
cat /usr/sbin/safe_asterisk
#!/bin/sh
# vim:textwidth=80:tabstop=4:shiftwidth=4:smartindent:autoindent
CLIARGS="$*" # Grab any args passed to safe_asterisk
TTY=9 # TTY (if you want one) for Asterisk to run on
CONSOLE=yes # Whether or not you want a console
NOTIFY= mail@mail.ru # Who to notify about crashes
#EXEC=/path/to/somescript # Run this command if Asterisk crashes
MACHINE=`hostname` # To specify which machine has crashed when getting the mail
DUMPDROP=/tmp
SLEEPSECS=4
ASTSBINDIR=/usr/sbin
ASTPIDFILE=/var/run/asterisk.pid
по моему так проще
я делаю напримепр так линфон стоит на временирегистрации 60 секунд, дальше ве оч просто nohup linphonec > /var/log/aststat &
и скриптик такого вида
a=1
while (($a > 0))
do
cat /dev/null > /var/log/aststat
sleep 60
cat /var/log/aststat|grep successful > v3
ARGS=2
cmp v3 v5 &> /dev/null
if [ $? -eq 0 ]
then
cat /dev/null
else
echo "Alarm" (ну здесь может быть что угодно - отправка письма, смс, играние похоронного марша и т. д.)
fi
Да... еще кое что при первом старте скрипта, над выдрать строку linphonec> Registration on sip:X.X.X.X successful. из лога aststat и кинуть в файл v5 в папку со скриптом.
Поставиль на своём компе X-Lite, создать для него аккаунт и если высветится сообщение, что связ с сервером пропала, значит * упал.
Задан: 2011-01-24 13:31:57 +0400
Просмотрен: 3,246 раз
Обновлен: Mar 19 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.