Мониторинг температуры и управление устройствами в системе Zabbix
Мониторинг температуры и управление устройствами в системе Zabbix
В предыдущих статьях ([1], [2], [3]) были показаны реализация мониторинга и управление температурой с помощью устройств NetPing и программных пакетов MRTG и Cacti.
Однако оба варианта не свободны от недостатков, так например, MRTG не имеет удобного инструмента настройки и не позволяет штатными средствами ограничить доступ пользователей к графикам, а Cacti хотя и свободен от указанных выше недостатков, но не имеет поддержки триггеров и потому исключает возможность своевременной обработки исключительных ситуаций.
От всех этих недостатков свободна система мониторинга Zabbix. Она проста в установке, имеет простой интерфейс управления, поддержку триггеров и позволяет управлять просмотром графиков пользователями. Единственным минусом системы является полная невозможность работы с отрицательными значениями показателей, но если говорить о мониторинге температуры в помещении, где температура обычно положительная, этот недостаток мешать не будет.
В этой статье будет показано, как организовать мониторинг температуры с использованием устройств NetPing TS v2 и Zabbix, а также настроить своевременное оповещение пользователей о критических ситуациях.
Переходим к развёртыванию нашего решения. Для начала опишем начальные условия:
- Сервер мониторинга под управлением Ubuntu 9.04 Server, который имеет IP-адрес 192.168.2.230;
- Устройство NetPing TS v2, имеющее IP-адрес 192.168.2.10, и SNMP-Community SWITCH, доступ к которому разрешён, как минимум, с сервера мониторинга.
Первым делом, установим на сервер Zabbix (нам понадобиться zabbix-server и web-интерфейс к нему):
apt-get install zabbix-server-mysql zabbix-frontend-php
В процессе установки потребуется скачать примерно пятьдесят пять мегабайт (если говорить о "свежеустановленном" сервере) и установить ряд дополнительных необходимых пакетов (в частности apache2 и mysql-server).
Также во время установки будет задан ряд вопросов. Почти на все можно выбрать ответ по умолчанию, кроме пароля для доступа zabbix к его базе данных, в данном случае лучше придумать пароль самому, потому что если не заполнять это поле - пароль будет сгенерирован автоматически, причём разный для сервера и веб-интерфейса (хотя должен быть одинаковый!), и система не будет работать.
После установки нужно открыть в браузере адрес: "http://192.168.2.230/zabbix". Если при открытии страницы будет выдано информационное сообщение о том, что не установлена переменная date.timezone в файле php.ini, то нужно добавить в файл /etc/php5/apache2/php.ini в секцию Date строку:
date.timezone = "Europe/Moscow"
Разумеется, что часовой пояс нужно указывать свой (список возможных часовых поясов можно найти в директории /usr/share/zoneinfo). Далее необходимо перезапустить web-сервер:
invoke-rc.d apache2 restart
Далее обновляем страничку и авторизуемся в системе, используя логин «Admin» и пароль «zabbix».
Положительной особенностью системы Zabbix является возможность использования шаблонов наблюдаемых хостов, которые можно экспортировать/импортировать, поэтому для упрощения задачи был подготовлен готовый шаблон, который можно скачать тут (Зеркало). Остаётся только импортировать его в систему.
Для импорта шаблона нужно перейти в раздел «Configuration» -> «Export/Import» и выбрать в выпадающем меню пункт «Import». В появившемся диалоге нужно выбрать наш файл шаблона и нажать кнопку «Import», после этого должно появится сообщение об успешной загрузке шаблона.
Теперь создадим хост, который будет наблюдаться по этому шаблону. Для этого переходим в раздел «Configuration» -> «Hosts», в выпадающем меню выбираем пункт «Hosts» и нажимаем кнопку «Create Host», открывшуюся таблицу заполняем следующим образом:
1
Параметр | Значение |
Name | "Человеческое" имя хоста, например, «NetPing TS v2» |
In Groups | Эта группа полей используется для выбора группы, в которой будет находиться хост. Выберите одну или несколько групп и/или создайте новую, используя поле «New group» |
DNS name | Лучше оставить пустым |
IP address | 192.168.2.10 |
Connect to | IP address |
Port | 161 |
Monitored by proxy | (no proxy) |
Status | Monitored |
Link with Template | Здесь надо выбрать шаблон «Template_NetPing_TS_v2» |
Остальные параметры оставляем по умолчанию и жмём «Save», после чего должно появится сообщение об успешном добавлении хоста, если же будет показано сообщение об ошибке - внимательно проверьте правильность заполнения формы.
Убедиться, что началось наблюдение за устройством, можно в разделе «Monitoring» -> «Overview» -> «Data». Если клинкуть по текущему значению температуры, то можно увидеть примерно вот такой график:
Зелёная линия на графике показывает среднее значение температуры, а жёлтое поле - колебания этого значения.
Всё, мониторинг температуры у нас есть. Какими могут быть следующие шаги? Ну, во-первых, это сведение нескольких графиков в один (чтобы можно было наблюдать за температурой сразу в нескольких точках, а также делать сравнительные оценки), а во-вторых, мы можем настроить оповещения об отклонении температуры от нормы.
Для начала попробуем сделать сводный график с двух сенсоров, для этого переходим в раздел «Configuration» -> «Graphs» и нажимаем кнопку «Create Graph». В появившейся форме нужно ввести имя графика, например, «Term1 vs Term2» и добавить на график два элемента: «NetPing TS v2: Term on sensor 1» и «NetPing TS v2: Term on sensor 2». Добавление элементов сделано интуитивно понятным, и потому заострять на нём внимание мы не будем. После добавления элементов нужно нажать кнопку «Save», и график будет создан.
Чтобы просмотреть график нужно перейти в раздел «Monitoring» -> «Graphs» и выбрать его в списке. Выглядеть сводный график будет примерно вот так:
Закончив со сводными графиками, перейдём к настройке оповещений, для начала создадим триггер, который будет срабатывать, когда температура на первом сенсоре превысит отметку в двадцать девять градусов, для этого идём в раздел «Configuration» -> «Triggers» и нажимаем кнопку «Create Trigger». Появившуюся форму нужно заполнить следующим образом:
Параметр | Значение |
Name | Название триггера. Например, «High temperature on sensor 1» |
Expression | Тут надо добавить выражение "{NetPing TS v2:SWITCH_1.last(0)}>29", которое означает, что триггер включается, когда температура на первом сенсоре нашего устройства превышает отметку в 29 градусов. В принципе, можно задать любое условие, для этого надо воспользоваться кнопкой «Insert», после нажатия которой появится удобный и интуитивно понятный мастер создания выражений |
The trigger depends on | Здесь нужно указывать зависимости триггера. В данном случае их нет |
Event generation | Normal |
Severity | Уровень важности триггера. Например, «Warning». |
Comments | Комментарии к триггеру. Можно оставить это поле пустым |
URL | Адрес с дополнительной информацией о триггере. В данном случае лучше оставить пустым |
Disabled | Если поставить галочку - триггер будет отключен. Нам этого не нужно, так что оставляем как есть |
Далее нажимаем кнопку «Save» и получаем сообщение об успешном создании триггера. Состояние триггера можно просмотреть на странице «Monitoring» -> «Overview», выбрав в выпадающих меню группу, в которой находится наше устройство и тип отображения «Triggers».
Если мы хотим получать состояние триггера по e-mail/Jabber/SMS, то для начала зададим средства связи для нашего пользователя, можем так же создать отдельного пользователя и назначать средства связи ему.
Средства связи задаются в разделе «Administration» -> «Users». Там нужно выбрать текущего пользователя и в открывшейся форме заполнить раздел «Media», добавив новые средства связи, следует отметить, что выбирая уровни важности оповещений в разделе «Use if severity», как минимум, нужно поставить галочку напротив того уровня, который был задан при создании триггера в разделе «Severity».
Кроме того нужно ещё посетить раздел «Administration» -> «Media types» и сконфигурировать средства отправки сообщений. Рассмотрение этих настроек выходит за рамки статьи, так что если Вы не знакомы с ними, рекомендуем обратиться к официальной документации Zabbix.
Закончив настройку средств оповещения, настроим отправку состояний заданного триггера указанному пользователю, для этого переходим в «Configuration» -> «Actions» и нажимаем кнопку «Create Action». Открывшуюся форму заполняем следующим образом:
Закончив заполнение формы, жмём кнопку «Save» и получаем сообщение об успешном создании действия. Теперь попробуем протестировать нашу систему. Если первый датчик находится сейчас при комнатной температуре, то мы можем просто зажать его пальцаи, и нагрев до температуры человеческого тела, которая заведомо выше порога в двадцать девять градусов, в течение нескольких минут, получить информационное сообщение о перегреве.
После того как мы отпустим датчик, он начнёт постепенно охлаждаться, и через некоторое время триггер выключится. Если при создании действия была установлена галочка «Recovery message», то об этом так же придёт сообщение.
На этом всё. Приятной работы!
Автор: Вадим Калинников
E-mail: moose@ylsoftware.com
Корректор: Фролова Мария
E-mail: smei.i.inaja@gmail.com