05.07.2011

Установка Nagios на Debian с авторизацией в LDAP

Для начала устанавливаем вэб-сервер, через который мы будем работать с Nagios, а также включаем аутентификационные и авторизационные модули:
aptitude install apache2
a2enmod auth_basic authn_file authnz_ldap authz_default authz_groupfile authz_host authz_user

Далее ставим сам Nagios, документацию к нему, которая будет доступна из вэб-интерфейса, плагин, при помощи которого Nagios будет обращаться за данными к другим машинам, а также утилиты для построения графиков:
aptitude install nagios3 nagios3-doc nagios-nrpe-plugin nagiosgrapher

При установке aptitude поставит все необходимые зависимости.

По умолчанию доступ к панели Nagios осуществляется как-то по-деревенски:
http://IP.ADD.RE.SS/nagios3, а мы сделаем красиво: http://nagios.nodesquad.com
Для этого создадим конфиг виртхоста:



tee > /etc/apache2/sites-available/nagios


<VirtualHost *:80>
     ServerAdmin root@localhost
     ServerName nagios.nodesquad.com
     DocumentRoot /usr/share/nagios3/htdocs

     ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3
     ScriptAlias /cgi-bin /usr/lib/cgi-bin/nagios3

     # Where the stylesheets (config files) reside
     Alias /stylesheets /etc/nagios3/stylesheets

    
<DirectoryMatch (/usr/share/nagios3/htdocs|/usr/lib/cgi-bin/nagios3|/etc/nagios3/stylesheets)>
             Options FollowSymLinks

             DirectoryIndex index.php

             AllowOverride AuthConfig
             Order Allow,Deny
             Allow From All

             AuthType Basic
             AuthBasicProvider ldap
             AuthzLDAPAuthoritative off
             AuthName "Maxifier Nagios"
             AuthLDAPURL "ldap://ds1.nodesquad.com/ou=people,dc=nodesquad,dc=com?uid"
             Require valid-user
             #Satisfy any
       
</DirectoryMatch>
    

        ErrorLog ${APACHE_LOG_DIR}/nagios.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/nagios.access.log combined

</VirtualHost>

И теперь включим этот виртхост:
a2ensite nagios

После чего перезагрузим Apache:
invoke-rc.d apache2 restart

Далее заходим на http://nagios.nodesquad.com с учетной записью LDAP и проверяем, если работает менюшка документация (вторая сверху). Если нет, то:
cd /usr/share/nagios3/htdocs/docs
cp toc.html index.php
Так как LDAP редко ставят в маленьких учреждениях, то прежде чем начать его конфигурировать, нужно привести в соответствие с требованиями по функциональности и надежности (как например дублирование конфигов между нодами Nagios).
А потому продолжить нужно с этой статьи:

LDAP-Configured Nagios


Теперь настроим графики.

Установим необходимые пакеты:
apt-get install autoconf rrdtool perl perl-base perl-modules libcalendar-simple-perl libgd-gd2-perl perlmagick librrds-perl liburi-perl

Открываем конфиг и дополняем его:
vim /etc/nagios3/nagios.cfg

# Definitions for monitoring graphs
cfg_dir=/etc/nagiosgrapher/nagios3/serviceext

process_performance_data=1
service_perfdata_file=/var/lib/nagiosgrapher/service-perfdata
service_perfdata_file_template=$HOSTNAME$\t$SERVICEDESC$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\t$TIMET$\n
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-file
Теперь настраиваем конфиг графа:
vim /etc/nagiosgrapher/ngraph.ncfg

interface file
perffile_path           /var/lib/nagiosgrapher/ 
Добавляем определение новой команды:
vim /etc/nagios3/commands.cfg


define command{
          command_name process-service-perfdata-file
          command_line mv /var/lib/nagiosgrapher/service-perfdata /var/lib/nagiosgrapher/service-perfdata.$TIMET$
}

И перезапускаем NagiosGrapher с новыми настройками:
invoke-rc.d nagiosgrapher restart
invoke-rc.d nagios3 restart
Через несколько минут, когда наберется какая-то статистика, нужно будет еще раз перезапустить, иначе картинки напротив сервисов не отобразятся.



Если в дальнейшем нужно будет добавить сервисы, то сначала смотрим для данного сервиса как выглядит строка лога:
tailf /var/log/nagiosgrapher/ngraph.log
Затем здесь находим конфиг этого сервиса или, если он отсутствует, создаем по аналогии с другими:
/etc/nagiosgrapher/ngraph.d/standard/
И в графе service_name пишем имя сервиса service_name  (совпадает с полем service_description в файле /etc/nagios3/conf.d/services_nagios2.cfg ) и graph_log_regex - регулярное выражение, по которому NagiosGrapher определит, что засчитать в качестве показателя.

Если NagiosGrapher подхватит нормально изменения, то они отобразятся здесь:
/etc/nagiosgrapher/nagios3/serviceext  <--- но вручную тут ничего менять нельзя.

***********************
Настройка общения между сервером Nagios и серверами, которые надо мониторить.
На каждой клиентской машине устанавливаем серверную часть, которая будет слушать обращения от опрашивающего подопечных Nagios-сервера и пакеты с плагинами:
apt-get install nagios-nrpe-server nagios-plugins nagios-plugins-basic nagios-plugins-standard
И также на каждой клиентской машине даем пользователю nagios возможность запускать плагины от имени рута. Это нужно для некоторых плагинов, которые работают с данными, недоступными обычным смертным. Например check_md_raid или частично check_disk:
apt-get install sudo
echo "nagios  ALL=(ALL) NOPASSWD:/usr/lib/nagios/plugins/" >> /etc/sudoers

Далее правим файл /etc/nagios/nrpe.cfg, в котором указываем с каких IP можно сюда приходить на порт 5666:
allowed_hosts=127.0.0.1,192.168.1.74,162.33.200.225,162.33.200.226

И там же прописываем имена команд от Nagios-сервера и пути к скриптам, которые исполняются при вызове этих команд:
command[check_users]=/usr/lib/nagios/plugins/check_users -w 15 -c 30
command[check_load]=/usr/lib/nagios/plugins/check_load -w 30,25,20 -c 40,35,30
command[check_disk]=sudo /usr/lib/nagios/plugins/check_disk  -w 7% -c 3%
command[check_sensors]=sudo /usr/lib/nagios/plugins/check_sensors  -w 10 -w 20
command[check_mysql]=/usr/lib/nagios/plugins/check_mysql -u root -p root
command[check_procs]=/usr/lib/nagios/plugins/check_procs
command[check_procs_zombie]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_procs_total]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
command[check_procs_fcron]=/usr/lib/nagios/plugins/check_procs -c 1:8 -C fcron
command[check_unix_mem_usage]=sudo /usr/lib/nagios/plugins/check_unix_mem_usage.pl -u MiB -m -p -w 95,90,,10 -c 100,95,,20
command[check_md_raid]=sudo /usr/lib/nagios/plugins/check_md_raid
Затем нужно убедиться, что фаерволл не закрывает порт 5666 (он тоже указан в конфиге /etc/nagios/nrpe.cfg)


Ну и наконец перезагружаем нашу агентскую штуку:
invoke-rc.d nagios-nrpe-server restart
Теперь с Nagios-сервера пробуем достучаться до машины, на которой мы это сейчас настроили:
/usr/lib/nagios/plugins/check_nrpe -H server1.nodesquad.com

если все в порядке, то Вы увидите версию тамошнего NRPE:
NRPE v2.12

Осталось создать конфиг, чтобы Nagios мог мониторить это автоматически.
Переходим в директорию, где все эти конфиги живут:
cd /etc/nagios3/conf.d

define host{
        use                     generic-host            ; Name of host template to use
        host_name               server1
        alias                   Server1
        address                 server1.nodesquad.com
        }
Также в файле hostgroups_nagios2.cfg добавляем его в выбранные сервисы.

И теперь рестартуем Nagios:
service nagios3 reload


Можно познакомиться с аддонами для Nagios: NetWays Addons
Также можно настроить Оповещения из Nagios телефонным звонком
Надстройка над Nagios, упрощающая работу в промышленных масштабах: DNX 
Ну и конечно целая гора плагинов, которые ставятся на проверяемые сервера: Nagios Plugins

Комментариев нет:

Отправить комментарий