Примеры применения
19.06.2016

Как мониторить Zabbix по SMS при помощи NetPing SMS

Как мониторить Zabbix по SMS при помощи NetPing SMS

В нелёгкой работе системного администратора приходиться постоянно следить за состоянием сетевого оборудования и серверов. Данная задача осложняется во время отсутствия под рукой доступа к сети Интернет и необходимого инструмента. Статья описывает как при помощи телефона с возможностью отправки/получения SMS-сообщений и устройства NetPing SMS с системой мониторинга Zabbix, решить данную проблему.

Zabbix – универсальное и гибкое OpenSource решение для мониторинга сетевого оборудования (NMS) корпоративного масштаба. Система имеет возможность оповещения о события различными способами: E-mail, SMS, Jabber, пользовательские скрипты. В статье будет описан метод с использованием пользовательских скриптов и устройства NetPing SMS как SMS гейта для отправки SMS-ответов о состоянии запрашиваемых сенсоров в системе мониторинга Zabbix. Для приёма SMS-запросов также будет использовано устройство NetPing SMS, которое может транслировать SMS-запросы в Zabbix в виде SNMP трапов. В результате, при организации данного метода системный администратор всегда будет иметь актуальную информацию о состоянии сетевого оборудования в любой момент времени.

Требования

Для реализации представленного решения потребуется следующее оборудование:

  • шлюз для отправки и приёма SMS-команд NetPing SMS с установленной SIM картой;
  • настроенная система мониторинга Zabbix

Система мониторинга Zabbix может быть развернута как в виртуальной машине, так и на выделенном физическом сервере, подключенном в локальную сеть или в сеть Интернет. Если Zabbix работает на удаленном оборудовании в сети Интернет, а также используется маршрутизатор/роутер с функцией NAT и/или Firewall, то необходимо разрешить входящие пакеты по протоколу UDP (порт 162) в сторону Zabbix – для возможности получения SNMP TRAP из вне. За дополнительной информацией следует обратиться к документации на маршрутизатор/роутер или к администратору сети. В данной статье будет рассмотрена упрощенная схема, когда устройство NetPing SMS и сервер с системой мониторинга Zabbix находятся в одной локальной сети.

При необходимости шлюз NetPing SMS может быть подключён к сети по беспроводной технологии Wi-Fi посредством адаптера WiFi VAP11N. Адаптер приобретается отдельно. За дополнительной информацией следует обратиться к руководству пользователя.

Общие настройки

Программное обеспечение системы мониторинга Zabbix может быть установлено как в различных системах виртуального окружения, так и в виде готовых установочных пакетов для различных операционных систем. Также доступны исходные коды системы и официальная документация по установке и настройке. Более подробную информацию можно изучить по ссылкам (1 и 2).

Для простоты будет использоваться готовый официальный образ виртуальной машины на основе 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»

Скрипт zabbix_trap_receiver.pl

Perl скрипт zabbix_trap_receiver.pl для передачи трапов в Zabbix доступен по ссылке в данной статье или в исходных кодах Zabbix. Для этого нужно скачать и извлечь архив:

# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz/download

# tar -zxvf zabbix-2.2.2.tar.gz

Скопировать скрипт и установить ему права на выполнение:

# cp ./zabbix-2.2.1/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin

# chmod a+x /usr/local/bin/zabbix_trap_receiver.pl

Скрипт sendsms.sh

Для использования внешнего скрипта для отправки SMS-сообщений в конфигурационном файле Zabbix сервера /etc/zabbix_server.conf указать:

AlertScriptsPath = /usr/local/lib/zabbix/alertscripts

Поместить скрипт sendsms.sh в указанную директорию и установить ему права на выполнение:

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

Демон 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

Перезапустить 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 сервера

Авторизация под администратором в web-интерфейсе системы мониторинга Zabbix в случае примера осуществляется по адресу: http://192.168.0.124/zabbix

По умолчанию имя пользователя: Admin, пароль: zabbix

Поступающие SNMP TRAP сообщения будут обрабатываться по содержанию. Для этого необходимо создать шаблоны (Templates): один для обработки неверных (ошибочных) SMS-запросов и второй для обработки существующих SMS-команд.

В статье для примера, будут созданы обработчики двух SMS-команд:

  • ZABBIX show CPU status
  • ZABBIX show memory status

1. Template SNMP trap fallback

Перейти в раздел «Configuration» (1), подраздел «Templates» (2) и нажать «Create template» (3):

Создание шаблона в Zabbix

Задать имя шаблона (1) и добавить его в имеющуюся группу или создать новую (2):

Настройка шаблона в Zabbix

  1. «Template SNMP trap fallback»
  2. «Templates»

Сохранить настройки. После этого, в данном разделе появиться следующая запись:

Список шаблонов в Zabbix

Перейти к добавлению объектов в разделе «Items»:

Items в Zabbix

Для создания нового объекта нажать кнопку «Create item»:

Создание нового объекта в Zabbix

И заполнить соответствующие поля следующим образом:

Заполнение параметров для нового объекта в Zabbix

  1. «SNMP trap fallback»
  2. Выбрать «SNMP trap»
  3. «snmptrap.fallback»
  4. Выбрать «Log»

После сохранения настроек появиться новый объект «SNMP trap fallback». Перейти назад в раздел «Template list»:

Список объектов в Zabbix

Перейти к добавлению объекта в разделе «Triggers»:

Список триггеров в Zabbix

Для создания нового объекта нажать кнопку «Create trigger»:

Создание нового триггера в Zabbix

Заполнить поля следующим образом и сохранить настройки:

Настройка триггера в Zabbix

  1. «Umatched SNMP trap received {HOST.NAME}»
  2. «{Template SNMP trap fallback: snmptrap.fallback.nodata(60)}=0»

Здесь и далее в фигурных скобках {…} используются макросы Zabbix. 

После сохранения настроек в разделе появиться новый объект. Перейти назад в раздел «Template list»:

Просмотр триггера в Zabbix

2. Template SNMP traps

Аналогично разделу «1. Template SNMP trap fallback» перейти к созданию нового шаблона:

Создание нового шаблона в Zabbix

  1. «Template SNMP traps»
  2. Выбрать из списка справа «Templates»
  3. Перейти на вкладку «Linked template»

Связать данный шаблон с ранее созданным:

Привязка шаблонов в Zabbix

В поле (1) нужно выбрать имя ранее созданного шаблона «Template SNMP trap fallback» и нажать «Add» (2). Сохранить настройки.

Аналогично разделу «1. Template SNMP trap fallback» перейти к созданию двух новых объектов «Item». Первый объект будет обрабатывать SMS-запрос «ZABBIX show CPU status»:

Создание объекта в Zabbix

  1. «ZABBIX show CPU status»
  2. Выбрать «SNMP trap»
  3. «snmptrap["ZABBIX show CPU status"]»
  4. Выбрать «Log»

Сохранить настройки.

Второй объект будет обрабатывать SMS-запрос «ZABBIX show memory status»:

Создание объекта в Zabbix

  1. «ZABBIX show memory status»
  2. Выбрать «SNMP trap»
  3. «snmptrap["ZABBIX show memory status"]»
  4. Выбрать «Log»

Сохранить настройки.

Аналогично разделу «1. Template SNMP trap fallback» перейти к созданию двух новых объектов «Triggers». Один будет срабатывать для «ZABBIX show CPU status»:

Создание триггера в Zabbix

  1. «ZABBIX show CPU status from {HOST.NAME}»
  2. «{Template SNMP traps:snmptrap["ZABBIX show CPU status"].nodata(60)}=0»

Второй будет срабатывать для «ZABBIX show memory status»:

Создание триггера в Zabbix

  1. «ZABBIX show CPU status from {HOST.NAME}»
  2. «{Template SNMP traps:snmptrap["ZABBIX show memory status"].nodata(60)}=0»

В результате раздел «Items» для данного шаблона будет выглядеть следующим образом:

Items в Zabbix

Раздел «Triggers» для данного шаблона будет выглядеть следующим образом:

Просмотр триггеров в Zabbix

Если перейти в раздел всех шаблонов (Templates), то созданные объекты должны выглядеть следующим образом

Просмотр шаблонов в Zabbix

3. Добавление хоста

Для добавления устройства NetPing SMS, с которого будут поступать SNMP TRAP сообщения нужно перейти в раздел «Configuration» (1), подраздел «Hosts» (2) и нажать кнопку «Create host»:

Добавление узла в Zabbix

Указать имя хоста (1), группу (2) и IP адрес (3):

Настройка нового узла в Zabbix

  1. «NetPingSMS»
  2. «Trap servers»
  3. «192.168.0.123»

Далее перейти на вкладку «Templates». В поле (1) выбрать имя ранее созданного шаблона «Template SNMP traps» и нажать кнопку «Add» (2). Сохранить настройки: 

Привязка шаблона к узлу в Zabbix

4. Добавление нового способа оповещения по SMS

Для добавления нового способа оповещения по SMS через устройство NetPing SMS посредством скрипта sendsms.sh следует перейти в раздел «Administaration», подраздел «Media types» и нажать кнопку «Create media type»:

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

Заполнить поля следующим образом:

Настройка способа оповещения в Zabbix

  1. «SendSMS»
  2. «Выбрать «Script»
  3. «sendsms.sh»

Сохранить настройки.

5. Подключение нового способа оповещения пользователю Zabbix

Подключить новый способ оповещения одному из пользователей Zabbix, например, пользователю Admin. Для этого перейти в раздел «Administaration» (1), подраздел «Users» (2) и нажать «Admin (Zabbix Administrator)» (3):

Подключение способа оповещения пользователю в Zabbix

Перейти на вкладку «Media» (1), нажать кнопку «Add» (2):

Подключение способа оповещения пользователю в Zabbix

В появившемся окне заполнить поля:

Настройка способа оповещения в Zabbix

  1. Выбрать ранее созданный тип оповещения: SendSMS
  2. Указать номер мобильного телефона для отправки ответов на запросы в международном формате: +[код страны][номер телефона]
  3. Указать дни и время работы оповещения.
  4. Указать для каких типов событий должно быть использовано оповещение: указать для всех.

Нажать кнопку «Add» и сохранить изменения.

6. Настройка действий (Action)

6.1 Wrong SMS command

Для настройки отправки SMS-ответов на срабатывание триггеров нужно перейти в раздел «Configuration» (1), подраздел «Actions» (2) и нажать кнопку «Create action» (3):

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

Создать действие для неверных (ошибочных) SMS-запросов:

Настройка действия в Zabbix

  1. «Wrong SMS command»
  2. «Wrong SMS command»
  3. «You sent a wrong SMS command»
  4. Перейти на вкладку «Conditions»

На вкладке «Conditions» сделать следующие настройки:

Настройка условий в Zabbix

Выбрать «New condition» (2) и заполняя поле напротив, добавить через «Add» (3) два условия (4) проверки событий. Перейти на вкладку «Operations» (5) и нажать «New»:

Настройка действия в Zabbix

Для «Operation type» (1) выбрать «Send message». Через «Add» (2) в «Sent to Users» добавить пользователя Admin «(Zabbix Administrator)», a в «Send only to» (3) выбрать «SendSMS». Далее нажать кнопку «Add» (4) и сохранить настройки.

Тип действия в Zabbix

Таким образом, данное действия на любой SMS-запрос, отличный от:

  • «ZABBIX show CPU status»
  • «ZABBIX show memory status»

Будет отправлять SMS-ответ: «You sent a wrong SMS command».

6.2 ZABBIX show CPU status

Аналогично действию «Wrong SMS command» следует создать действие «ZABBIX show CPU status» на соответствующую SMS-команду:

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

  1. «ZABBIX show CPU status»
  2. «Response: {TRIGGER.NAME}»
  3. «CPU load: {Zabbix server:system.cpu.load[percpu.avg1].avg(1m)};{Zabbix server:system.cpu.load[percpu.avg1].avg(5m)};{Zabbix server:system.cpu.load[percpu.avg1].avg(1m)}»
  4. Перейти на вкладку «Conditions»

На вкладке «Conditions» сделать следующие настройки:

Создание условия в Zabbix

Выбрать «New condition» (2) и заполнить поле напротив, добавить через «Add» (3) два условия (4) проверки событий. Конфигурацию вкладки «Operations» настроить аналогично действию «Wrong SMS command».

6.3 Zabbix show memory status

Аналогично действию «Wrong SMS command» следует создать действие «ZABBIX show memory status» на соответствующую SMS-команду:

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

  1. «ZABBIX show memory status»
  2. «Response: {TRIGGER.NAME}»
  3. «CPU load: {Zabbix server:vm.memory.size[available].last(0)}»
  4. Перейти на вкладку «Conditions»

На вкладке «Conditions» сделать следующие настройки:

Создание условия в Zabbix

Выбрать «New condition» (2) и заполнить поле напротив, добавить через «Add» (3) два условия (4) проверки событий. Конфигурацию вкладки «Operations» настроить аналогично действию «Wrong SMS command».

Настройка NetPing SMS

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

  • установить SIM карту оператора сотовой связи;
  • настроить необходимые параметры для работы с сетью передачи данных;
  • указать на странице «НАСТРОЙКИ» web-интерфейса NetPing SMS IP адрес Zabbix сервера для отправки SNMP TRAP сообщений

Настройка NetPing SMS

Результат

Таким образом, при корректной конфигурации вышеописанной схемы в случае отправки SMS-запросов в систему мониторинга Zabbix на мобильный телефон будут приходить SMS-ответы в следующем виде:

Как мониторить по SMS сенсоры в Zabbix при помощи NetPing SMS


  • Устройство NetPing SMS

Основные теги


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство UniPing v3
Устройство NetPing 2/PWR-220 v1/SMS
Устройство NetPing 2/PWR-220 v3/ETH
Устройство NetPing /PWR-220 v3/ETH
Устройство UniPing server solution
Устройство UniPing server solution v3/SMS
Устройство NetPing IO v2
Устройства NetPing
Каталог датчиков для устройств NetPing
Устройство NetPing 8/PWR-220 v3/SMS
Устройство NetPing 2/PWR-220 v2/SMS
Устройство NetPing 4/PWR-220 v3/SMS
Устройство NetPing SMS
Адаптер WiFi VAP11N
Коммутатор PS104GT
Устройство NetPing Mini-UPS
Коммутатор NP-SM4
Сплиттер POE 12В (стандарта 802.3af)
IRC-TR v2 (ИК модуль расширения)
Каталог устройств удалённого управления и распределения электропитания NetPing
Устройство UniPing server solution v3
Датчик разбития стекла (Стекло-3 ИО 329-4), 2м
Переходник для NetPing IO v2
Устройство NetPing PWR68-01
Датчик мониторинга 220В 1-wire
Адаптер DKST910.8
Устройство NetPing DKST61-01
Блок питания 48В 1,5А (мод.HRS20005)
Датчик температуры TS, 1м
Датчик температуры, (T811), 2м
Датчик температуры WT, 1м
Датчик протечки, модель 2605, 2м
Датчик протечки H2О
Датчик температуры 1-wire, (THS), 2м
МАЯК-12-СТ
Датчик движения (PYRONIX COLT QUAD PI ПИК детектор), 2м
Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
BM8070D Силовое реле 16А/250В на DIN-рейку
MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A10R с базой Е412NL
МОЛЛЮСК-12/1,5
Внешний ИБП SKAT-12DC-1.0 Li-ion
ИКС-1 извещатель охранный инфракрасный активный однолучевой
Готовое решение для мониторинга серверной комнаты на основе UniPing server solution v3/SMS
Датчик охранный (Извещатель охранный ИО102-20/Б2П, 2м)
▼ Все теги
Новинки
Блок розеток SNR-PDU-08S-1
Блок розеток SNR-PDU-08S-1 предназначен для подключения различного оборудования к сети с напряжением подробнее...

Цена: 3 236 руб.

Датчик воздушного потока LCF013
Датчик воздушного потока позволяет контролировать наличие или отсутствие напора воздушного потока. Содержит подробнее...

Цена: 2 587 руб.

ИКС-1 извещатель охранный инфракрасный активный однолучевой
Извещатель предназначен для регистрации пересечения нарушителями контролируемой зоны, образованной оптическим подробнее...

Цена: 3 854 руб.

Внешний ИБП SKAT-12DC-1.0 Li-ion
Малогабаритный источник бесперебойного питания (ИБП) со встроенной Li-Ion АКБ. Для питания устройств подробнее...

Цена: 3 200 руб.

МОЛЛЮСК-12/1,5
Малогабаритный блок питания с выходным напряженим 12 В. Имеет уникальный корпус, который позволяет осуществить подробнее...

Цена: 950 руб.

Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A10R с базой Е412NL
Комбинированный извещатель предназначен для обнаружения возгораний в помещениях различных зданий и сооружений подробнее...

Цена: 2 098 руб.

MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Силовой модуль коммутации предназначен для обеспечения управления при помощи устройств NetPing силовыми подробнее...

Цена: 1 400 руб.

BM8070D Силовое реле 16А/250В на DIN-рейку
Блок реле для удалённой коммутации мощной нагрузки при помощи устройств NetPing. Изготавливается в корпусе подробнее...

Цена: 1 350 руб.

Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
Пассивный инфракрасный детектор движения позволяет регистрировать любое движение в зоне до 18 метров. подробнее...

Цена: 1 516 руб.

МАЯК-12-СТ
Оповещатель охранно-пожарный световой стробоскопический предназначен для выдачи световых стробоскопических подробнее...

Цена: 385 руб.

Датчик протечки H2О
Датчик протечки позволяет определить наличие воды в точке установки датчика. Устанавливается в нескольких подробнее...

Цена: 1 450 руб.

-+ руб. руб.
Итого руб.

Данные о заказе