Мониторинг серверов · 2 min read · Oct 16, 2025
Как настроить monit для отправки SMS-уведомлений, когда ваш сервер выходит из строя
Как настроить monit для отправки SMS-уведомлений, когда ваш сервер выходит из строя
Версия 1.0
Автор: Фалько Тимме
Этот учебник объясняет, как вы можете настроить monit для отправки уведомлений по SMS на ваш мобильный телефон, когда служба выходит из строя. Поскольку monit может отправлять только электронные письма, но не SMS, мы будем использовать шлюз email-to-sms, куда monit будет отправлять свои электронные письма, и этот шлюз будет преобразовывать электронные письма в SMS-сообщения.
Этот документ предоставляется без каких-либо гарантий! Я хочу сказать, что это не единственный способ настройки такой системы. Существует множество способов достижения этой цели, но это тот путь, который я выбрал. Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
Я предполагаю, что вы уже настроили monit, например, как показано здесь: https://www.howtoforge.com/server_monitoring_with_munin_monit_debian_etch или здесь: https://www.howtoforge.com/server_monitoring_with_munin_monit_fedora_7.
В этом учебнике я хочу мониторить веб-сервер (с веб-сайтом www.mywebsite.com), чтобы проверить, работает ли он или нет. Поэтому я использую monit на втором сервере (monit.example.com), чтобы monit мог отправлять уведомления, если веб-сервер выходит из строя по какой-либо причине (представьте, что вы установили monit на веб-сервере - если сервер выходит из строя, monit не может отправить никаких уведомлений…).
Служба SMS, которую я использую здесь, - это SMS77.de (если вы хотите использовать эту службу, вам нужно сначала зарегистрироваться и пополнить свой предоплаченный счет как минимум на 5 евро). Как объясняется на http://www.sms77.de/email2sms.html (на немецком), электронные письма, которые вы отправляете на шлюз, должны иметь следующий формат:
Тема: Текст SMS
Текст письма: Email2SMS-Key#Получатель#Тип SMS #Отправитель
Вы можете указать ключ email2sms в настройках вашего аккаунта SMS77.de; получатель - это номер вашего мобильного телефона (если вы хотите отправить сообщение нескольким получателям, разделите номера телефонов запятыми); в качестве типа SMS мы используем basicplus, который стоит всего 3,5 цента (евроцента) за SMS. Отправитель является необязательным, поэтому я его опускаю.
Я скажу monit отформатировать свои уведомления так, чтобы они соответствовали требуемому формату.
Вы, конечно, можете использовать любой другой шлюз email-to-sms. Это всего лишь пример того, как это сделать, и у меня нет никаких отношений с SMS77.de.
2 Настройка monit
Откройте /etc/monit/monitrc на monit.example.com и добавьте следующий фрагмент в конец файла:
vi /etc/monit/monitrc| [...] check host www.mywebsite.com with address www.mywebsite.com if failed port 80 protocol http and request "/index.php" for 4 cycles then alert if failed icmp type echo count 5 with timeout 15 seconds for 4 cycles then alert alert [email protected] { connection, timeout, icmp } with mail-format { from: [email protected] subject: $SERVICE $EVENT at $DATE on $HOST message: 123456#0170123456789#basicplus } |
Как вы видите, с этой конфигурацией monit будет запрашивать файл index.php с www.mywebsite.com, и, кроме того, он попытается пинговать хост www.mywebsite.com. Чтобы убедиться, что monit не отправляет слишком много ложных срабатываний, он будет отправлять уведомление только в том случае, если тесты не прошли четыре последовательных раза (в течение 4 циклов) - это должно указывать на то, что действительно есть проблема.
Уведомления будут отправляться на адрес электронной почты шлюза email-to-sms, но только в случае ошибки соединения, тайм-аута или потерянных пингов (список всех доступных событий можно найти здесь: http://www.tildeslash.com/monit/doc/manual.php#alert_message_layout), а раздел mail-format определяет формат уведомления по электронной почте. Переменные, которые вы можете использовать в электронной почте, также перечислены на http://www.tildeslash.com/monit/doc/manual.php#alert_message_layout.
Пожалуйста, настройте это в соответствии с вашим шлюзом email-to-sms!
Перезапустите monit после этого:
/etc/init.d/monit restartВот и все!
3 Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.