First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Как узнать, что Астериск упал?

3

Привет! У меня стоит * на FreeBSD. Пробовал такой скрипт, чтобы пришло сообщение о том, что * упал. По началу все было ок, потом даже когда * работал, сообщения валились на почту.

!/usr/local/bin/bash

if ! ps aux | grep asterisk | grep -v grep; then echo "It's down!! AAA!!" | mail -s "Asterisk down!" "mail@mail.com" fi

Есть еще варианты, как проверять работает и * и как-то информировать меня, если не работает?

спросил Jan 24 '11

erizo Gravatar erizo
71 10 3 11
http://www.telefant.ee/

Comments

А если упала системма или железка, то кто тебе отправит письмо !?!?!? Тут глобальней смотреть нужно.... amonra (Jan 24 '11)edit
Ну на сервантах или Embedded железках обычно WatchDog есть, просто можно чекать - перегружали систему аварийно, астер был незатушен итп. А так еще через AMI можно просто заходить из другого процесса.. Zavr2008 (Jan 26 '11)edit

11 Ответов

2

Запускать * как дочерний процесс следящего скрипта. По возврату управления в следящий процесс слать письмо, что все плохо и бить в бубен.

Вариант №2 - использовать скрипт safe_asterisk или собственные модификации "на тему".

ссылка удалить спам редактировать

ответил Jan 24 '11

alekz Gravatar alekz
31 2
http://telphin.ru/

Comments

safe_asterisk рулит :) Zavr2008 (Feb 16 '11)edit
1

Поставиль на своём компе X-Lite, создать для него аккаунт и если высветится сообщение, что связ с сервером пропала, значит * упал.

ссылка удалить спам редактировать

ответил Jan 24 '11

amonra Gravatar amonra flag of Ukraine
2301 26 13 65
http://lantec.ua/
1

ну раз все так бурно взялись за правильный мониторинг то тогда использовать надо Zabbix
Его можно натравить на мониторинг
1) Процесса
2) порт 5060 , 5038 ....
3) количество запущенных процессов asterisk
и конечно посылать уведомления(SMS, jabber, email)
X-lite тихо курит по сравнению с zabbix-ом :)

ссылка удалить спам редактировать

ответил Jan 25 '11

alexcr Gravatar alexcr
3124 10 9 51
http://asterisk-service.c...

Comments

ага, на сервер с десятком абонентов ставить zabbix. йа плакалъ switch (Jan 25 '11)edit
zabbix желательно ставить на другой сервак, и как обычно мониторить приходится не только asterisk а еще много других сервисов и приложений которые используются в компаний. alexcr (Jan 25 '11)edit
не много ли, два сервака на 10 абонентов? ;) switch (Jan 25 '11)edit
много или мало решать админу. alexcr (Jan 25 '11)edit
Он у меня и так стоит, но есть одно НО - Забикс не умеет отслеживать ситуацию, когда астериск отожрал одну голову и повис - в такой ситуации порты отвечают, но при попытке выполнить регистрацию или совершить звонок - в ответ тишина, так что , мало того что, одно другому не мешает, но оно еще друг друга и дополняет. Сейчас курю с нашим забиксоидом, как сделать плагин, на основе моих поделий что бы отслеживал состояне собсно самого астериска. CheeZ (Jan 25 '11)edit
я видел что есть готовые скрипты для вывода списка регистраций и узеров, может их использовать ? или у тебя register остается когда подвисает астер ? Да кстати а не лучше разобраться почему он виснет :) alexcr (Jan 25 '11)edit
Виснет когда авая начинает зафлуживать пустыми РПТ-пакетами (не знаю что у этого Г в мозгах затикает, но когда это случается, то приходится дергать плату) , регистрации которые уже были на тот момент в таком варианте висят до последнего издоха, дохнет он в таком случае довольно долго, а вот новые обычно отбрасываются по таймауту, как ни странно, monast в таких условиях показывает что все тип-топ, так что думаю это явно не лишнее. CheeZ (Jan 25 '11)edit
подпишусь за zabbix, у меня есть пара заббикс серверов на которые я завожу клиентские (ну или дружеские) сервера и там мониторю. помимо стандартных чеков процесс/порт вешаются еще и клиентсайд скрипты. shakirov (Mar 19 '11)edit
А насчет натравить на порт 5060. Заббикс ведь не поддерживает udp.listen erizo (Apr 4 '11)edit
0

Используйте технологию Intel V-Pro, можете удаленно включать и выключать машину и не только.

ссылка удалить спам редактировать

ответил Jan 27 '11

Sherkhan Gravatar Sherkhan
155 14 3 15

Comments

WDT не заменит, как резервный вариант - да.. Zavr2008 (Jan 27 '11)edit
0
  1. safe_asterisk
  2. Что-то типа такого
ссылка удалить спам редактировать

ответил Jan 24 '11

samael28 Gravatar samael28
211 2 6
http://odicom.com.ua/
0

я делаю напримепр так линфон стоит на временирегистрации 60 секунд, дальше ве оч просто nohup linphonec > /var/log/aststat &

и скриптик такого вида

!/bin/bash

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 в папку со скриптом.

ссылка удалить спам редактировать

ответил Jan 24 '11

CheeZ Gravatar CheeZ
1205 7 6 25

обновил Jan 24 '11

0

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

по моему так проще

ссылка удалить спам редактировать

ответил Jan 24 '11

alexcr Gravatar alexcr
3124 10 9 51
http://asterisk-service.c...
0

логика такая

[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) звук идет.

ссылка удалить спам редактировать

ответил Jan 25 '11

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил Jan 25 '11

0

Может стоит разобраться вообще с причиной почему падает? Вообще это не есть нормально IMHO.. Скажем запустить через strace хотяб.

ссылка удалить спам редактировать

ответил Jan 27 '11

Zavr2008 Gravatar Zavr2008 flag of Russian Federation
2886 11 9 40
http://mh.otx.ru/
0
ссылка удалить спам редактировать

ответил Mar 19 '11

AMind Gravatar AMind
1

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: Jan 24 '11

Просмотрен: 3,308 раз

Обновлен: Mar 19 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.