PostHeaderIcon Nagios и NagiosGraph: рисуем графики

Все знают, что директора любят таблицы, диаграммы и графики :) Это всё потому, что из за большой загруженности удобнее отследить динамику изменений на графике, получить сводные данные в таблице и их соотношение в диаграмме. Поэтому специально для них будем учить nagios строить цветастые графики по статистике наблюдаемых сервисов.

Для реализации задуманного нам потребуется плагин Nagiosgraph. При установке он за собой потащит много всего интересного, но самое для нас интересное — это RRDTool. Это есть набор утилит для работы с кольцевыми базами данных, использующихся для хранения и графического отображения динамических данных. С их помощью nagiosgraph будет собирать информацию для отображения на графике.

1
2
cd /usr/ports/net-mgmt/nagiosgraph/
make install clean

В /usr/local/etc/nagios/nagios.cfg раскомментировать следующие строки и привести их к аналогичному виду:

1
2
3
4
5
6
process_performance_data=1
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

Дальше идем в /usr/local/etc/nagios/objects/commands.cfg и описываем команду:

1
2
3
4
define command{
command_name  process-service-perfdata
command_line  /usr/bin/perl /usr/local/libexec/nagiosgraph/insert.pl
}

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

1
2
3
4
5
6
7
8
9
define service{
name             local-service
use                generic-service
action_url       /nagios/cgi-bin/nagiosgraph/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&geom=450x150
max_check_attempts              4
normal_check_interval           5
retry_check_interval            1
register                        0
}

Или для каждого хоста отдельно:

1
2
3
4
5
6
define host{
use                     linux-server
host_name               www
address                 192.168.0.12
action_url       /nagios/cgi-bin/nagiosgraph/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&geom=450x150
}

Важный момент — в templates.cfg, в описании generic-service обязательно должно быть указано

1
process_perf_data               1

Теперь настройки nagiosgraph.
Создаем каталог, в который будут складываться базы:

1
2
mkdir /var/spool/nagios/rrd/
chown nagios:nagios /var/spool/nagios/rrd/

Создаем конфиги и логи:

1
2
3
4
5
6
cd /usr/local/etc/nagios/nagiosgraph/
cp nagiosgraph.conf.sample nagiosgraph.conf
cp map.sample map
touch /var/spool/nagios/nagiosgraph.log
chown nagios:www /var/spool/nagios/nagiosgraph.log
chmod 664 /var/spool/nagios/nagiosgraph.log

Лог быстро растет, поэтому зададим ротацию логов в /etc/newsyslog.conf строчкой

1
/var/spool/nagios/nagiosgraph.log       nagios:www     664    5      500    *      J#

Внимательно отслеживаем все пути нахождения файлов и приводим конфиг nagiosgraph.conf к такому виду:

1
2
3
4
5
6
7
8
9
10
11
12
13
debug = 2
logfile = /var/spool/nagios/nagiosgraph.log
rrddir =  /var/spool/nagios/rrd
mapfile = /usr/local/etc/nagios/nagiosgraph/map
nagiosgraphcgiurl =/nagios/cgi-bin/nagiosgraph
nagioscgiurl = /nagios/cgi-bin
javascript = /nagios/stylesheets/nagiosgraph.js
colorscheme = 3
heartbeat = 600
perflog = /var/spool/nagios/perfdata.log
stylesheet = /nagios/stylesheets/nagiosgraph.css
dbseparator = subdir
plotas = LINE2

В файле map описаны примеры того, в каком виде данные будут отображаться на графике. Например ping:

1
2
3
4
/output:PING.*?(\d+)%.+?([.\d]+)\sms/
and push @s, [ 'ping',
[ 'losspct', GAUGE, $1 ],
[ 'rta', GAUGE, $2 ] ];

В оригинале map-файла кавычки отсутствуют. Автором не изучено влияние кавычек на корректную работу сервиса, но на всякий случай мы их поставим :)
Прописываем в /usr/local/libexec/nagiosgraph/insert.pl правильный путь к конфигу:

1
2
# Configuration
my $configfile = '/usr/local/etc/nagios/nagiosgraph/nagiosgraph.conf';

И аналогичным образом в /usr/local/www/nagios/cgi-bin/nagiosgraph/show.cgi:

1
2
# Configuration
my $configfile = '/usr/local/etc/nagios/nagiosgraph/nagiosgraph.conf';

Теперь перезапускаем нагиос

1
/usr/local/etc/rc.d/nagios restart

Ждем некоторое время, пока заполнится база и любуемся графиками :)
Ну а в случае, если что то пошло не так — включаем максимальный уровень дебага, читаем логи, внимательно проверяем конфиги и права на файлы.

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

PR-CY.ru