Работа с SNMP в Zabbix на примере мониторинга температуры

новый zabbix

Сегодня мы попробуем совметить приятное с полезным: понять, как Zabbix работает с SNMP, разобраться с новой железкой и организовать мониторинг температуры в серверной.

Итак, железка: контроллер температуры Sensatronics E4 -- работает с 4 датчиками, доступен по Ethernet. Текущая температура отображается на web-странице. Для того, чтобы получать более полные отчёты и графики, компания-производитель предлагает купить специальный софт. Мы пойдём другим путём © и организуем мониторинг температуры уже имеющимися средствами Zabbix.

Сразу оговорюсь, что этот пост ни разу не рекламный и Сенсатроникс мне ничего не заплатил. А для работы можно использовать и другие термодатчики -- как сетевые (работающие по SNMP), так и поключаемые к компьютеру (по serial или USB интерфейсам). Но в данный момент речь пойдёт именно о SNMP-мониторинге. Интересно, что в разделе Download есть плагины для Big Brother, MRTG и Nagios, так что выкручиваться придётся своими силами.

Прежде всего, необходимо убедиться, что zabbix сервер собран с поддержкой SNMP. Что-то вроде этого:

./configure --with-mysql --enable-server --with-libcurl --with-net-snmp

Для успешной сборки в системе должны быть установлены пакеты net-snmp и net-snmp-devel. Признаком того, что zabbix сервер собрался с поддержкой SNMP, служат такие сообщения в логе при старте:

6070:20081126:115303 Starting zabbix_server. ZABBIX 1.6.1.
6070:20081126:115303 **** Enabled features ****
6070:20081126:115303 SNMP monitoring:        YES

Теперь можно приступить. Вначале устанавливаем сам контроллер, настраиваем сеть, подключаем датчики и убеждаемся, что он работает: в web-интерфейсе должна отображаться текущая температура. Далее, вводим его в SNMP-community. Я намеренно не описываю подробно эти действия потому, что они, во-первых, делаются по инструкции, а во-вторых, на разных устройствах выполняются по-разному.

Теперь заводим в интерфейсе новый хост:

Обратитет внимание, что пока мы экспериментируем, можно не подключать никакие шаблоны. Вначале мы сами сделаем необходимые айтемы и триггеры, а потом создадим свой шаблон и скопируем их туда.

Теперь создаём айтемы (параметры мониторинга). Для этого воспользуемся базой SNMP MIBs с сайта производителя. Каждому датчику термоконтроллера соответсвует один айтем, поэтому в нашем случае заводим 4 айтема.

Обратите внимание, что в качестве типа параметра выбран "SNMPv1 agent", и прописано необходимое SNMP-comunity.

Убеждаемся, что мониторинг заработал: данные должны собираться и график строиться:

Теперь займёмся сигнализацией. Для этого создаём триггеры:

Поскольку мы можем делать несколько триггеров разной степени серьёзности, настроим повышение температуры выше 20 градусов на серьёзность Warning, выше 25 -- Average, выше 30 -- High и выше 35 -- Disaster. Можно сделать ещё один порог срабатывания -- 60 градусов. Это будет означать, что в серверной начался пожар или извержение вулкана :-). Такая градация позволит гибко управлять рассылкой сообщений различным пользователям и на разные транспорты (почта, SMS). Получив на почту сообщение, что температура стала выше 20 градусов, можно неторопясь сходить посмотреть, что за раззява оставил дверь серверной нараспашку, а приняв SMS о температуре выше 35 -- уже нестись стрелой, на пути звоня техникам по кондиционерам!

Получается, что на каждый датчик (айтем) будет ещё несколько триггеров! Казалось бы, это уже все? Ан нет! Мы же хотим сделать хороший мониторинг? А что случится, если выйдет из строя датчик, окислится его контакт или оборвётся провод? В устройствах Sensatronics в этом случае будет отображаться температура -99 градусов. Следовательно, ни один из наших триггеров не сработает и все будут считать, что всё в порядке! Значит, нужно сделать ещё один триггер с серьёзностью Disaster, который, например, будет срабатывать, например, при уменьшении температуры ниже -10.

Также, на случай выхода из строя самого контроллера или сетевых проблем необходимо создать айтем icmpping и соответствующий ему триггер.

Вот собственно, и всё. Теперь можно включать наш Zabbix Host в необходимые группы оповещения, прописывать Actions и тестировать систему, нагревая датчик и контролируя приход сообщений. Далее, можно создать свой собственный шаблон, в который скопировать необходимые Items и Triggers, для того, чтобы уже следующий термоконтроллер можно было подключить к системе мониторинга "в два клика".