Nagios

Материал из RSU WiKi
Перейти к: навигация, поиск

Содержание

Введение

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

Проверяем, что nagios будет автоматически запускаться при старте системы:

insserv nagios

Настройка

Конфигурационные файлы системы расположены в папке /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> может иметь следующие значения:

  1. generic-switch
  2. linux-server
  3. 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

Примечания

  1. Nagios. Материал из Википедии — свободной энциклопедии
  2. F*Nagios icon pack (Status Map and Host View icons)

Полезные ссылки

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты