среда, 15 августа 2012 г.

Установка и базовая настройка pnp4nagios

PNP — это дополнение к Nagios, которое анализирует данные о производительности от плагинов и автоматически сохраняет их в RRD базу данных. Для установки нужны:
  • Perl >= 5.x без дополнительных модулей
  • RRDtool >= 1.x, лучше 1.2
    PHP >= 5.1.6 для Web-интерфейса на базе Kohana
  • Nagios >= 2.x или Icinga
  • Kohana нужен загруженный модуль “mod_rewrite”.
Предполагается, что у вас уже установлен Nagios, httpd и они работают. Установка будет проходить на CentOS 6.3 x86_64. Итак, начнем.
1. Скачать архив исходных кодов с сайта pnp4nagios.org.
2. Распаковать
tar xzf pnp4nagios-0.6.18.tar.gz
cd pnp4nagios-0.6.18
3. Установка необходимых пакетов:
yum -y install rrdtool rrdtool-perl openssl-devel gcc php-gd

4. Установка:
./configure --prefix=/opt/pnp4nagios
# компилирует компоненты типа NPCD, написанного на C
make all
# установка файлов по правильным путям
make install
# конфигурационные файлы для process_perfdata.pl и npcd будут скопированы в etc/pnp
make install-config
# будет скопирован файл pnp4nagios.conf в директорию /etc/httpd/conf.d/
make install-webconf
# устанавливает скрипт инициализации NPCD
make install-init

5. Конфигурирование:
а) выбор режима сбора данных
PNP поддерживает несколько режимов обработки данных производительности. Режимы различаются по сложности и ожидаемой производительности. Подробнее http://docs.pnp4nagios.org/pnp-0.6/modes. Я выбрал режим «Bulk Mode with npcdmod», который с точки зрения Nagios наилучший поскольку не будет блокировать Nagios, а само изменение конфигурационного файла Nagios затронет всего 2 строчки.
Nagios использует временный файл для хранения данных и выполняет команду спустя некоторое время. Вместо немедленной обработки с помощью process_perfdata.pl этот файл перемещается в spool-директорию. NPCD-сервис (Nagios Performance C Daemon) мониторит эту директорию на предмет появления новых файлов и передает их имена на вход process_perfdata.pl. Обработка данных производительности полностью отделена от Nagios. NPCD может стартовать множество потоков для обработки данных.

б) настройка режима сбора данных
Отредактировать nagios.cfg:
process_performance_data=1
broker_module=/opt/pnp4nagios/lib/npcdmod.o config_file=/opt/pnp4nagios/etc/npcd.cfg

Данный режим использует в качестве обработчика событий модуль npcdmod.o. Этот модуль (npcdmod.o) принимает на себя задачу обработки данных требуемых для PNP.

6. Рестартовать сервисы:
service httpd restart
service ncpd restart
service nagios restart

7. Добавить/проверить в автозагрузку при старте системы:
chkconfig httpd on
chkconfig ncpd on
chkconfig nagios on

8. Проверка установки:
зайти на url http://<server name>/pnp4nagios/

Появится страница “PNP4Nagios Environment Tests”, которая включает разные проверки необходимых компонентов системы. Перед следующим шагом все проверки должны быть пройдены успешно. Если что-то не так, читать http://docs.pnp4nagios.org/pnp-0.6/verify до прояснения. Если все тесты пройдены успешно, файл pnp4nagios/share/install.php должен быть удален или переименован, либо создать файл с именем pnp4nagios/share/install.ignore, который запрещает вызов инсталлятор после дальнейших обновлений.

9. Добавление иконки PNP в веб-интерфейс Nagios.
Нужно добавить к определениям шаблонов хостов и сервисов строчку action_url, например так:
define host{
name generic-host
*****
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register 0
}

define service{
name generic-service
********
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}

и перезапустить Nagios
service nagios restart

10. Дополнительные настройки:
а) Debug
http://<server-name>/pnp4nagios/debug/?host=<HOST>&srv=<SERVICE>
вместо
http://<server-name>/pnp4nagios/index.php/graph?host=<HOST>&srv=<SERVICE>

б) Отредактировать файлы config.php и local_config.php
# Масштабировать предварительный просмотр графиков при всплывании
$conf['popup-width'] = "597px";
изменять этот параметр нужно в ОБОИХ конфигурационных файлах (config.php и local_config.php)

# Список директорий для поиска шаблонов. Ищется до первого совпадения.
$conf['template_dirs'][] = '/opt/pnp4nagios/share/templates';
$conf['template_dirs'][] = '/opt/pnp4nagios/share/templates.dist';

в) SSI
Вы можете интегрировать PNP в Nagios таким образом, чтобы текущие графики показывались в виде всплывающих страничек без необходимости кликания по иконкам. Для этого нужно создать файл /usr/share/nagios/html/ssi/status-header.ssi, либо скопировать файл status-header.ssi из исходный кодов PNP в директорию /usr/share/nagios/html/ssi.
Содержимое файла status-header.ssi (модифицированное):
<script src="/pnp4nagios/media/js/jquery-min.js" type="text/javascript"></script>
<script src="/pnp4nagios/media/js/jquery.cluetip.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function() {
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' });
});
</script>

Иконка close1.png не входит в поставку PNP, поэтому ее нужно создать самому, либо воспользоваться какой-то готовой, либо скопировать входящий в исходные коды PNP файл и ничего не делать.

Литература:

1 комментарий:

  1. Большое спасибо.
    Благодаря данному мануалу, удалось сделать быстрый старт.

    ОтветитьУдалить