Мониторинг подключений к SMSC в Kannel

В моей сборке 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 можете заказать у нас ;-)