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

Пример мониторинга серверной комнаты на основе Monit, InfluxDB, Grafana и устройств NetPing

Пример мониторинга серверной комнаты на основе Monit, InfluxDB Grafana и устройств NetPing

В данной статье мы рассмотрим настройку системы мониторинга Monit для работы с устройствами мониторинга серверных комнат NetPing. Monit - это легковесная система мониторинга серверов, которая устанавливается на сервер и обеспечивает возможность отправки уведомлений в случае обнаружения проблем. Кроме того, Monit может автономно выполнять определённое Вами действие в качестве реакции на заданные события. Она представляет из себя самостоятельный демон, работающий от пользователя root. Главным преимуществом используемой системы является её простота - в минимальной конфигурации достаточно исполняемого файла и файла конфигурации. Расширить функционал системы можно при помощи самописных скриптов.

Для реализации работы примера мониторинга серверной комнаты на основе Monit и устройств NetPing нам понадобятся:

Настройка UniPing server solution v3/SMS и подключение к нему датчиков

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

  1. Переходим в раздел настроек устройства;
  2. Осуществляем базовую настройку сетевого интерфейса;
  3. Осуществляем базовую настройку параметров доступа (логин и пароль от Web-интерфейса, community чтения и записи, фильтр доступа по IP) при необходимости.

UniPing настройка

Подключение датчиков

Чтобы подключить 1-Wire датчик, нам нужно узнать его уникальный номер. Сам процесс подключения хорошо описан в этой статье. Таким образом подключаются датчики температуры 1-Wire и влажности 1-Wire.

За информацией о подключении и настройке датчиков можно обратиться к официальной документации

Датчики температуры 1-Wire

UniPing настройка

Датчики влажности 1-Wire

UniPing настройка

Датчики наличия 220В, протечки, открытия двери и воздушного потока подключаются к IO линиям. Эти датчики являются датчиками типа "сухой контакт". В документации хорошо описана их настройка.

UniPing настройка

Установка и настройка Monit

В качестве первого шага нам необходимо скачать и установить систему мониторинга Monit, и установить дополнительные пакеты, необходимые для работы скриптов, на сервер с установленной ОС Ubuntu x64.

Скачиваем с официального сайта архив с Monit:

wget https://mmonit.com/monit/dist/binary/5.25.2/monit-5.25.2-linux-x64.tar.gz

распаковываем его:

tar xvf monit-5.25.2-linux-x64.tar.gz

копируем в домашнюю папку и переименовываем:

cp -R monit-5.25.2-linux-x64 /home/user/monit

создаём папки для своих конфигурационных файлов и скриптов:

mkdir /home/user/monit/conf/user

mkdir /home/user/monit/conf/scripts

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

В файле /home/user/monit/conf/monitrc находим секцию, начинающуюся с set httpd port 2812 and, и приводим её к виду:

set httpd port 2812 and #при необходимости меняем порт сервера на нужный
    use address 192.168.0.123 #указываем адрес, на котором будет сервер ожидать входящие подключения
    allow admin:monit # учетные данные для входа в Web-интерфейс

В конце файла настраиваем подключение пользовательских файлов конфигурации и указываем их местонахождение:

include /home/user/monit/conf/user/*

Устанавливаем пакеты SNMP и Curl. Для сбора показаний нам понадобится snmpget, а для записи данных в базу - curl.

apt-get install snmp curl

Запускаем систему мониторинга. Чётко указываем пути до исполняемого файла и файла конфигурации при запуске.

/home/user/monit/bin/monit -c /home/user/monit/conf/monitrc    

Интерфейс системы ничем не примечателен и содержит минимум необходимых элементов. По умолчанию мы видим информацию по серверу, куда установлен Monit.

NetPing Monit Dashboard

Для того, чтобы добавить новые элементы мониторинга, необходимо согласно документации указать в конфигурации сервисы для мониторинга. По умолчанию Monit не умеет считывать какие-либо показания по SNMP, но он умеет исполнять сторонние скрипты и на основании кода завершения предпринимать те или иные действия, что открывает простор для кастомизации - как мы и поступим.

Для мониторинга используемых в данном примере датчиков мы подготовили три скрипта, их нужно поместить в /home/user/monit/conf/scripts:

  • get_io.sh - скрипт считывает состояние IO линии устройства мониторинга серверных комнат UniPing server solution v3/SMS, запускается с параметрами ./get_io.sh <номер IO линии> <нормальное значение> <значение тревоги> (например, для датчика наличия 220В, подключенного к IO1 - /get_io.sh 1 1 0). IP адрес устройства и community указываются в теле скрипта.
  • get_relhumtemp1w.sh - скрипт считывает показания датчика относительной влажности и встроенного в него датчика температуры, запускается с параметром ./get_relhumtemp1w.sh <номер датчика>, верхнюю и нижнюю границы диапазона влажности и температуры скрипт берёт с UniPing server solution v3/SMS и на их основании выдаёт событие о тревоге. IP адрес устройства и community указываются в теле скрипта.
  • get_temp1w.sh - скрипт считывает показания датчика температуры, запускается с параметром ./get_temp1w.sh <номер датчика>, верхнюю и нижнюю границы диапазона температуры скрипт берёт с UniPing server solution v3/SMS и на их сновании выдаёт событие о тревоге. IP адрес устройства и community указываются в теле скрипта.

Файл конфигурации (необходимо извлечь его из архива) помещаем в /home/user/monit/conf/user:

  • netping.7z - в файле конфигурации настроен мониторинг доступности UniPing server solution v3/SMS (ping) и мониторинга показаний подключённых к нему датчиков.

После этого перезапускаем Monit:

/home/user/monit/bin/monit -c /home/user/monit/conf/monitrc reload all

И видим в web-интерфейсе системы мониторинга Monit информацию по датчикам, подключенных к устройству мониторинга серверной комнаты UniPing server solution v3/SMS:

NetPing Monit Dashboard с датчиками

На этом основная часть по настройке Monit и UniPing server solution v3/SMS для мониторинга серверной комнаты окончена. "Из коробоки" Monit не умеет рисовать графики, для этого дополнительно воспользуемся связкой InfluxDB + Grafana:

  • InfluxDB - time-series база данных, по своей специфике схожа с RRD;
  • Grafana - мощная и гибкая Dashboard.

Установка и настройка InfluxDB

Для установки InfluxDB переходим на официальный сайт в раздел загрузок. Ищем в списке нашу операционную систему - в примере используется Ubuntu x64:

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.5.4_amd64.deb
sudo dpkg -i influxdb_1.5.4_amd64.deb

Теперь нам нужно в файле конфигурации разрешить управление базой через HTTP API. Для этого в файле /etc/influxdb/influxdb.conf нужно раскоментировать строки:

enabled = true
bind-address = "localhost:8086"

Далее перезапускаем InfluxDB для применения новых настроек:

service influxdb restart

И создаём базу данных для хранения показаний датчиков:

curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE netping"

С полной документацией на InfluxDB можно ознакомиться на официальном сайте.

Установка и настройка Grafana

Переходим на официальный сайт в раздел загрузок.

Согласно версии нашей ОС скачиваем и устанавливаем пакет:

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_5.2.1_amd64.deb
dpkg -i grafana_5.2.1_amd64.deb

Запускаем и конфигурируем для автозагрузки:

service grafana-server start
update-rc.d grafana-server defaults

Затем редактируем файл /etc/grafana/grafana.ini

htpp_addr = 192.168.0.123 #интерфейс, на котором веб-сервер будет ожидать входящих подключений

http_port = 8484 #порт, на котором веб-сервер будет ожидать входящих подключений

Перезапускаем:

service grafana-server start

Теперь, по адресу http://192.168.0.123:8484 мы можем увидеть web-интерфейс:

Grafana Home

Вначале мы должны указать, где лежат сохраняемые нами показания датчиков, так называемый Data Source. Переходим по ссылке http://192.168.0.123:8484/datasources. Жмём Add data source:

Grafana добавление источника данных

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

  • Type - InfluxDB (тип источника данных).
  • Name - netping_ds (имя источника данных).
  • URL - http://localhost:8086 (адрес подключения к базе данных).
  • Database - netping (имя базы данных, созданной нами на этапе установки InfluxDB).

Grafana добавление источника данных

Ниже нажимаем Save & Test:

Grafana save DS

После этого в списке появится наш источник данных, база данных InfluxDB, где содержатся данные, собираемые с датчиков:

Grafana источник данных NetPing

Процесс настройки Dashboard описан в документации. В рамках данной статьи мы не будем его разбирать. Вместо этого мы импортируем уже готовую Dashboard:

Скачиваем:

Переходим в:

Grafana import NetPing Dasboard

Далее загружаем JSON файл.

Grafana import NetPing Dashboard

Указываем желаемое имя нашей Dashboard и уникальный идентификатор (оставляем по умолчанию) и жмём Import:

Grafana import NetPing Dashboard

И видим готовую Dashboard с отображением всех подключённых датчиков:

Grafana NetPing Dashboard

Вывод

Monit представляет из себя легковесную систему мониторинга, направленную, прежде всего, на мониторинг серверов, сети и различных служб. Сбор показаний датчиков при помощи этой системы нетривиален и требует навыков работы в командной строке и написании скриптов. Кроме того, система не позволяет "из коробки" строить графики, что создает некоторые сложности в работе. Несмотря на это, система полностью справляется с мониторингом отдельно взятого хоста и автоматизацией в принятии решений на основе данных мониторинга.


  • Все устройства

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


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство UniPing v3
Устройство UniPing server solution v3/SMS
Устройство NetPing 2/PWR-220 v1/SMS
Устройство NetPing IO v2
Устройства NetPing
Каталог датчиков для устройств NetPing
Устройство NetPing 8/PWR-220 v3/SMS
Устройство NetPing 2/PWR-220 v3/ETH
Устройство NetPing 2/PWR-220 v2/SMS
Устройство NetPing 4/PWR-220 v3/SMS
Устройство NetPing SMS
Устройство NetPing /PWR-220 v3/ETH
Адаптер WiFi VAP11N
Коммутатор PS104GT
Устройство NetPing Mini-UPS
Коммутатор NP-SM4
Сплиттер POE 12В (стандарта 802.3af)
IRC-TR v2 (ИК модуль расширения)
Каталог устройств удалённого управления и распределения электропитания NetPing
Устройство UniPing server solution
Устройство UniPing server solution v3
Датчик разбития стекла (Стекло-3 ИО 329-4), 2м
Переходник для NetPing IO v2
Блок питания 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М-A1R с базой Е412NL
МОЛЛЮСК-12/1,5
Внешний ИБП SKAT-12DC-1.0 Li-ion
ИКС-1 извещатель охранный инфракрасный активный однолучевой
Датчик охранный (Извещатель охранный ИО102-20/Б2П, 2м)
Блок розеток SNR-PDU-08S-1
Устройство NetPing 2/PWR-220 v4/SMS
Устройство UniPing server solution v4/SMS
Устройство NetPing 8/PWR-220 v4/SMS
VT592 кабельный датчик протечки
WLC10 кабель протечки
NetPing Connection board v2 (коммутационная плата для UniPing v3)
Инжектор питания POE (стандарта 802.3af)
NetPing датчик наличия электропитания 995S1
Устройство NetPing 2/PWR-220 v12/ETH
Устройство NetPing 2/PWR-220 v13/GSM3G
Датчик наличия 220В (мод. HRS05005), 1.5м
NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
NetPing датчик качества электропитания 1-wire 910S20
PLController R15250 силовое реле 15A/250В на DIN-рейку
NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Устройство NetPing server solution v5
Устройство NetPing ИК модуль, модель 3801
Устройство NetPing server solution v5/GSM3G
Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство NetPing 4/PWR-220 v6.2/GSM3G
NetPing IO v3
NetPing Input+Relay v1
NetPing NP-GB322
Устройство NetPing 4/PWR-220 v6.4/ETH
▼ Все теги
Новинки
NetPing v4
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet на DIN-рейку. Позволяет удаленно подробнее...

Цена: 10 650 руб.

Источник питания СКАТ MOLLUSK-VRK 12/2
Адаптер питания может использоваться для питания устройств NetPing и некоторых моделей управляемых коммутаторов.Выходное подробнее...

Цена: 950 руб.

Устройство NetPing 4/PWR-220 v6.4/ETH
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU).4 канала подробнее...

Цена: 15 730 руб.

NetPing NP-GB322
Коммутатор Ethernet на 5 портов 10/100/1000 BASE-TX с поддержкой PoE (электропитание по Ethernet-кабелю) 5 подробнее...

Цена: 4 290 руб.

NetPing Input+Relay v1
Компактное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно подробнее...

Цена: 6 200 руб.

NetPing IO v3
Компактное бескорпусное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет подробнее...

Цена: 2 500 руб.

Устройство NetPing 4/PWR-220 v6.2/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

NetPing блок розеток 1-wire 888S0201
Блок розеток предназначен для удаленного управления нагрузкой. Устройство не является самостоятельным, подробнее...

Цена: 10 980 руб.

Устройство NetPing ИК модуль, модель 3801
ИК-контроллер для дистанционного и автоматического управления устройствами с инфракрасным интерфейсом подробнее...

Цена: 8 580 руб.

Устройство NetPing server solution v5
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 18 000 руб.

Устройство NetPing server solution v5/GSM3G
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 26 000 руб.

PLController R15250 силовое реле 15A/250В на DIN-рейку
Силовое реле в корпусе для крепления на DIN-рейку предназначено для удаленной коммутации мощной нагрузки.Напряжение подробнее...

Цена: 1 429 руб.

NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Адаптер предназначен для подключения аналоговых датчиков, передающих сигнал изменением протекающего подробнее...

Цена: 3 354 руб.

NetPing датчик качества электропитания 1-wire 910S20
Датчик предназначен для мониторинга качества электропитания в розетке. Датчик должен быть подключен подробнее...

Цена: 2 240 руб.

NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
Активный удлинитель-разветвитель для подключения датчиков 1-wire к устройствам NetPing5 портов для подключения подробнее...

Цена: 1 400 руб.

Устройство NetPing 2/PWR-220 v12/ETH
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU)2 независимые управляемые подробнее...

Цена: 8 157 руб.

Устройство NetPing 2/PWR-220 v13/GSM3G
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU) c поддержкой управления подробнее...

Цена: 15 700 руб.

NetPing датчик наличия электропитания 995S1
Датчик позволяет определить наличие напряжения в розетке питания. Выполнен в корпусе блока питания с подробнее...

Цена: 1 224 руб.

WLC10 кабель протечки
Чувствительный кабель для использования совместно с датчиком VT592. Может быть смонтирован в труднодоступных подробнее...

Цена: 6 700 руб.

VT592 кабельный датчик протечки
Датчик предназначен для работы совместно с кабелем протечки WLC10. Возможность подключения датчика как подробнее...

Цена: 3 800 руб.

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

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