Я использую Ubuntu 13.04 с соответствующими версиями monit (5.5-6) и asterisk (1.8.13.1). Я настроил программу monit для просмотра моего файла журнала звездочки на предмет отключения от моего SIP-провайдера и перезапуска звездочки для нового подключения. Вот соответствующая часть скрипта наблюдения за монитором:
check file messages with path "/var/log/asterisk/messages"
start program = "/etc/init.d/asterisk start"
stop program = "/etc/init.d/asterisk stop"
if match "Retransmission timeout reached" then restart and noalert my@mail.com
if match "timed out, trying again \(Attempt " then restart and noalert my@mail.com
Обнаружение ошибок работает нормально, при выполнении условия я получаю письма. Monit также останавливает демон звездочки, и соответствующие файлы PID в / var / run удаляются правильно. Однако звездочка не запускается снова. В файлах журнала monit или asteriks нет соответствующей ошибки.
В чем ошибка в этом случае? Где я могу найти дополнительную информацию по отладке?
Иногда вам нужно запустить monit с максимальной степенью детализации в режиме без демона, когда вы вызываете ошибку (например, выводите строки для отслеживания в файл журнала), чтобы установить, в чем проблема.
Остановите monit и запустите его:
monit -c /path/to/monit.conf -vv -I 2>&1 | tee /tmp/monit_debug.log
Спровоцируйте ошибку и сообщите об увиденном.