Приведенный ниже пример установки Nagios производился на дистрибутив Arch linux x64, но так же данный материал можно использовать для Arch i686.
1. Убедитесь что ваша система обновлена!
pacman -Syu2. Установка LAMP.
Для установки LAMP можно воспользоваться руководством пользователя на русском языке.
3. Предварительные настройки.
Для успешной сборки пакетов необходимы установленные: freetype2, gd, glib2, libtool.
pacman -S freetype2 gd glib2 libtool4. Установка Nagios.
На компьютере с установленным ArchLinux создаем каталог ~/build и перейдем в него, здесь мы будем собирать наши пакеты.
mkdir ~/build cd ~/buildNagios можно найти в 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 http7. Конфигурация 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
Теперь мы контролируем состояние серверов и сервисов на данных узлах. Всё это выглядит таким образом:
Я не мастер написания подобных статей, но буду искренне рад если она кому-либо поможет или быть может кто-то захочет ее дополнить, ведь это очень кратко и бегло по настройке монстра под названием Nagios.
Статья написана моим хорошим другом! Все лавры собственно ему)
К сожалению у меня не хватает кармы для инвайта, поэтому я прошу вас, дорогие хабражители, угостить товарища инвайтиком — yarofrost@gmail.com

