Страница 1 из 2

запуск приложения при определенном сообщении в логах

Добавлено: 21 янв 2016, 11:43
bagrintsev
День добрый, добрые гуру.
В одном месте шлюз VOIP у меня периодически отваливается и заново не подключается.
В консоли астериска пробегают следующие сообщения:
[Jan 21 11:22:55] NOTICE[19987]: chan_sip.c:29485 sip_poke_noanswer: Peer '140' is now UNREACHABLE! Last qualify: 104
Можно ли средствами астериска мониторить строки "Peer '140' is now UNREACHABLE!" и по появлении их запускать какой-нибудь файлик?
Шлюз подымаю через telnet командой reboot.

Доп. инфо.
Перепрошивка Cisco SPA122 не помогает, т.к. с сетью большие проблемы: связь по двунаправленному спутниковому инету, пинги от 700, связь периодически рвется.

Re: запуск приложения при определенном сообщении в логах

Добавлено: 21 янв 2016, 11:45
awsswa
Легко

#!/bin/bash
NOW=`echo $(date +'%d %H:%M' -d '1 min ago') | sed 's/^0//'`
FIND=`cat /var/log/messages | grep "$NOW" | grep 'No more connections allowed' | wc -m`
if (("$FIND" > "0")); then
asterisk -x'core restart now'
echo "$NOW : $FIND" >> /var/log/asterisk/pipec.log
fi

Re: запуск приложения при определенном сообщении в логах

Добавлено: 21 янв 2016, 11:50
bagrintsev
awsswa писал(а):Легко

#!/bin/bash
NOW=`echo $(date +'%d %H:%M' -d '1 min ago') | sed 's/^0//'`
FIND=`cat /var/log/messages | grep "$NOW" | grep 'No more connections allowed' | wc -m`
if (("$FIND" > "0")); then
asterisk -x'core restart now'
echo "$NOW : $FIND" >> /var/log/asterisk/pipec.log
fi
Отредактировать на поиск нужной строки и запускать по крону каждые пять минут? Интересно. Спасибо.

Re: запуск приложения при определенном сообщении в логах

Добавлено: 21 янв 2016, 12:08
ded
bagrintsev, очень прошу - удерживайте свою руку от полного цитирования преддыдущего сообщения.

Re: запуск приложения при определенном сообщении в логах

Добавлено: 21 янв 2016, 15:16
gosha
лучше

tail -f messages | grep ... | while read x ; do echo "Ops $x" ; done

Re: запуск приложения при определенном сообщении в логах

Добавлено: 23 янв 2016, 15:19
whoim
Ну и через 5 минут он снова найдет эту строчку.
Лучше состояние пира мониторьте через ajam на php, или cli

Re: запуск приложения при определенном сообщении в логах

Добавлено: 23 янв 2016, 18:59
Aven
Ajax медленно, лучше AMI

Re: запуск приложения при определенном сообщении в логах

Добавлено: 24 янв 2016, 03:07
whoim
ajam, а не ajax.
В разы проще, чем с ами.
Насчет медленно - все относительно. К тому же позволит сделать режим "вопрос - ответ", раз в х время. А не мониторить весь мусор в поисках евентов registered/unregistered, и держать массив в башке.

Не нравится http json/xml api - тогда cli юзайте, через php exec например.

Re: запуск приложения при определенном сообщении в логах

Добавлено: 24 янв 2016, 19:39
Aven
ajam конечно. В AMI есть фильтрация. В любой библиотеке вроде phpagi использование AMI элементарно, о каких разах речь? AMI работает в реалтайме, в ajam же нужно слать запрос, что бы получить все накопившиеся события, пробовали раз в x время запрашивать на высоконагруженном сервере?

Re: запуск приложения при определенном сообщении в логах

Добавлено: 24 янв 2016, 21:31
Pechen
вариант с fail2ban не рассматривается?