Nagvis: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
  +
[[Категория:Linux]]
  +
[[Категория:Gentoo]]
  +
[[Категория:Nagios]]
  +
 
* http://ru.gentoo-wiki.com/wiki/Nagvis
 
* http://ru.gentoo-wiki.com/wiki/Nagvis
 
* https://bugs.gentoo.org/show_bug.cgi?id=324641 [-]
 
* https://bugs.gentoo.org/show_bug.cgi?id=324641 [-]
Строка 4: Строка 8:
 
* http://mathias-kettner.de/checkmk_livestatus.html
 
* http://mathias-kettner.de/checkmk_livestatus.html
 
* http://nagioswiki.com/wiki/index.php/NDOutils_on_CentOS
 
* http://nagioswiki.com/wiki/index.php/NDOutils_on_CentOS
  +
  +
  +
Установка производится в arch. Ebuild для nagvis брать в [http://bugs.gentoo.org/show_bug.cgi?id=324641 багзиле]. Установка подразумевает, что nagios с поддержкой apache уже установлен.
  +
Рабочая связка представляет из себя следующее: пакет net-analyzer/ndoutils предоставляет необходимые инструменты для помещения информации от nagios в базу данных, из которой в последствии берет нужные данные nagvis в сочетании с данными о состоянии объектов nagios, которые передаются через сокет, предоставляемый пакетом net-analyzer/mk-livestatus.
  +
  +
==USE флаги==
  +
dev-lang/php: apache2 gd mysql session xml pdo
  +
net-analyzer/nagvis: apache2 automap
  +
net-analyzer/mk-livestatus: -examples -perl -python -test
  +
  +
==Установка пакетов==
  +
При установке nagvis было выбрано использование mysql.
  +
{{Root|emerge net-analyzer/mk-livestatus net-analyzer/nagvis net-analyzer/ndoutils dev-db/mysql}}
  +
  +
==Настройка ndoutils==
  +
В ndoutils входят 2 модуля: ndomod и ndo2db. ndomod интегрируется с nagios в результате чего данные от nagios поступают к модулю ndo2db, который в свою очередь поступившие данные кладет в базу.
  +
  +
===Настройка ndomod===
  +
Создание базы
  +
{{Root|mysq> create database nagios;}}
  +
  +
Создание таблиц в базе
  +
{{Root|/usr/share/nagios/db/installdb -u <user> -p -h <host> -d nagios}}
  +
Ebuild ndoutils к версии 1.4_beta9 не ставит в систему скрипт installdb, поэтому его надо достать из исходника ndoutils. Имеет смысл проверить префикс созданных таблиц, по умолчанию это nagios_.
  +
  +
  +
Пример файла конфигурации
  +
{{File|ndomod.cfg|<pre>instance_name=default
  +
output_type=unixsocket
  +
output=/usr/share/nagios/htdocs/rw/ndo.sock
  +
tcp_port=5668
  +
use_ssl=0
  +
output_buffer_items=5000
  +
buffer_file=/var/lib/ndo/ndomod.tmp
  +
file_rotation_interval=14400
  +
file_rotation_timeout=60
  +
reconnect_interval=15
  +
reconnect_warning_interval=15
  +
data_processing_options=-1
  +
config_output_options=2</pre>}}
  +
  +
output_type говорит о том, что данные для модуля ndo2db передаются через unixsocket, который расположен согласно значению параметра output. {{Note|В данном примере это расположение выбрано не совсем удачно (т.е в директоии htdocs), поэтому имеет смысл вынести его за пределы apache. Тоже самое относится и к другим объектам в директории /usr/share/nagios/htdocs/rw/, которые будут упоминаться далее.
  +
}}
  +
  +
  +
Активация в nagios
  +
{{File|/etc/nagios/nagios.cfg|<pre>broker_module=/usr/bin/ndomod.o config_file=/etc/nagios/ndomod.cfg
  +
event_broker_options=-1</pre>}}
  +
Подробности активации/ошибки можно получить в логах nagios.
  +
...
  +
ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
  +
ndomod: Successfully connected to data sink. 0 queued items to flush.
  +
Event broker module '/usr/bin/ndomod.o' initialized successfully.
  +
...
  +
  +
===Настройка ndo2db===
  +
{{File|ndo2db.cfg|<pre>
  +
lock_file=/var/lib/ndo/ndo2db.lock
  +
ndo2db_user=nagios
  +
ndo2db_group=nagios
  +
socket_type=unix
  +
socket_name=/usr/share/nagios/htdocs/rw/ndo.sock
  +
tcp_port=5668
  +
use_ssl=0
  +
db_servertype=mysql
  +
db_host=localhost
  +
db_port=3306
  +
db_name=nagios
  +
db_prefix=nagios_
  +
db_user=nagios
  +
db_pass=password
  +
max_timedevents_age=1440
  +
max_systemcommands_age=10080
  +
max_servicechecks_age=10080
  +
max_hostchecks_age=10080
  +
max_eventhandlers_age=44640
  +
max_externalcommands_age=44640
  +
debug_level=0
  +
debug_verbosity=2
  +
debug_file=/var/lib/ndo/ndo2db.debug
  +
max_debug_file_size=1000000
  +
</pre>}}
  +
Согласно этому файлу, данные берутся из socket_name и кладутся в базу nagios под учетной записью db_user. После чего запускаем ndo2db
  +
{{Root|/etc/init.d/ndo2db start}}
  +
Если сервис не запустится, то о причинах можно посмотреть в debug_file или попробовать его запустить из shell
  +
{{Root|# ndo2db -c /etc/nagios/ndo2db.cfg
  +
Could not bind socket: Permission denied}}
  +
Причина в правах доступа на debug_file или socket_name. Поэтому необходимо проверить все нужные права доступа для пользователя, указанного в ndo2db_user.
  +
  +
==Настройка mk-livestatus==
  +
В nagios.cfg добавить
  +
broker_module=/usr/lib64/mk-livestatus/livestatus.o /usr/share/nagios/htdocs/rw/live debug=0
  +
Проверить загрузку модуля в логах nagios.
  +
  +
Проверка сокета live
  +
{{Root|<nowiki> echo 'GET hosts' | unixcat /var/lib/nagios/rw/live </nowiki> <pre>
  +
acknowledged;action_url;address;alias;check_command;check_period;checks_enabled;contacts;in_check_period;in_notification_period;is_flapping;last_check
  +
;last_state_change;name;notes;notes_url;notification_period;scheduled_downtime_depth;state;total_services
  +
0;/nagios/pnp/index.php?host=$HOSTNAME$;127.0.0.1;Acht;check-mk-ping;;1;check_mk,hh;1;1;0;1256194120;1255301430;Acht;;;24X7;0;0;7
  +
0;/nagios/pnp/index.php?host=$HOSTNAME$;127.0.0.1;DREI;check-mk-ping;;1;check_mk,hh;1;1;0;1256194120;1255301431;DREI;;;24X7;0;0;1
  +
0;/nagios/pnp/index.php?host=$HOSTNAME$;127.0.0.1;Drei;check-mk-ping;;1;check_mk,hh;1;1;0;1256194120;1255301435;Drei;;;24X7;0;0;4
  +
</pre>}}
  +
  +
==Настройка nagvis==
  +
Пример настройки в /etc/nagvis/nagvis.ini.php-sample.
  +
Минимальная базовая настройка nagvis
  +
{{File|/etc/nagvis/nagvis.ini.php|<pre>
  +
[global]
  +
language="en_US"
  +
refreshtime=60
  +
  +
[paths]
  +
base="/usr/share/nagvis/"
  +
htmlbase="/nagios/nagvis/"
  +
htmlcgi="/nagios/cgi-bin/"
  +
  +
[defaults]
  +
backend="live_1"
  +
  +
[index]
  +
  +
[automap]
  +
  +
[wui]
  +
  +
[worker]
  +
  +
[backend_live_1]
  +
backendtype="mklivestatus"
  +
socket="unix:/usr/share/nagios/htdocs/rw/live"
  +
  +
[backend_ndomy_1]
  +
backendtype="ndomy"
  +
dbhost="localhost"
  +
dbname="nagios"
  +
dbuser="nagios"
  +
dbpass="password"
  +
dbprefix="nagios_"
  +
dbinstancename="default"
  +
htmlcgi="/nagios/cgi-bin"
  +
  +
[backend_merlinmy_1]
  +
backendtype="merlinmy"
  +
  +
[backend_ndo2fs_1]
  +
  +
[backend_merlinmy_1]
  +
  +
  +
[rotation_demo]
  +
maps="demo,Demo2:demo2"
  +
interval=15
  +
  +
[states]
  +
  +
</pre>}}
  +
В дальнейшем эти данные можно будет отредактировать через веб-интерфейс.
  +
Для того, чтобы к nagvis можно было обращаться из меню nagios, нужно добавить ссылку в файл /usr/share/nagios/htdocs/side.ph
  +
<a href="nagvis/" target="<?php echo $link_target;?>">Nagvis</a>
  +
  +
Добавление кода nagvis в htdocs nagios
  +
{{Root|ln -s /usr/share/nagvis /usr/share/nagios/htdocs/nagvis}}
  +
  +
  +
Настройка apache.
  +
Добавить в /etc/conf.d/apache2 к параметру APACHE2_OPTS значение
  +
-D NAGVIS
  +
  +
== Дополнительная информация ==
  +
Подробное описание принципа работы [http://mathias-kettner.de/checkmk_livestatus.html MK Livestatus]
  +
  +
Документация к [http://www.nagvis.org/doc Nagvis]

Текущая версия на 15:40, 28 сентября 2012



Установка производится в arch. Ebuild для nagvis брать в багзиле. Установка подразумевает, что nagios с поддержкой apache уже установлен. Рабочая связка представляет из себя следующее: пакет net-analyzer/ndoutils предоставляет необходимые инструменты для помещения информации от nagios в базу данных, из которой в последствии берет нужные данные nagvis в сочетании с данными о состоянии объектов nagios, которые передаются через сокет, предоставляемый пакетом net-analyzer/mk-livestatus.

USE флаги

dev-lang/php: apache2 gd mysql session xml pdo 
net-analyzer/nagvis: apache2 automap
net-analyzer/mk-livestatus: -examples -perl -python -test

Установка пакетов

При установке nagvis было выбрано использование mysql.

emerge net-analyzer/mk-livestatus net-analyzer/nagvis net-analyzer/ndoutils dev-db/mysql

Настройка ndoutils

В ndoutils входят 2 модуля: ndomod и ndo2db. ndomod интегрируется с nagios в результате чего данные от nagios поступают к модулю ndo2db, который в свою очередь поступившие данные кладет в базу.

Настройка ndomod

Создание базы

mysq> create database nagios;

Создание таблиц в базе

/usr/share/nagios/db/installdb -u <user> -p -h <host> -d nagios

Ebuild ndoutils к версии 1.4_beta9 не ставит в систему скрипт installdb, поэтому его надо достать из исходника ndoutils. Имеет смысл проверить префикс созданных таблиц, по умолчанию это nagios_.


Пример файла конфигурации Шаблон:File

output_type говорит о том, что данные для модуля ndo2db передаются через unixsocket, который расположен согласно значению параметра output.

Note: В данном примере это расположение выбрано не совсем удачно (т.е в директоии htdocs), поэтому имеет смысл вынести его за пределы apache. Тоже самое относится и к другим объектам в директории /usr/share/nagios/htdocs/rw/, которые будут упоминаться далее.


Активация в nagios Шаблон:File Подробности активации/ошибки можно получить в логах nagios.

...
ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
ndomod: Successfully connected to data sink. 0 queued items to flush.
Event broker module '/usr/bin/ndomod.o' initialized successfully.
...

Настройка ndo2db

Шаблон:File Согласно этому файлу, данные берутся из socket_name и кладутся в базу nagios под учетной записью db_user. После чего запускаем ndo2db

/etc/init.d/ndo2db start

Если сервис не запустится, то о причинах можно посмотреть в debug_file или попробовать его запустить из shell

# ndo2db -c /etc/nagios/ndo2db.cfg Could not bind socket: Permission denied

Причина в правах доступа на debug_file или socket_name. Поэтому необходимо проверить все нужные права доступа для пользователя, указанного в ndo2db_user.

Настройка mk-livestatus

В nagios.cfg добавить

broker_module=/usr/lib64/mk-livestatus/livestatus.o  /usr/share/nagios/htdocs/rw/live debug=0

Проверить загрузку модуля в логах nagios.

Проверка сокета live

echo 'GET hosts' | unixcat /var/lib/nagios/rw/live
acknowledged;action_url;address;alias;check_command;check_period;checks_enabled;contacts;in_check_period;in_notification_period;is_flapping;last_check
;last_state_change;name;notes;notes_url;notification_period;scheduled_downtime_depth;state;total_services
0;/nagios/pnp/index.php?host=$HOSTNAME$;127.0.0.1;Acht;check-mk-ping;;1;check_mk,hh;1;1;0;1256194120;1255301430;Acht;;;24X7;0;0;7
0;/nagios/pnp/index.php?host=$HOSTNAME$;127.0.0.1;DREI;check-mk-ping;;1;check_mk,hh;1;1;0;1256194120;1255301431;DREI;;;24X7;0;0;1
0;/nagios/pnp/index.php?host=$HOSTNAME$;127.0.0.1;Drei;check-mk-ping;;1;check_mk,hh;1;1;0;1256194120;1255301435;Drei;;;24X7;0;0;4

Настройка nagvis

Пример настройки в /etc/nagvis/nagvis.ini.php-sample. Минимальная базовая настройка nagvis Шаблон:File В дальнейшем эти данные можно будет отредактировать через веб-интерфейс. Для того, чтобы к nagvis можно было обращаться из меню nagios, нужно добавить ссылку в файл /usr/share/nagios/htdocs/side.ph

<a href="nagvis/" target="<?php echo $link_target;?>">Nagvis</a>

Добавление кода nagvis в htdocs nagios

ln -s /usr/share/nagvis /usr/share/nagios/htdocs/nagvis


Настройка apache. Добавить в /etc/conf.d/apache2 к параметру APACHE2_OPTS значение

-D NAGVIS

Дополнительная информация

Подробное описание принципа работы MK Livestatus

Документация к Nagvis