- NetPing
- >
- Блог
- >
- Примеры применения
- >
- Мониторинг микроклимата и датчиков типа "сухого контакта" при помощи SMS-уведомлений, отправляемых в Zabbix
Мониторинг микроклимата и датчиков типа "сухого контакта" при помощи SMS-уведомлений, отправляемых в Zabbix
Мониторинг микроклимата в серверной и датчиков типа "сухого контакта" можно осуществлять, например, с помощью UniPing server solution v3/SMS. Однако при пропадании электропитания или сети данное устройство уже не сможет отправлять уведомления в систему мониторинга Zabbix. Для решения этой проблемы можно воспользоваться отправляемыми SMS-уведомлениями от датчиков, подключенных к устройству UniPing server solution v3/SMS.Эти уведомления будут приходить на шлюз NetPing SMS с целью конвертации SMS в SNMP TRAP сообщения с последующей их отправкой в систему мониторинга Zabbix.
Требования
Для реализации представленного решения потребуется следующее оборудование:
- устройство мониторинга микроклимата UniPing server solution v3/SMS (или NetPing 2/PWR-220 v2/SMS, NetPing 4/PWR-220 v3/SMS и NetPing 8/PWR-220 v3/SMS);
- датчики. Для примера будет использоваться термодатчик, однако наш список датчиков весьма обширен. В нём представлены, например, датчик удара PI-99D, датчик движения и охранный извещатель с герконовыми контактами.
- шлюз для отправки и приёма SMS-команд NetPing SMS с установленной SIM картой;
- настроенная система мониторинга Zabbix (в нашем случае Zabbix 2.2)
Принцип работы
Используется следующий принцип мониторинга:
- Устройство мониторинга микроклимата UniPing server solution v3/SMS при наличии проблем отправляет SMS;
- Данное SMS принимается шлюзом NetPing SMS, расположенном в том же сегменте локальной сети, что и система мониторинга Zabbix;
- На приходящее SMS-уведомление шлюз NetPing SMS генерирует SNMP TRAP в Zabbix;
- Zabbix при получении SNMP TRAP создает событие
Настройка UniPing server solution v3/SMS (настройка SMS-уведомлений)
Для настройки SMS-уведомлений об изменении температуры или влажности необходимо установить SIM-карту в устройство мониторинга микроклимата NetPing с установленным GSM-шлюзом (UniPing server solution v3/SMS). Также необходимо подключить соответствующие датчиков к устройству в соответствии с данной инструкцией.
На вкладке "SMS" веб-интерфейса устройства необходимо указать номер, на который должна производиться отправка SMS. Возможно указать до 4х телефонных номеров, поэтому кроме SMS-шлюза сообщение может быть отправлено системному администратору.
После ввода номеров телефона необходимо нажать кнопку "Применить изменения".
Теперь настроим SMS-уведомления при изменении показателей с датчиков. Для примера возьмем термодатчик.
Перейдем на вкладку "ТЕРМОДАТЧИКИ".
Укажите описание датчика (поле "Памятка") и задайте границы температурного диапазона, при пересечении которых необходимо отправлять SMS-уведомление. После изменения настроек необходимо нажать кнопку "Применить изменения".
Для настройки уведомлений нажмите кнопку "Настроить", расположенную в нижней строке таблицы в соответствующем датчику столбце.
Здесь проставьте галки для событий и получателя SMS.
При превышении верхней границы нормы устройство мониторинга микроклимата отправит SMS-сообщение адресатам, указанным на странице веб-интерфейса "SMS".
Доступны следующие варианты уведомлений:
- температура превысила верхнюю границу нормы, задаваемую на вкладке веб-интерфейса "ТЕРМОДАТЧИКИ";
- температура вернулась в норму;
- температура опустилась ниже нижней границы нормы, задаваемой на вкладке веб-интерфейса "ТЕРМОДАТЧИКИ;
- произошел отказ датчика;
- периодический отчет о состоянии датчика (статус, температура, соответствует ли норме). Если настроена отправка периодического отчета (доступно для E-mail, SMS и SNMP Trap), то время отправки периодического отчета настраивается на вкладках "E-MAIL", "SMS" и "НАСТРОЙКИ".
Настройка SMS-шлюза (настройка пересылки SMS в SNMP TRAP)
В данном разделе мы настроим SMS-шлюз, чтобы он пересылал полученные от UniPing server solution v3/SMS сообщения в виде SNMP TRAP на Zabbix. В качестве SMS-шлюза будет использоваться NetPing SMS.
Откройте страницу "НАСТРОЙКИ" веб-интерфейса и задайте адрес для посылки SNMP TRAP в Zabbix и SNMP-community.
Настройка Zabbix
Система мониторинга Zabbix может быть развёрнута как в виртуальной машине, так и на выделенном физическом сервере, подключенном в локальную сеть или в сеть Интернет. Если Zabbix работает на удалённом оборудовании в сети Интернет, а также используется маршрутизатор/роутер с функцией NAT и/или Firewall, то необходимо разрешить входящие пакеты по протоколу UDP (порт 162) в сторону Zabbix – для возможности получения SNMP TRAP извне. За дополнительной информацией следует обратиться к документации на маршрутизатор/роутер или к администратору сети. В данной статье будет рассмотрена упрощённая схема, когда устройство NetPing SMS и сервер с системой мониторинга Zabbix находятся в одной локальной сети.
Для примера будет использоваться готовый официальный образ виртуальной машины на основе openSUSE 12.3 (x86_64) с предустановленной системой Zabbix 2.2.2.
По умолчанию для доступа в консоль и по ssh – логин: root, пароль: zabbix
Настройка брандмауэра
Сначала для возможности получения SNMP TRAP сообщений необходимо сконфигурировать встроенный в openSUSE сетевой фильтр пакетов, также известный как брандмауэр (firewall). Следует отредактировать следующую строку в файле /etc/sysconfig/SuSEfirewall2 с целью добавления 162 UDP-порта:
FW_SERVICES_EXT_UDP="162"
Затем необходимо выполнить команду для перезапуска брандмауэра:
# /sbin/SuSEfirewall2
За дополнительной информацией по настройке брандмауэра можно обратиться к документации.
Пакет Net-SNMP
Далее следует перейти к настройке системы на приём и обработку поступающих SNMP TRAP сообщений. Для их приёма и передачи в Zabbix используется уже предустановленный пакет утилит Net-SNMP и perl скрипт zabbix_trap_receiver.pl.
В случае, если пакет утилит Net-SNMP отсутствует, его необходимо установить. За информацией об установке дополнительного ПО рекомендуется обратиться к соответствующей документации используемой операционной системы. Потребуются следующие пакеты:
- «net-snmp-utils»;
- «net-snmp-perl»;
- «net-snmp»
Скрипт zabbix_trap_receiver.pl
Perl скрипт zabbix_trap_receiver.pl для передачи трапов в Zabbix доступен по ссылке в данной статье или в исходных кодах Zabbix. Для этого нужно скачать и извлечь архив:
# tar -zxvf zabbix-2.2.2.tar.gz
На момент написания статьи актуальный Zabbix 2.2 - 2.2.6
Скопировать скрипт и установить ему права на выполнение:
# cp ./zabbix-2.2.1/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin
# chmod a+x /usr/local/bin/zabbix_trap_receiver.pl
Демон snmptrapd и Zabbix trapper
Для приёма входящих SNMP TRAP сообщений будет использоваться демон snmptrapd из набора утилит Net-SNMP. Его конфигурационный файл /etc/snmp/snmptrapd.conf должен выглядеть следующим образом:
disableAuthorization yes
perl do "/usr/local/bin/zabbix_trap_receiver.pl";
Далее запустить демон snmptrapd и добавить его в автозагрузку:
# systemctl restart snmptrapd
# chkconfig snmptrapd on
Далее в конфигурационном файле Zabbix сервера /etc/zabbix_server.conf необходимо активировать опцию по обработке трапов:
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
Путь к SNMPTrapperFile должен совпадать с тем, который указан в скрипте zabbix_trap_receiver.pl. По умолчанию это /tmp/zabbix_traps.tmp
Перезапустить Zabbix:
# systemctl restart zabbix_server
Таким образом, при получении SNMP TRAP сообщения демон snmptrapd будет передавать его на обработку скрипту zabbix_trap_receiver.pl, а скрипт будет записывать данные в файл /tmp/zabbix_traps.tmp. Демон Zabbix постоянно проверяет данный файл на изменения и при их появлении передает данные на обработку.
Ротация zabbix_traps.tmp
При необходимости, чтобы избежать переполнения /tmp, может быть настроена ротация файла /tmp/zabbix_traps.tmp. Для этого следует создать директорию:
# mkdir -p /var/log/zabbix_traps_archive
И файл /etc/logrotate.d/zabbix_traps следующего содержания:
/tmp/zabbix_traps.tmp {
weekly
size 10M
compress
compresscmd /usr/bin/bzip2
compressoptions -9
notifempty
dateext
dateformat -%Y%m%d
missingok
maxage 365
rotate 10
}
Архивные копии файла /tmp/zabbix_traps.tmp будут перемещаться в директорию /var/log/zabbix_traps_archive при достижении размера 10 Мб.
Настройка шаблона Zabbix
Для использования SNMP TRAP нам необходимо добавить их поддержку в шаблоне (создать "Item" и "Trigger"). Для этого создайте новый шаблон или отредактируйте существующий. Делается это в настройках шаблонов (Configuration→Templates). Также вы можете ознакомиться со статьёй "Настройка шаблонов Zabbix для устройств NetPing".
Необходимо зайти в новый (или выбранный заранее) шаблон и перейти на вкладку "Items".
Для каждого уведомления необходимо создать отдельный объект типа Item и типа Trigger. Я покажу настройку на примере оповещения "Температура выше нормы". Нажмите кнопку "Create Item".
На странице настройки нового "Item" указываете его название, тип (SNMP trap), ключ и тип информации (Log).
Поле "ключ"/"key" должно содержать текст из оповещения вида (snmptrap["TEXT_SMS"]) или snmptrap.failback, если необходима "сработка" при любом SNMP TRAP.
Например, при превышении порогового значения UniPing server solution v3/SMS отправляет SMS следующего содержания:
TEMP.SENSOR 5 "Server room" ABOVE SAFE RANGE (20 TO 40C), NOW 42C
В качестве регулярного выражения возьмите "ABOVE SAFE RANGE".
Теперь создайте несколько триггеров на вкладке "Triggers", соответствующих этим событиям: "выше нормы", "в норме" и "ниже нормы".
Для этого перейдите на вкладку "Triggers" и нажмите кнопку "Create Trigger"
В поле "Expression" введите текст вида
{<Название шаблона>:<Item expression>.nodata(300)}=0
Данный триггер будет сбрасывать значение на нормальное через 300 секунд.
В результате вы должны получить следующий набор триггеров
Добавление хоста
Для добавления устройства NetPing SMS, с которого будут поступать SNMP TRAP сообщения, нужно перейти в раздел «Configuration» (1), подраздел «Hosts» (2) и нажать кнопку «Create host»:

Цена: 2 240 руб.

Цена: 1 400 руб.

Цена: 8 157 руб.

Цена: 15 700 руб.

Цена: 1 224 руб.

Цена: 6 700 руб.

Цена: 3 800 руб.