Nagios графики и прием SNMP Traps

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

Все действия из этой статьи выполнялись под Debian 8.3

Установка Nagios

Здесь все просто, ставить будем из репозитариев.

  1. aptitude install nagios3

Прикручиваем графики

Сперва ставим необходимые пакеты

  1. aptitude install rrdtool librrds-perl gcc make

Собираем из исходников PNP4Nagios

  1. wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
  2. tar -xzf ./pnp4nagios-0.6.25.tar.gz
  3. cd ./pnp4nagios-0.6.25
  4. ./configure
  5. make
  6. make fullinstall

Инсталятор расчитан на HTTPD в нашем случае Apache2, поэтому переносим конфиг на место, включаем его в apache и подчищаем мусор. Также в конфиге необходимо исправить параметр AuthUserFile и указать путь к реальному файлу авторизации, в нашем случае /etc/nagios3/htpasswd.users

  1. mv /etc/httpd/conf.d/pnp4nagios.conf /etc/apache2/conf-available/
  2. rd /etc/httpd/conf.d
  3. rd /etc/httpd
  4. a2enconf pnp4nagios
  5. service apache2 reload

Теперь браузером заходим http://address-nagios/pnp4nagios и проверяем все ли в порядке, в моем случае необходимо было включить mod_rewrite в apache и установить php-gd

  1. aptitude install php5-gd
  2. a2enmod rewrite
  3. service apache2 restart

Обновляем в браузере страницу, убеждаемся что все в порядке и продолжаем.

  1. mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/old_install.php
  2. cp ./source_php4nagios/contrib/ssi/status-header.ssi /usr/share/nagios3/htdocs/ssi

Осталось настроить Nagios. В Nagios.cfg выставляем следующие параметры:

  1. process_performance_data=1
  2.  
  3. #
  4. # service performance data
  5. #
  6. service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
  7. service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
  8. service_perfdata_file_mode=a
  9. service_perfdata_file_processing_interval=15
  10. service_perfdata_file_processing_command=process-service-perfdata-file
  11.  
  12. #
  13. # host performance data starting with Nagios 3.0
  14. #
  15. host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
  16. host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
  17. host_perfdata_file_mode=a
  18. host_perfdata_file_processing_interval=15
  19. host_perfdata_file_processing_command=process-host-perfdata-file

В конфиг commands.cfg добавляем следующее:

  1. define command{
  2. command_name process-service-perfdata-file
  3. command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
  4. }
  5.  
  6. define command{
  7. command_name process-host-perfdata-file
  8. command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
  9. }

Пишем шаблоны с графиками для сервисов и хостов.

  1. define host {
  2. name host-pnp
  3. action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
  4. register 0
  5. }
  6.  
  7. define service {
  8. name srv-pnp
  9. action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
  10. register 0
  11. }

Осталось назначить шаблоны нужным хостам и сервисам, например так:

  1. define host{
  2. use linux-server,host-pnp  ; Name of host templates to use
  3.  ; This host definition will inherit all variables that are defined
  4.  ; in (or inherited by) the linux-server host template definition.
  5. host_name localhost
  6. alias localhost
  7. address 127.0.0.1
  8. }
  9. define service{
  10. use local-service,srv-pnp  ; Name of service template to use
  11. host_name localhost
  12. service_description PING
  13. check_command check_ping!100.0,20%!500.0,60%
  14. }

Прикручиваем SNMP Traps