Настройка СМС уведомлений с 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 $url = 'https://gate.smsclub.mobi/http/?'; $options= getopt('',array('to:','subj:','body:')); $username = ‘Login'; // string User ID (phone number) $password = ‘Pass'; // string Password $from = $options['subj']; // string, sender id (alpha-name) (as long as your alpha-name is not spelled out, it is necessary to use it) $to = $options['to']; $text = $options['body']; // string Message $data = array('username' => $username, 'password' => $password, 'from' => urlencode($from), 'to' => $to, 'text' => iconv("UTF-8", "windows-1251", $text)); $url_result = $url.http_build_query($data); if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, $url_result); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $out = curl_exec($curl); echo $out; curl_close($curl); } ?>
Если звезды Вам благоволят сегодня, то все получится с первого раза. Или Вы можете обратится в службу поддержки проекта www.smsclub.mobi, и Вам помогут восстановить паритет между проблемой и решением.
PS: Конечно, для полноценной работы СМС-оповещений, необходимо иметь рабочий акаунт на сайте www.smsclub.mobi.