Мониторинг серверов по SNMP при помощи Nagios

В первой статье цикла, посвященному настройке Nagios, мы рассмотрели базовую конфигурацию и мониторинг сетевых сервисов. Сейчас покажем, как можно получать дополнительные данные о серверах при помощи протокола SNMP.

 

SNMP — это протокол управления сетями связи на основе архитектуры UDP.

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

SNMP определяет сеть как совокупность сетевых управляющих станций и элементов сети (главные машины, шлюзы и маршрутизаторы, терминальные серверы), которые совместно обеспечивают административные связи между сетевыми управляющими станциями и сетевыми агентами.

SNMP не определяет, какую информацию управляемая система должна предоставлять. Наоборот, SNMP использует расширяемую модель, в которой доступная информация определяется Базами Управляющей Информации (MIB). Базы Управляющей Информации описывают структуру управляющей информации устройств. Они используют иерархическое пространство имён, содержащее уникальный идентификатор объекта (OID). Грубо говоря, каждый уникальный идентификатор объекта идентифицирует переменную, которая может быть прочитана или установлена через SNMP.

Иерархия MIB может быть изображена как дерево с безымянным корнем, уровни которого присвоены разными организациями. На самом высоком уровне MIB OIDы принадлежат различным организациям, занимающимся стандартизацией, в то время как на более низком уровне OIDы выделяются ассоциированными организациями. Эта модель обеспечивает управление на всех слоях сетевой модели OSI, так как MIBы могут быть определены для любых типов данных и операций.

Установка SNMP

Для того, что бы тестовый сервер можно было мониторить по SNMP необходимо на него установить два пакета:

#apt-get install snmp snmpd

   

Теперь нужно настроить наш сервис SNMP. Для этого в файл /etc/snmp/snmpd.conf запишем

syslocation: test, Ukraine

syscontact Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

#community #hosts allowed

rwcommunity private 192.168.0.30/32

rocommunity public 192.168.0.0/24

disk /

disk /home

   

Обратите внимание, мы описываем подсети из которых разрешен доступ в различных режимах (чтение или чтение и запись), а так же указываем пароль для этого доступа (у нас это private и public). Естественно в реальных условиях пароль не должен быть настолько простым.

   

Кроме этого необходимо внести небольшие изменения в файл /etc/default/snmpd. В нем параметр SNMPDOPTS нужно привести к следующему виду

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'

   

То есть мы явно прописываем в нем файл конфигурации демона SNMP. Теперь нужно перезапустить сервис:

#service snmpd restart

   

Конфигурирование Nagios для работы с SNMP

 

Сделаем проверку свободного места на диске.

Создадим группу мониторинга дискового пространства по snmp. Для этого добавим описание сервиса в файл /etc/nagios3/conf.d/services_nagios2.cfg

define service {

hostgroup_name snmp disk

service_description snmpdisk

check_command snmp_disk!public!1!!50!!90

use generic-service

notification_interval 0 ; set > 0 if you want to be renotified

}

   

В этом описании проверки в строке check_command указываем пароль доступа к сервису SNMP, номер диска, который мы проверяем, и величину свободного места в процентах для параметров warning и critical.

Далее добавим описание группы мониторинга в файл /etc/nagios3/conf.d/hostgroups_nagios2.cfg

define hostgroup {

hostgroup_name snmp disk

alias SNMP disk

members my_server

}

  

Теперь перечитаем конфигурацию Nagios.

  


   

Как мы видим проверка места на диске работает и возвращает правильные результаты. В данном случае мы получили предупреждение.

Аналогичным образом можно контролировать любой сервис и устройство, которые умеют отдавать о себе информацию по SNMP.