Отправка любых SMS-уведомлений при помощи NetPing из Zabbix

Zabbix – это бесплатная система мониторинга для отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования. Данная система мониторинга имеет возможность настройки различных способов оповещений: e-mail, SMS, Jabber, Ez Texting, пользовательские скрипты. Способы оповещений являются используемыми каналами доставки для оправки оповещений и предупреждений из Zabbix. Так как Zabbix поддерживает пользовательские скрипты, как один из способов оповещений можно использовать устройства NetPing SMSUniPing server solution v3/SMS или NetPing 8/PWR-220 v3/SMS в виде SMS гейта для отправки SMS-уведомлений о событиях в системе мониторинга Zabbix. В результате, при организации такого метода SMS-уведомлений можно значительно сэкономить на альтернативных сервисах рассылки SMS-уведомлений, доступных в интернете.

Требования

Для реализации вышеописанного функционала необходимы:

  • шлюз для отправки и приёма SMS-команд NetPing SMS с установленной SIM картой или устройство удалённого мониторинга датчиков UniPing server solution v3/SMS с установленной SIM картой, или устройство удалённого управления розетками электропитания NetPing 8/PWR-220 v3/SMS с установленной SIM картой;
  • подготовленный скрипт для отправки произвольных SMS-уведомлений о событиях в системе мониторинга Zabbix;
  • настроенная система мониторинга Zabbix (в данном примере Zabbix установлен на ОС CentOS 6.5)
    Для получения информации по настройке системы мониторинга Zabbix можно обратиться к официальной документации.

Для отправки SMS-уведомлений в случае примера (то есть, при помощи устройств NetPing SMSUniPing server solution v3/SMSNetPing 8/PWR-220 v3/SMS, которые выступают в роли SMS гейта) необходимо выполнить всего лишь часть базовой настройки (настроить сетевые параметры для доступа по сети) устройств NetPing SMSUniPing server solution v3/SMSNetPing 8/PWR-220 v3/SMS и установить рабочую SIM карту с положительным балансом в разъём встроенного GSM модема. Прочитать про базовую и дополнительную настройку устройств можно в следующей документации:

Реализация отправки SMS-оповещений от системы мониторинга Zabbix версии 2.2.

Настройка Zabbix 2.2 сервера

Чтобы иметь возможность использовать пользовательские скрипты, необходимо выполнить небольшую настройку Zabbix сервера. Настройка заключается в указании параметра «AlertScriptsPath» в файле конфигурации «/etc/zabbix/zabbix_server.conf». Этот параметр определяет каталог, в котором будет находиться скрипт для SMS-уведомлений.

Для редактирования файла конфигурации необходимо перейти в каталог с файлом и открыть его в текстовом редакторе:

[ zabbix@zabbix ~]$ cd /etc/zabbix/

[ zabbix@zabbix zabbix]$ vi zabbix_server.conf

Добавить директорию для параметра «AlertScriptsPath»:

Настройка файла конфигурации Zabbix для определения директории для пользовательских скриптов

После изменения параметра сохранить настройки в файле конфигурации и перезапустить службу «services-zabbix» (перезапуск службы выполняется от пользователя root):

[ zabbix@zabbix zabbix]# service service-zabbix restart

Сам скрипт для отправки SMS-уведомлений разместить в каталоге, указанном в параметре «AlertScriptsPath», а также задать права на выполнение (права задаются от пользователя root):

[ zabbix@zabbix zabbix]# chmod +x /usr/lib/zabbix/alertscripts/sendsms.sh

Готовый файл скрипта можно скачать здесь: sendsms.sh

Параметры, которые необходимо изменить при использовании скрипта в своей системе мониторинга Zabbix:

visor29 – имя пользователя для авторизации на устройстве NetPing.
ping29 – пароль для авторизации на устройстве NetPing.
192.168.0.29 – текущий IP адрес устройства NetPing.

Настройка SMS-уведомлений в Zabbix 2.2

Авторизоваться под администратором в web-интерфейсе системы мониторинга Zabbix.

Чтобы можно было реализовать отправку SMS-уведомлений, необходимо создать новый способ оповещения. Для этого перейти на вкладку «Administration», выбрать пункт меню «Media types» и нажать на кнопку «Create media types»:

Создание нового способа оповещения в Zabbix

В окне настроек нового способа оповещения необходимо ввести параметры, аналогичные приведённым на скриншоте ниже, и сохранить их нажатием кнопки «Save»:

Настройка нового метода оповещения для отправки SMS уведомлений от Zabbix при помощи скрипта

где:
Name – имя способа оповещения.
Type – тип способа оповещения. Доступны типы: «Email», «Script», «SMS», «Jabber», «Ez Texting». Необходимо выбрать тип «Script».
Script name – название файла скрипта для отправки SMS-уведомлений расположенного по пути: «/usr/lib/zabbix/alertscripts».
Enabled – чек-бокс для активации данного способа оповещения.

После создания нового способа оповещения «sendsms», он появится в таблице всех настроенных оповещений в Zabbix:

Страница со списком настроенных способов оповещений Zabbix

Теперь пользователю или группе пользователей в Zabbix нужно привязать созданный способ оповещения. В примере будет показан процесс настройки для пользователя Admin. Для этого перейти на вкладку «Administration», выбрать пункт меню «Users» и нажать в таблице «User groups» в строке группы администраторов Zabbix ссылку «Users»:

Привязка нового способа уведомления пользователю Zabbix

В группе «Zabbix administrators» выбрать пользователя Admin:

Выбор пользователя для привязки нового способа уведомлений в Zabbix

Перейти на вкладку «Media» и нажать кнопку «Add» для привязки нового способа оповещения:

Добавление оповещения в настройках пользователя в Zabbix

В окне «New media» заполнить параметры аналогичные приведённым на скриншоте ниже и сохранить их нажатием кнопки «Save»

Настройка способа оповещения для пользователя посредством отправки SMS уведомлений с помощью пользовательского скрипта

где:
Type – параметр для выбора способов оповещений, созданных ранее в системе мониторинга Zabbix (вкладка «Administration», пункт меню «Media types»). В случае примера выбрать «sendsms».
Send to – номер телефона для отправки SMS-уведомлений.
When active – время срабатывания данного оповещения.
Use if severity – важность триггера, чек-боксы определяют, при какой важности триггера будет срабатывать данное оповещение. В примере установлены все чек-боксы для лучшей наглядности данного параметра.
Status – параметр для включения и отключения данного оповещения.

В окне настроек параметров пользователя Admin на вкладке «Media» появится созданное оповещение «sendsms» для отправки SMS-уведомлений. После этого нужно обязательно нажать кнопку «Save» для сохранения всех настроек:

Сохранение настроек пользователя в Zabbix

Теперь необходимо настроить действие, в результате которого администратору системы мониторинга Zabbix будет отправляться SMS-уведомление. Допустим, что администратору нужно получать SMS-уведомление о доступности устройства удалённого управления электропитанием NetPing 2/PWR-220 v2/SMS. То есть, когда устройство перестает отвечать на ICMP запросы, отправляется SMS-уведомление о недоступности данного устройства. Когда устройство начинает отвечать на ICMP запросы, опять отправляется SMS-уведомление, но только о доступности данного устройства.

Чтобы реализовать такой алгоритм SMS-уведомлений, нужно перейти на вкладку «Configurations», выбрать пункт меню «Actions» и нажать на кнопку «Create action» для создания необходимого действия, которое будет выполнять отправку SMS уведомлений:

Создание действия в Zabbix

В окне настроек действия заполнить параметры, аналогичные приведённым на скриншоте ниже:

Настройка действия и текста SMS уведомления в Zabbix

где:
Name – уникальное имя действия.
Default subject – тема сообщения по умолчанию. Тема может содержать макросы. В данном SMS-уведомлении не используется.
Default message – сообщение по умолчанию. Сообщение может содержать макросы.
Recovery message – если чек-бокс установлен, Zabbix будет отправлять сообщение о восстановлении после устранения проблемы. Сообщения будут отправлены только тем, кто получал какие-либо сообщения о проблеме ранее.
Recovery subject – тема сообщения о восстановлении по умолчанию. Тема может содержать макросы. В данном SMS-уведомлении не используется.
Recovery message – сообщение о восстановлении. Сообщение может содержать макросы.
Enabled – чек-бокс для активации данного действия.

Таким образом, данное действие будет отправлять SMS-уведомления с текстом «{HOSTNAME}: ping is {STATUS}», когда устройство NetPing 2/PWR-220 v2/SMS пропало, а затем появилось в сети.
где:
{HOSTNAME} – уникальное имя устройства в Zabbix.
{STATUS} – текущее состояние устройства в Zabbix.

Теперь нужно задать условия, при которых будет срабатывать действие. Условия задаются на вкладке «Conditions». По умолчанию в системе уже добавлены два условия: «А» и «В». Для примера дополнительно добавим условие «С», определяющее конкретный узел сети, при недоступности которого будет осуществляться отправка SMS-уведомлений. Для этого в строке «New condition» из выпадающего списка выбрать параметр «Host», условие «=» и ввести уникальное имя устройства «NetPing 2PWR-220v2SMS», добавленное в Zabbix (устройство NetPing 2/PWR-220 v2/SMS заранее было добавлено в Zabbix и настроено на проверку доступности в сети). После нажать на ссылку «Аdd»:

Добавление условий для действия в Zabbix

В результате таких настроек появится третье условие «С»:

Настроенные условия в окне настройки действия для SMS уведомлений в Zabbix

Последним этапом настройки является выбор способа оповещения для данного действия. Способ оповещения настраивается на вкладке «Operations» при нажатии на ссылку «New»:

Добавление способа оповещения в настройках действия в Zabbix

В окне, представленном на скриншоте ниже, в выпадающем меню «Send only to» выбрать способ оповещения «sendsms». После этого обязательно нажать кнопку «Save» для сохранения настроек:

Выбор способа оповещения в настройках действия в Zabbix

На вкладке «Operations» появится операция «Send message to users: Admin (Zabbix Administrator) via sendsms», которая инициирует запуск скрипта для отправки SMS-уведомлений на настроенное действие. Сохранить все настройки действия «Ping_status» нужно нажатием кнопки «Save»:

Выбор типа уведомления в настройках действия Zabbix

В итоге на странице «Actions» появится созданное действие «Ping_status» со статусом «Enabled», которое будет инициировать отправку SMS-уведомлений при возникновении необходимых условий:

Новое действие в Zabbix для отправки SMS уведомлений при помощи устройств NetPing

Реализация отправки SMS-оповещений от системы мониторинга Zabbix версии 3.4. 

В августе 2017 вышла версия Zabbix 3.4. Новая версия имеет некоторые отличия от Zabbix версии 2.2. Рассмотрим настройку отправки SMSуведомлений из новой версии Zabbix. В нашем примере используется Zabbix версии 3.4.8, установленный на CentOS Linux release 7.4.1708 (Core).

Настройка Zabbix 3.4 сервера

Первым этапом настройки будет подготовка сервера Zabbix. На сервере необходимо разместить скрипт для отправки SMS-сообщений. Его можно скачать здесь и разместить в директории /usr/lib/zabbix/alertscripts/ либо создать вручную. Создаем файл скрипта при помощи следующей команды:

mcedit /usr/lib/zabbix/alertscripts/sendsms.sh

Создание файла скрипта

И пишем текст скрипта отправки SMS на скриптовом языке Bash:

#!/bin/bash

curl —user visor:ping —data «[$1] $3» http://192.168.1.204/sendsms.cgi?utf8

Пример скрипта для отправки SMS уведомлений от Zabbix 3.4

где: 
visor – имя пользователя для авторизации на устройстве NetPing
ping – пароль для авторизации на устройстве NetPing
192.168.1.204 – текущий IP адрес устройства NetPing
[$1] – переменная, в которую передаётся номер телефона получателя сообщения. Квадратные скобки обязательны! 
$3 – переменная, в которую передается текст SMS-сообщения.

Сохраняем и делаем файл исполняемым при помощи команды:

chmod a+x /usr/lib/zabbix/alertscripts/sendsms.sh

Изменение прав на файл скрипта

Теперь редактируем файл конфигурации сервера Zabbix:

mcedit /etc/zabbix/zabbix_server.conf

Открытие файла конфигурации Zabbix 3.4

В файле конфигурации сервера Zabbix должен быть раскомментирован/прописан параметр:

AlertScriptsPath=/usr/lib/zabbix/alertscripts

Файл конфигурации Zabbix 3.4

После изменения конфигурации сервера Zabbix его необходимо перезапустить для применения данных изменений. Для этого выполним следующую команду:

systemctl restart zabbix-server

Команда перезапуска сервера Zabbix 3.4

Настройка SMS-уведомлений в web-интерфейсе Zabbix 3.4

Далее переходим в web-интерфейс сервера Zabbix и продолжаем настройки. В web-интерфейсе Zabbix создаем новый тип оповещений (Administration → Media Types) со следующими параметрами:

Создание нового типа уведомлений в Zabbix 3.4

где:
Name – имя способа оповещения. В нашем примере «NetPing SMS»;
Type – тип способа оповещения. Доступны типы: «Email», «Script», «SMS», «Jabber», «Ez Texting». Необходимо выбрать тип «Script»;
Script name – название файла скрипта для отправки SMS-уведомлений расположенного по пути: «/usr/lib/zabbix/alertscripts». В нашем примере «sendsms.sh»;
Script parameters – Параметры скрипта. Прописываем параметры, как в нашем примере. 
Параметр {ALERT.SENDTO} передается в переменную $1 скрипта sendsms.sh. Параметр {ALERT.MESSAGE} передается в переменную $3 скрипта sendsms.sh;
Enabled – чек-бокс для активации данного способа оповещения.

Затем переходим к настройкам пользователя Admin (Administration → Users) и добавляем новый способ оповещения на вкладке «Media». Нажимаем ссылку «Add» и в появившемся pop-up окне «Media» прописываем параметры как в нашем примере:

Добавление нового способа оповещения пользователю в Zabbix 3.4

Параметры нового оповещения для пользователя в Zabbix 3.4

где:
Type – параметр для выбора способов оповещений, созданных ранее в системе мониторинга Zabbix (Administration → Media Types). В нашем случае выбираем из списка тип оповещения «NetPing SMS»;.
Send to – номер телефона, на который будут отправляться SMS-уведомления. Номер телефона указывается в международном формате, начиная с «+7»;
When active – время срабатывания данного оповещения. Настройку можно оставить по умолчанию;
Use if severity – важность триггера, чек-боксы определяют, при какой важности триггера будет срабатывать данное оповещение. В примере установлены все чек-боксы для лучшей наглядности данного параметра.
Enabled – параметр для включения и отключения данного оповещения.

Сохраняем изменения нажатием кнопок «Add» и «Update».

Далее переходим к созданию действия, при выполнении которого будут отправляться наши SMS-уведомления. В этой статье мы рассмотрим отправку SMS-уведомлений при изменении логического уровня на IO линиях устройств NetPing, подключённых к мониторингу. К IO линиям устройств NetPing в режиме «вход» можно подключить любые датчики типа «сухого контакта»:  

Переходим в раздел «Configuration → Action» и нажимаем кнопку «Create Action»:

Создание действия в Zabbix 3.4

В открывшемся окне на вкладке «Action» заполняем поля как в нашем примере. Здесь нам необходимо отсортировать триггеры, при срабатывании которых будут отправляться SMS-уведомления. 

Добавление правил при которых срабатывает действие в Zabbix 3.4

где:
Name – уникальное имя действия. В нашем примере «IO_line_status»;
Type of calculation – тип логического правила для триггеров. В нашем примере «Or» (логическое ИЛИ), действие выполняется, если сработал один из триггеров;
Conditions  условия, при которых будет срабатывать действие. Имена триггеров, при срабатывании которых будет отправляться SMS-сообщение, должны содержать фразы «Level:FRONT» и «Level:DECAY»;
New condition  поле для создания нового условия. Добавление правил подтверждается нажатием на ссылку «Add» в поле «New condition»;
Enabled – параметр для включения и отключения данного действия.

Затем переходим на вкладку «Operations» и прописываем текст SMS-сообщения, которое будет отправлено при срабатывании триггера, описанного на вкладке «Action».

Текст SMS при срабатывании триггера в Zabbix 3.4

где:
Default operation step duration – длительность одного шага операции. Например, длительность шага в один час означает, что если первая операция в данном действии выполняется, то следующая операция начнется через один час. В нашем примере операция отправки сообщения только одна, поэтому можно оставить значение по умолчанию. 
Default subject – тема сообщения по умолчанию. Тема может содержать макросы. В данном SMS-уведомлении не используется.
Default message – сообщение по умолчанию. Сообщение может содержать макросы. В этом поле мы пишем текст SMS-сообщения, которое будет получать администратор системы мониторинга при изменении логического уровня на IO линии устройства NetPing.

В поле «Operations» нажимаем ссылку «New» и заполняем развернувшуюся форму описания действия как в нашем примере. Добавляем пользователя «Admin» в поле «Sent to Users». В поле «Send only to» выбираем из списка тип уведомления «NetPing SMS». Подтверждаем изменения нажатием ссылки «Add» (1):

Заполнение поля Operations в Zabbix 3.4

Подтверждаем создание нового действия нажатием кнопки «Add» (2).

Теперь при изменении логического уровня IO линии устройства NetPing подключённого к системе мониторинга Zabbix, администратор системы будет получать такие SMS-сообщения: 

Пример SMS сообщений от Zabbix 3.4

На скриншоте ниже общий вид панели Dashboard со сработавшими триггерами изменения логического уровня IO линий. В столбце «Actions» мы можем увидеть, что к триггеру привязано действие, и оно было успешно выполнено.

Общий вид Dashboard Zabbix 3.4

В данной статье показаны простейшие примеры настройки уведомлений. Система мониторинга Zabbix позволяет настраивать сложные выражения со сложными условиями срабатывания действий. Подробнее об этом можно почитать в официальной документации Zabbix.