Nagios и PNP4Nagios: легко и красиво
И снова графики. Nagiosgraph что-то порядком поднадоел некорректностью своей работы и решено было наконец таки испробовать в бою pnp.
Устанавливаем:
1 | cd /usr/ports/net-mngt/pnp && make install clean |
Настраиваем вебсервер:
1 2 3 4 5 6 | # PNP graphing tool Alias /nagios/pnp/ /usr/local/www/pnp/ <directory "="" usr="" local="" www="" pnp=""> Order deny,allow Allow from all Deny from all</directory> |
1 2 | AddHandler application/x-httpd-php .php DirectoryIndex index.php |
1 2 3 4 5 6 7 8 9 | RewriteEngine on RewriteBase /nagios/pnp/ # Protect application and system files from being viewed RewriteRule ^(application|modules|system) - [F,L] # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite all other URLs to index.php/URL RewriteRule .* index.php/$0 [PT,L] |
PNP имеет несколько вариантов сбора данных. Сервер у меня не сильно загруженный, проверок не очень много, поэтому не мудрствуя лукаво выбираю режим Bulk Mode. И конфигурирую нагиос соответствующим образом. Настраиваю рисование графиков только для плагинов проверки сервисов. Настройка для хостов полностью идентична.
nagios.conf
1 2 3 4 5 | service_perfdata_file=/var/spool/nagios/perfdata.log service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=30 service_perfdata_file_processing_command=process-service-perfdata |
Команда:
1 2 3 4 | define command{ command_name process-service-perfdata command_line /usr/bin/perl /usr/local/libexec/process_perfdata.pl } |
Следующее надо дописать к шаблону сервисов (или хостов):
1 | action_url /pnp/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ |
И еще есть у PNP чудная возможность интегрироваться в интерфейс нагиос таким образом, чтоб показывать графики во всплывающем окошке без необходимости переходить на отдельную страницу. Делается это так:
В каталоге /usr/local/www/nagios/ssi создаёт файл status-header.ssi со следующим содержимым
1 2 3 4 5 6 7 8 | <script src="/pnp/media/js/jquery-min.js" type="text/javascript"></script> <script src="/pnp/media/js/jquery.cluetip.js" type="text/javascript"></script> <script type="text/javascript"><br /> jQuery.noConflict();<br /> jQuery(document).ready(function() {<br /> jQuery('a.tips').cluetip({ajaxCache: false, dropShadow: false,showTitle: false, width: '620', height: '700', sticky: true, arrows: false, closeText: '<img src="/pnp4nagios/media/images/close1.png" BORDER="0">', closePosition: 'top' });<br /> });<br /> </script> |
Перезагружаем вебсервер, перезагружаем нагиос, заходим по ссылке http://
Откроется страничка проверки всех необходимых компонентов для нормальной работы системы. Если все тесты пройдены нормально — переименовываем или удаляем файл /usr/local/www/pnp/install.php. А если нет, то устраняем ошибки.
Ждем, пока создадутся и заполнятся базы и любуемся.