Pull to refresh

Nagios — помощник в мониторинге сервисов и хостов

Reading time 5 min
Views 13K
Существуют различные бесплатные системы мониторинга состояния систем и сети такие как: Munin, Zabbix и т.д. Я же хочу поделиться с IT сообществом примером настройки системы мониторинга Nagios на операционную систему Arch Linux.

Приведенный ниже пример установки Nagios производился на дистрибутив Arch linux x64, но так же данный материал можно использовать для Arch i686.


1. Убедитесь что ваша система обновлена!

pacman -Syu

2. Установка LAMP.

Для установки LAMP можно воспользоваться руководством пользователя на русском языке.

3. Предварительные настройки.

Для успешной сборки пакетов необходимы установленные: freetype2, gd, glib2, libtool.

pacman -S freetype2 gd glib2 libtool

4. Установка Nagios.

На компьютере с установленным ArchLinux создаем каталог ~/build и перейдем в него, здесь мы будем собирать наши пакеты.

mkdir ~/build cd ~/build

Nagios можно найти в AUR репозитории. Поэтому делаем следующие:

— Переходим на страницу поиска по AUR репозиторию http://aur.archlinux.org/

— В строке поиска (Search Critetia), вводим nagios и жмем [GO]
— Выбираем пакет nagios и загружаем его в каталог ~/build:

wget -c downloads.sourceforge.net/nagios/nagios-3.2.0.tar.gz

-распакуем:

tar -xvzf nagios-3.2.0.tar.gz

-перейдем в распакованый каталог и загрузим в него необходимы файлы(которые лежат на странице загруки nagios):

cd ~/build/nagios
wget -c aur.archlinux.org/packages/nagios/nagios/PKGBUILD
wget -c aur.archlinux.org/packages/nagios/nagios/nagios.install
wget -c aur.archlinux.org/packages/nagios/nagios/rc.nagios


-теперь необходимо сгенерировать пакет, для этого выполним команду:

makepkg

(может поругаться если вы делаете из под рута, тогда если Вы уверены в надежности пакеты используйте makepkg --asroot — это не безопасно!).
Когда пакет будет собран выполним команду:

pacman -U "имя собранного пакета"

это установит пакет в систему.

Аналогичные операции(начиная от поиска по AUR репозиторию) произведем с пакетом nagios-plugin:

cd ~/build
wget -c downloads.sourceforge.net/nagiosplug/nagios-plugins-1.4.14.tar.gz
tar -xvzf nagios-plugins-1.4.14.tar.gz cd nagios-plugins
wget -c aur.archlinux.org/packages/nagios-plugins/nagios-plugins/PKGBUILD
makepkg
pacman -U nagios-plugins-1.4.14-1-x86_64.pkg.tar.gz

5. Настройка Nagios

Скопируем конфигурационные файлы с примерами на место «боевых»:
# cp /etc/nagios/cgi.cfg.sample /etc/nagios/cgi.cfg
# cp /etc/nagios/resource.cfg.sample /etc/nagios/resource.cfg
# cp /etc/nagios/nagios.cfg.sample /etc/nagios/nagios.cfg
# cp /etc/nagios/objects/commands.cfg.sample /etc/nagios/objects/commands.cfg
# cp /etc/nagios/objects/contacts.cfg.sample /etc/nagios/objects/contacts.cfg
# cp /etc/nagios/objects/localhost.cfg.sample /etc/nagios/objects/localhost.cfg

# cp /etc/nagios/objects/templates.cfg.sample /etc/nagios/objects/templates.cfg
# cp /etc/nagios/objects/timeperiods.cfg.sample /etc/nagios/objects/timeperiods.cfg


Выставим права на доступ к каталогу /etc/nagios:

chown -R nagios:nagios /etc/nagios

Создадим и файл который будет использоваться для web авторизации панели nagios:

# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin

(у меня не смотря на правильный путь в файле nagios.conf конфигурации httpd не срабатывала авторизация при использовании файла htpasswd.users поэтому я сделал htpasswd -c /etc/nagios/users nagiosadmin и исправил соответствующую строку в /etc/httpd/conf/extra/nagios.conf)

Выставим права на каталог с файлами nagios:

# chown -R nagios:nagios /usr/share/nagios

На этом конфигурация Nagios закончена, теперь надо настроить Apache.

6. Настройка Apache.

Отредактируем файл /etc/httpd/conf/httpd.conf, добавим строку:

Include /etc/httpd/conf/extra/nagios.conf

и выполним:

# usermod -G nagios -a http

7. Конфигурация PHP.

Подключем в файле /etc/php/php.ini Nagios, open_basedir, для этого в строке open_basedir допишем :/usr/share/nagios:

open_basedir = /srv/http/:/usr/share/nagios

Все настройки закончены, теперь необходимо перезапустить httpd и nagios:

/etc/rc.d/nagios restart
/etc/rc.d/httpd restart


Теперь перейдя по ссылке localhost/nagios
(либо Ip адресс сервера на котором всё настраивали вместо localhost) вы увидите окно авторизации в котором необходимо ввести имя пользователя nagiosadmin и пароль который вы ему присвоили.

Настройка контроля за сервисами и хостами.

Добавляем UNIX хосты.

в директории /etc/nagios/ созданим каталог servers в котором будут храниться все файлы конфигурации:

mkdir /etc/nagios/servers

После чего обязательно раскоментируйте строку cfg_dir=/etc/nagios/servers в файле /etc/nagios/nagios.cfg

Создами в каталоге /etc/nagios/servers файл unix-servers.cfg отвечающий за группу unix хостов следующего содержания:

define hostgroup{
hostgroup_name unix ;
alias UNIX Servers ;
members srv_www, srv_mail;
}


hostgroup_name — описываем группу хостов

alias — отображение группы в панели мониторинга
members — хосты в составе группы(записываем через запятую)

Теперь создадим файлы конфигурации хостов
srv_www — это сервер на котором работает веб сайт(nagios в том числе) и прокси сервер на порту 3128:
# HOST
define host{
use linux-server
host_name srv_www ; имя сервера

icon_image linux.png
statusmap_image linux.gd2
address 10.1.1.7 ; Ip адрес сервера
}
# SERVICE
# проверяем доступность сервера
define service{

use local-service
host_name srv_www
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
# Проверяем доступность ssh

define service{
use local-service
host_name srv_www
service_description SSH
check_command check_ssh
}

# Проверяем доступность tcp соединения на 3128 порту
define service{
use local-service
host_name srv_www
service_description tcp
check_command check_tcp!3128
}

# Проверяем доступность http (по умолчанию 80 порт)
define service{
use local-service
host_name srv_www ;
service_description HTTP
check_command check_http
}


Добавляем Windows хосты.

Для мониторинга windows хостов используем программу NSClient. Установим ёё с настройками по умолчанию на windows хост и составим конфигурацию для nagios.
Группу windows хостов, /etc/nagios/servers/windows-servers.cfg:define hostgroup{
hostgroup_name windows ;
alias Windows Servers ;

members srv_host06;
}


и /etc/nagios/servers/win-srv_host06.cfg:

# HOST
define host{
use win-servers

host_name srv_host06
icon_image windows_server.png
statusmap_image windows_server.gd2
address 10.1.1.212
}
######

# SERVICE
define service{
use local-service
host_name srv_host06 ;
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

#Загрузку процессора (при 80% - warning, при 90% critical)
define service{
use generic-service
host_name srv_host06 ;
service_description CPU Load
check_command check_nt!CPULOAD!-l 1,80,90
}

# Мониторим свободное место на диске
define service{
use generic-service
host_name srv_host06 ;
service_description DISK space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}


icon_image и statusmap_image можно найти на сайте exchange.nagios.org/directory/Images-and-Logos/ поместить в каталог /usr/share/nagios/share/images/logos/

После написания файлов конфигурации хостов нужно перезапустить nagios:

/etc/rc.d/nagios restart

Теперь мы контролируем состояние серверов и сервисов на данных узлах. Всё это выглядит таким образом:

http://xackep.livejournal.com http://xackep.livejournal.com
http://xackep.livejournal.com http://xackep.livejournal.com

Я не мастер написания подобных статей, но буду искренне рад если она кому-либо поможет или быть может кто-то захочет ее дополнить, ведь это очень кратко и бегло по настройке монстра под названием Nagios.

Статья написана моим хорошим другом! Все лавры собственно ему)
К сожалению у меня не хватает кармы для инвайта, поэтому я прошу вас, дорогие хабражители, угостить товарища инвайтиком — yarofrost@gmail.com
Tags:
Hubs:
+1
Comments 1
Comments Comments 1

Articles