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 файл и ничего не делать.
Литература:
Большое спасибо.
ОтветитьУдалитьБлагодаря данному мануалу, удалось сделать быстрый старт.