Nagios
Содержание |
Введение
Nagios программа мониторинга компьютерных систем и сетей с открытым кодом. Предназначена для наблюдения, контроля состояния вычислительных узлов и служб, оповещает администратора в том случае, если какие-то из служб прекращают (или возобновляют) свою работу[1]. В статье рассматривается установка Nagios на примере linux-дистрибутива OpenSUSE 11.4.
Установка
В системе подключены стандартные OSS и Non-OSS репозитории. Предполагается, что веб-сервер Apache уже установлен и функционирует. Пакет Nagios входит в состав дистрибутива и устанавливается следующим образом:
zypper in nagios nagios-plugins nagios-plugins-extras nagios-www
В отличие от других дистрибутивов, в поставку SuSE не входит набор иконок для отображения на карте. Необходимо скачать набор[2] самостоятельно и положить в соответствующую директорию:
wget http://bit.ly/jje1TO -o /usr/local/src/nagios-icon-pack.tar.gz tar xvfz /usr/local/src/nagios-icon-pack.tar.gz /usr/share/nagios/images/logos
Настройка
Конфигурационные файлы системы расположены в папке /etc/nagios
cgi.cfg
Важно обратить внимание, что в конфигурационном файле cgi.cfg после установки для доступа ко всем ресурсам используется http-пользователь nagiosadmin. Если этот пользователь вас не устраивает, следует заменить его имя в этом конфигурационном файле, а затем задать пароль для нового http-пользователя командой:
htpasswd2 /etc/nagios/htpasswd.users <username>
nagios.cfg
Здесь подключаются конфигурационные файлы наблюдаемых устройств. Сделать это можно 2 способами. Указав каждое устройство отдельной строкой:
cfg_file=/etc/nagios/objects/commands.cfg
Указав папку с набором конфигурационных файлов:
cfg_dir=/etc/nagios/switches
На несуществующие файлы и папки Nagios будет выдавать ошибку.
Конфигурационный файл устройства
define host{ use <type> host_name <host_name> alias <alias> address <ip_address> hostgroups <hostgroup_name> parents <parent_host_name> icon_image <image>.png icon_image_alt <alt> vrml_image <iamge>.png statusmap_image <image>.gd2 }
<type> может иметь следующие значения:
- generic-switch
- linux-server
- windows-server
Заготовки в папке /etc/nagios/objects отличаются только набором стандартных служб, различных для перечисленных выше типов устройств. Требуемые службы добавляются в конфигурационный файл устройства после блока define host {}.
Группа устройств
Один конфигурационный файл устройства должен иметь описание группы устройств, если требуется такое разделение. Объявляется группа следующим образом:
define hostgroup{ hostgroup_name <hostgroup_name> ; The name of the hostgroup alias <alias> ; Long name of the group }
Либо не следует использовать атрибут hostgroups <hostgroup_name> в описании устройства.
Потеря пакетов до хоста
Т. к. состояние хоста определяется через ping, тем не менее следует использовать эту службу для учета потерь пакетов.
define service{ use generic-service ; Inherit values from a template host_name <host_name> service_description PING ; The service description check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service normal_check_interval 5 ; Check the service every 5 minutes under normal conditions retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined }
Статус линка на порту
Удобно знать состояние свитча подразделения на момент звонка о проблемах с сетью. Если линк есть на порту, значит свитч можно исключить и искать проблему дальше.
Сложность заключается в поиске параметра ifOperStatus.<snmp_port_id>, т. к. <snmp_port_id> на многих свитчах не соответствует номеру порта <port_number>. Выяснить соответствие номера порта и идентификатора можно командой:
snmpwalk -c <community> -v 1 <ip_address>
По умолчанию в качестве <community> используется public.
В выводе надо искать строку соответствия номера порта и идентификатора:
... IF-MIB.ifDescr.<snmp_port_id> = STRING: <port_number> ...
Далее при добавлении службы к конфигурационному файлу свитча используется найденный идентификатор:
define service{ use generic-service ; Inherit values from a template host_name <host_name> service_description Port <port_number> link status check_command check_snmp!-C <community> -o ifOperStatus.<snmp_port_id> -r 1 -m RFC1213-MIB }
Температура внешенго датчика APC Smart UPS
Стандартной службы для определения температуры внешенего датчика ИБП нет, по этому следует добавить службу пользователя. Они объявляются и определяются в файле /etc/nagios/objects/commands.cfg. Убедитесь, что он подключен в конфигурационном файле nagios.cfg:
cfg_file=/etc/nagios/objects/commands.cfg
В конец файла commands.cfg добавляем описание новой службы:
define command{ command_name snmp_ups_envtemp command_line $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.318.1.1.10.2.3.2.1.4.1 -w 29 -c 40 -l 'environment Temperature' -u 'degree celsius' }
Затем в конфигурационный файл ИБП добавляется использование созданной службы.
define service{ use generic-service ; Inherit values from a template host_name <host_name> service_description APC X environment tempetarure check_command snmp_ups_envtemp!public }
Linux-server
Примечания
- ↑ Nagios. Материал из Википедии — свободной энциклопедии
- ↑ F*Nagios icon pack (Status Map and Host View icons)