Настройка Nagios

Nagios — программа мониторинга компьютерных систем и сетей с открытым кодом. Предназначена для наблюдения, контроля состояния вычислительных узлов и служб, оповещает администратора в том случае, если какие-то из служб прекращают (или возобновляют) свою работу.

1) Технические требования

  • MySQL Server 5.*
  • MySQL Client 5.*
  • Apache 2.2 (1.3 то же подойдет)
  • PHP 5.*
  • Net-SNMP

2) Установка
Допустим что Apache, PHP и MySQL уже установлены. Теперь перейдем к установке Nagios.
Устанавливаем со всеми опциями (EMBEDDED_PERL,NANOSLEEP,EVENT_BROKER,UNHANDLED_HACK)

# whereis nagios
/usr/ports/net-mgmt/nagios

# cd /usr/ports/net-mgmt/nagios
# make install clean

Так же можно установить плагины

# whereis nagios-plugins
/usr/ports/net-mgmt/nagios-plugins
# make install clean

3) Настройка.
Все файлы с настройками хранятся в /usr/local/etc/nagios/.

# ls /usr/local/etc/nagios/*sample
cgi.cfg-sample 
nagios.cfg-sample 
resource.cfg-sample 

Поскольку это файлы-примеры, разработчики Nagios добавили к каждому из них суффикс -sample. Прежде всего нужно переименовать или скопировать файлы, чтобы в названии не было этого суффикса. (Если эти файлы не переименовать, Nagios будет всё равно искать файлы .cfg и, естественно, ничего не найдёт).
Перед тем как переименовывать файлы, сделайте их резервную копию, чтобы в случае чего можно было всегда вернуться и посмотреть как сделано в примере.

# cd /usr/local/etc/nagios/
# mkdir sample 
# cp *.cfg-sample sample/

Быстро переименовать множество файлов можно следующим образом:

# for i in *cfg-sample; do mv -v $i `basename $i "-sample"`; done
cgi.cfg-sample -> cgi.cfg
nagios.cfg-sample -> nagios.cfg
resource.cfg-sample -> resource.cfg

cgi.cfg — файл с настройками cgi
nagios.cfg — главный файл для настройки Nagios, добавим строку cfg_dir=/usr/local/etc/nagios/servers в этой папке будут хранится файлы с описанием хостов.
resource.cfg — файл с настройками ресурсов (например пути к плагинам)

Далее зайдем в папку /usr/local/etc/nagios/objects

# ls 
commands.cfg-sample     printer.cfg-sample      timeperiods.cfg-sample
contacts.cfg-sample     switch.cfg-sample
localhost.cfg-sample    templates.cfg-sample

Так же сделаем backup этих файлов и переименуем их

# cd /usr/local/etc/nagios/objects
# mkdir sample 
# cp *.cfg-sample sample/
# for i in *cfg-sample; do mv -v $i `basename $i "-sample"`; done
commands.cfg-sample -> commands.cfg
contacts.cfg-sample -> contacts.cfg
localhost.cfg-sample -> localhost.cfg
printer.cfg-sample -> printer.cfg
switch.cfg-sample -> switch.cfg
templates.cfg-sample -> templates.cfg
timeperiods.cfg-sample -> timeperiods.cfg

nagios -v /usr/local/etc/nagios/nagios.cfg
Команда загрузит все конфигурационные файлы и сообщит обо всех ошибках, которые она найдет. Исправляйте все ошибки по очереди, а потом запускайте команду снова.

# nagios -v /usr/local/etc/nagios/nagios.cfg
Nagios Core 3.2.3
Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 10-03-2010
License: GPL

Website: http://www.nagios.org
Reading configuration data...
   Read main config file okay...
Processing object config file '/usr/local/etc/nagios/objects/commands.cfg'...
Processing object config file '/usr/local/etc/nagios/objects/contacts.cfg'...
Processing object config file '/usr/local/etc/nagios/objects/timeperiods.cfg'...
Processing object config file '/usr/local/etc/nagios/objects/templates.cfg'...
Processing object config file '/usr/local/etc/nagios/objects/localhost.cfg'...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking services...
        Checked 8 services.
Checking hosts...
        Checked 1 hosts.
Checking host groups...
        Checked 1 host groups.
Checking service groups...
        Checked 0 service groups.
Checking contacts...
        Checked 1 contacts.
Checking contact groups...
        Checked 1 contact groups.
Checking service escalations...
        Checked 0 service escalations.
Checking service dependencies...
        Checked 0 service dependencies.
Checking host escalations...
        Checked 0 host escalations.
Checking host dependencies...
        Checked 0 host dependencies.
Checking commands...
        Checked 24 commands.
Checking time periods...
        Checked 5 time periods.
Checking for circular paths between hosts...
Checking for circular host and service dependencies...
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Добавим host в apache

# cat /usr/local/etc/apache22/extra/httpd-vhosts.conf

ServerName nagios.lan
ServerAdmin support@nagios.lan
DocumentRoot "/usr/local/www/nagios/"

Alias /nagios/ «/usr/local/www/nagios/»
ScriptAlias /cgi-bin/ «/usr/local/www/nagios/cgi-bin/»

<Directory «/usr/local/www/nagios/cgi-bin/»>
AllowOverride AuthConfig
Options ExecCGI
Allow from all

<Directory «/usr/local/www/nagios/»>
AllowOverride AuthConfig
Options None
Allow from all

 
На этом простая настройка Nagios закончена.
Далее добавим в /etc/rc.conf nagios_enable=»YES»
Перезапустим apache и запустим nagios

# /usr/local/etc/rc.d/apache22 restart
# /usr/local/etc/rc.d/nagios start

Добавим первый хост для мониторинга, напомню что все файлы с описанием хостов будут лежать в папке /usr/local/etc/nagios/servers


# cd /usr/local/etc/nagios/servers
# touch host.lan.cfg

define host{ #определяем хост
use freebsd-server #группа
host_name host.lan #имя хоста
alias host.lan
address 192.168.0.1 #ip адресс хоста
}

define service{ #определяем службы для проверки
use generic-service
host_name host.lan
service_description PING
normal_check_interval 5
retry_check_interval 1
check_command check_ping!100.0,20%!500.0,60%
}

define hostextinfo{ #дополнительная информация о хосте
host_name host.lan
icon_image freebsd40.png #иконка хоста
icon_image_alt FreeBSD Server
vrml_image freebsd40.png
statusmap_image freebsd40.gd2
2d_coords 163,195
3d_coords 15.0,38.0,6.0
}

 

hostgroups.cfg
Служит для описания групп хостов, например :

# cat /usr/local/etc/nagios/objects/hostgroups.cfg


define hostgroup{
hostgroup_name freebsd-servers
alias FreeBSD Servers
members localhost,host.lan
}

define hostgroup{
hostgroup_name windows-pc
alias Windows PC
members host1.lan,host2.lan,host3.lan
}

define hostgroup{
hostgroup_name linux-pc
alias Linux PC
members host4.lan,host6.lan
}

One thought on “Настройка Nagios

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *