Настройка СМС уведомлений с Zabbix
После установки и первоначальной настройки Zabbix на предмет слежения за нужными процессами есть возможность также настроить его на предмет оперативного уведомления админов и заинтересованных лиц через СМС об аварийных ситуациях.
Для этого необходимо для начала проверить на zabbix-сервере по пути /etc/zabbix/zabbix_server.conf – раскомментирована ли строка с вызовом внешних алерт скриптов
- AlertScriptsPath=/usr/lib/zabbix/alertscripts
директорию можно указывать любую, главное, что бы был доступ пользователя zabbix and www-data
В директорию /usr/lib/zabbix/alertscripts добавляем два файла, smsclub.sh (перехват данных от zabbix’а и передача второму скрипту), sms_send.php (php-скрипт отправки сообщений через gate.smsclub.mobi). Данные скрипты можно будет добыть в конце статьи.
Далее нужно донастроить zabbix для правильной работы СМС-информирования. Идем в веб-интерфейс zabbix-сервера, в меню «Администрирование» —> «Способы оповещений» и нажимаем на кнопку «Создать способ оповещения». В предложенной форме необходимо заполнить поля следующим образом:
- Имя: обзываем как хотим, в нашем случае smsclub.
- Тип: выбираем «скрипт».
- Имя скрипта: smsclub.sh (имя должно совпадать с именем самого скрипта).
- Параметры Скрипта (только для версии 3. во всей линейке версии 2 этих параметров нет): нужно добавить три параметра:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
(каждый с новой строки)
- И для завершения наших манипуляция нажимаем кнопку «Добавить».
Должно получится нечто такое:
После этого идем в веб-интерфейсе zabbix-сервера, в меню «Администрирование» —> «Пользователи». Тут мы будем настраивать пользователя для уведомлений. Добавим пользователя (к примеру) smsclub.
После добавления пользователя – необходимо перейти на закладку «Оповещения» для настройки типа оповещений. Здесь можно добавлять разного рода оповещения, нас интересует добавление способа smsclub.
Нажимаем «Добавить» и выбираем:
- Тип – smsclub.
- Отправлять на: номер телефона.
- Когда активен: имеется в виду в какое время можно отправлять смс (1-7 дни недели, 00:00-24:00 время).
- Использовать, если важность: настройка, при каких тригерах будет выполняться скрипт отправки смс.
Для завершения настройки необходимо нажать «Добавить».
Теперь механизм СМС оповещений будет будить Вас в любое время суток и, возможно, огорчать, если что-то «отвалилось».
Описание скриптов:
- Скрипт smsclub.sh (SenderID в данном файле – это альфаимя (отправитель), который должен быть согласован с www.smsclub.mobi)
#!/bin/bash to=$1 subject=SenderID body=$3 /usr/bin/php /usr/lib/zabbix/alertscripts/sms_send.php --to="$to" --body="$body" --subj="$subject"
ВАЖНО: скрипт smsclub.sh — должен быть исполняем chmod +x /usr/lib/zabbix/alertscripts/smsclub.sh
- Скрипт sms_send.php (на сервере должен стоять php и curl)
<?php /** * This example demonstrates how to send single sms via JSON API * * @url smsclub.mobi * @author SMS CLUB */ $arg1 = $argv[1]; $arg2 = $argv[2]; $token = 'My Token'; $url = 'https://im.smsclub.mobi/sms/send'; $data = json_encode([ 'phone' => ['Phonenumber'], 'message' => $arg1. " ". $arg2, 'src_addr' => 'Shop Zakaz' // Ваше альфа-имя ]); $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_POSTFIELDS => $data, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $token, 'Content-Type: application/json' ] ]); $result = curl_exec($ch); echo $result; curl_close($ch);
Когда срабатывает Zabbix — он выполняет скрипт следующим образом:
sms_send.php {ALERT.SUBJECT} {ALERT.MESSAGE}
То есть у нас есть два аргумента.
Эти два аргумента нужно передать для отправки сообщения в поле:
'message' => $arg1. " ". $arg2,
Если будет 3 аргумента, то нужно эту строку редактировать.
Если звезды Вам благоволят сегодня, то все получится с первого раза. Или Вы можете обратиться в службу поддержки проекта smsclub.mobi, и Вам помогут восстановить паритет между проблемой и решением.
PS: Конечно, для полноценной работы СМС-оповещений необходимо иметь рабочий аккаунт на сайте smsclub.mobi.