В моей сборке Kannel для ALT Linux мониторинг с помощью monit предусмотрен изначально. К сожалению, факт работоспособности Kannel еще не означает, что у какого-нибудь оператора SMSC свалился или файрвол "совершенно неожиданно" зарубил порт, на котором живет SMPP. Посему, имеет смысл мониторить также состояние отдельных подключений и в случае сбоев звонить в рельсу.
Итак, используемые инструменты:
Как известно пользователям Kannel, он умеет выдавать состояние через HTTP API. Достаточно лишь отправить запрос вида:
http://127.0.0.1:13000/status
При этом, в полученных данных можно выделить строки с описанием состояния SMSC примерно такого вида:
FAKE[FAKE] FAKE:10000 (dead, rcvd 0, sent 0, failed 0, queued 0 msgs)
Теперь воспользуемся возможностью monit проверять результат HTTP запроса на соответствие регулярным выражениям. Для этого напишем такой фрагмент конфигурации:
check host kannel.fakesmsc with address 127.0.0.1
if failed url
http://127.0.0.1:13000/status
and content == "FAKE:10000 \(online"
then alert
Осталось перезапустить monit и наслаждаться уведомлениями о том, что у нас тестовый SMSC отвалился. Естественно, вместо alert можно запустить систему автоматической диагностики, отправить SMS через резервный канал, позвонить ответственному в мобилку и т.д.
P.S. (реклама) Автозвонилку на базе Asterisk можете заказать у нас ;-)