Сегодня мы попробуем совметить приятное с полезным: понять, как Zabbix работает с SNMP, разобраться с новой железкой и организовать мониторинг температуры в серверной.
Итак, железка: контроллер температуры Sensatronics E4 [2] — работает с 4 датчиками, доступен по Ethernet. Текущая температура отображается на web-странице. Для того, чтобы получать более полные отчёты и графики, компания-производитель предлагает купить специальный софт. Мы пойдём другим путём © и организуем мониторинг температуры уже имеющимися средствами Zabbix.
[3]Сразу оговорюсь, что этот пост ни разу не рекламный и Сенсатроникс мне ничего не заплатил. А для работы можно использовать и другие термодатчики — как сетевые (работающие по SNMP), так и поключаемые к компьютеру (по serial или USB интерфейсам). Но в данный момент речь пойдёт именно о SNMP-мониторинге. Интересно, что в разделе Download [4] есть плагины для 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. Я намеренно не описываю подробно эти действия потому, что они, во-первых, делаются по инструкции, а во-вторых, на разных устройствах выполняются по-разному.
Теперь заводим в интерфейсе новый хост [5]:
Обратитет внимание, что пока мы экспериментируем, можно не подключать никакие шаблоны [5]. Вначале мы сами сделаем необходимые айтемы [5] и триггеры [5], а потом создадим свой шаблон и скопируем их туда.
Теперь создаём айтемы (параметры мониторинга). Для этого воспользуемся базой SNMP MIBs [7] с сайта производителя. Каждому датчику термоконтроллера соответсвует один айтем, поэтому в нашем случае заводим 4 айтема.
Обратите внимание, что в качестве типа параметра выбран «SNMPv1 agent», и прописано необходимое SNMP-comunity.
Убеждаемся, что мониторинг заработал: данные должны собираться и график [5] строиться:
Теперь займёмся сигнализацией. Для этого создаём триггеры [5]:
Поскольку мы можем делать несколько триггеров разной степени серьёзности, настроим повышение температуры выше 20 градусов на серьёзность [5] Warning, выше 25 — Average, выше 30 — High и выше 35 — Disaster. Можно сделать ещё один порог срабатывания — 60 градусов. Это будет означать, что в серверной начался пожар или извержение вулкана :-). Такая градация позволит гибко управлять рассылкой сообщений различным пользователям [5] и на разные транспорты [5] (почта, SMS). Получив на почту сообщение, что температура стала выше 20 градусов, можно неторопясь сходить посмотреть, что за раззява оставил дверь серверной нараспашку, а приняв SMS о температуре выше 35 — уже нестись стрелой, на пути звоня техникам по кондиционерам!
Получается, что на каждый датчик (айтем [5]) будет ещё несколько триггеров! Казалось бы, это уже все? Ан нет! Мы же хотим сделать хороший мониторинг? А что случится, если выйдет из строя датчик, окислится его контакт или оборвётся провод? В устройствах Sensatronics в этом случае будет отображаться температура -99 градусов. Следовательно, ни один из наших триггеров не сработает и все будут считать, что всё в порядке! Значит, нужно сделать ещё один триггер с серьёзностью Disaster, который, например, будет срабатывать, например, при уменьшении температуры ниже -10.
Также, на случай выхода из строя самого контроллера или сетевых проблем необходимо создать айтем icmpping и соответствующий ему триггер.
Вот собственно, и всё. Теперь можно включать наш Zabbix Host в необходимые группы [5] оповещения, прописывать Actions [5] и тестировать систему, нагревая датчик и контролируя приход сообщений. Далее, можно создать свой собственный шаблон [5], в который скопировать необходимые Items [5] и Triggers [5], для того, чтобы уже следующий термоконтроллер можно было подключить к системе мониторинга «в два клика».




