NagVis: Установка и первоначальная настройка
В прошлой статье я расказывал о такой отличном расширении для Nagios как NagVis, сегодня я опишу как его ставить.
Предпологается что вы имеете:
- Linux или FreeBSD (у меня был FreeBSD) поэтому будут некоторые оговорки
- Nagios 2 или 3
- Apache
- MySQL
- PHP5
- php5-gd
- php5-gettext
- php5-mysql
- php5-mbstring
- php5-session
- php5-xml
Оговорки
Т.к. под рукой у меня был сервер с FreeBSD некоторые пакеты я ставил прямиком из портов, а именно:
- PHP5 и его модули
- MySQL
- Nagios 2
- Apache2
Ниже я не буду рассказывать как я это все ставил, в том числе Nagios, я искренне надеюсь что вы сумеете воспользоватся Google и найти ответы на эти вопросы, а также что вы не настолько крутой хацкер что вас забанили в Google.
0. Документация
Прошлая статья цикла: NagVis: управление сложностью в Nagios
Официальная документация по NagVis: http://www.nagvis.org/documentation
Cтраница NDOUtils: http://www.nagios.org/download/addons/
Официальная документация по NDOUtils: http://support.nagios.com/knowledgebase/officialdocs
1. Установка NDO2Utils
NDO2Utils это модуль для Nagios который сохраняет текущее состояние всего что мы мониторим в базу данных (в нашем случае это будет MySQL), а оттуда ее уже могут брать сторониие приложения. В скором будующем я надеюсь закончить перевод документации по NDO2Utils, она может немного прояснить ситуацию.
Итак, не вдаваясь в подробности, скачиваем тарбол с исходниками NDO2Utils отсюда
http://www.nagios.org/download/addons/
или
wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz |
и распаковываем.
Во FreeBSD мне почему-то пришлось поправить сорсы (нужно всетаки качать стабильные врсии программ
), в файле include/config.h заменяем
#define HAVE_MYSQL 1 #include <mysql/mysql.h> #include <mysql/errmsg.h> |
на
#define HAVE_MYSQL 1 #include <mysql.h> #include <errmsg.h> |
Конфигурируем, собираем, ставим.
./configure && make && make install |
Теперь нужно создать базу данных для NDO2Util и инициализировать ее. Предпологается что пользователь «root» у вас без пароля (сам знаю
).
# Заходим в папку "db" cd db/ # Создаем базу данных ndo mysql -e create database ndo; # Инициализируем ее ./installdb -u root -p '' -h localhost -d ndo |
Если Все прошло без ошибок, значит вы бородаты, если нет, задавайте вопросы будем разбиратся
.
1.1 Настройка NDO2Utils
Для FreeBSD:
cp ndomod.cfg-sample /usr/local/etc/nagios/ndomod.cfg cp ndo2db.cfg-sample /usr/local/etc/nagios/ndo2db.cfg mkdir /usr/local/nagios/var/ |
Для * Linux (если вы ставились не из исходников, то файлы копируются в /etc/nagios/):
cp ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg cp ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg |
Открываем файл /usr/local/etc/nagios/ndo2db.cfg, находим и меняем
db_name=nagios ... db_user=ndouser db_pass=ndopassword |
на
db_name=ndo ... db_user=root db_pass= |
Запустить сервис NDO2DB можно выполнив следующую команду
/usr/local/nagios/bin/ndo2db -c /usr/local/etc/nagios/ndo2db.cfg |
«Остановить» сервис можно выполнив
killall ndo2utils |
Его по хорошему нужно добавить в автозагрузку, можно в rc.conf можно при загрузке Nagios, а можно наварганить собственный скрипт для init – дерзайте
.
Ну и последний пункт настройки NDO2Utils, добавление его в Nagios. Находим свой файл nafios.cfg (/usr/local/nagios/etc/, /etc/nagios/, /usr/local/etc/nagios/) и добавляем в него следующие строки:
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/etc/nagios/ndomod.cfg event_broker_options=-1 |
Оговорка
Возможно у вас как и у меня установлен Nagios 2й версии, NDO2Utils по умолчанию предпологает что у вас Nagios v3. Чтобы поставить правильную версию выполните «make install-2x», если и это не поможет (как было у меня), скопируйте нужный файл руками (предварительно выполнив «make install»):
cp src/ndomod-2x.o /usr/local/nagios/bin/ndomod.o |
это связано с тем что для Nagios v2 и v3 нужены разные модули-брокеры.
1.2 Проверка работы NDO2Utils
Ну вот мы уже почти и закончили, осталось только проверить что NDO2Utils работает так как нужно.
1) Перезапустите сервис Nagios`а и откройте его лог (/var/spool/nagios/nagios.log для FreeBSD, /var/log/nagios/nagios.log для CentOS-like, /usr/local/nagios/var/nagios.log если вы ставились из чистых сорсов). Найдите там строки вроде таких:
[1257520535] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors [1257520535] ndomod: Successfully connected to data sink. 0 queued items to flush. [1257520535] Event broker module '/usr/local/nagios/bin/ndomod.o' initialized successfully.
Если нет, вы должны увидеть ошибку, если ее созерцание вам ничем не помогло, переходим к пункту 2
2) В файле ndo2db.cfg выставляем следующие параметры:
... debug_verbosity=2 ... debug_level=-1 ... |
Эти опции выставляют уровень логирования на максимум (непонятно почему, но по другому брокер NDO никак не показываетсоей работы). Подсматриваем что у нас в опции конфига debug_file, у меня «/usr/local/nagios/var/ndo2db.debug», выполняем
tail -f /usr/local/nagios/var/ndo2db.debug |
Если все было сделано правильно, вы увидите кучи бегущих SQL-запросов, если нет ищем ошибки или пишем в комментарии
. После того как все проверено опции логирования в ndo2db.cfg лучше вернуть на место…
2. Установка и настройка NagVis
Для начала нужно скачать последнюю версию NagVis отсюда: http://nagvis.org/downloads.
Далее разархивируем тарбол и копируем его содержимое в папку в которой лежит веб интерфейс для Nagios (во FreeBSD это «/usr/local/www/nagios/nagvis/»).
Заходим в папку NagVis`а и создает для него конфиг из уже готового:
cp etc/nagvis.ini.php-sample etc/nagvis.ini.php vim etc/nagvis.ini.php |
Далее меняем:
[backend_ndomy_1] ; type of backend - MUST be set backendtype="ndomy" ; hostname for NDO-db dbhost="localhost" ; portname for NDO-db dbport=3306 ; database name for NDO-db dbname="ndo" ; username for NDO-db dbuser="root" ; password for NDO-db dbpass="" ; prefix for tables in NDO-db dbprefix="nagios_" ; instance name for tables in NDO-db dbinstancename="default" ; maximum delay of the NDO Database in seconds maxtimewithoutupdate=180 ; path to the cgi-bin of this backend htmlcgi="/nagios/cgi-bin" ... allowedforconfig="admin" |
Опция «allowedforconfig» должна содержать имена пользователей которым разрешено редактировать карты в NagVis (они задаются в файле .htacess для Nagios`а). Разрешаем доступ для Apache к NagVis:
chmod -R www:www /usr/loca/www/nagios/nagvis |
Для особых «ценителей» и «гурманов» статья о том как правильно выставить права на файлы: http://docs.nagvis.org/1.4/en_US/installer.html («STEP 5: Permissions»).
Открываем в браузере URL http://

Заключение
В следующей статье попытаюсь рассказать о том как создавать собственные карты и что собственно с ними нужно делать. Ну а для затравки особых читателей, то что у меня есть сейчас:

Возможно я что-то забыл
, оставляем коментарии.
Поставил в Debian из репозитория ndoutils 1.4b7-11 и ndoutils-nagios3-mysql 1.4b7-11. В логах появлялась строка:
ndo2db: Error: mysql_query() failed for \’INSERT INTO nagios_configfilevariables SET instance_id=\’1\’, configfile_id=\’4\’, varname=\’cfg_dir\’, varvalue=\’/etc/nagios3/conf\\.d\’\’
помогла следующая вещь:
ALTER TABLE `nagios_configfilevariables` DROP INDEX `instance_id` , ADD INDEX `instance_id` ( `instance_id` , `configfile_id` )
Если честно, в субооту, под влиянием собственной статьи пытался поставить Nagios3+NDOUtils+NagVis и понял как будет называтся следующая статья – «Почему Nagios должен ставится из исходников» тем более в Debian (Lenny). Мейнтейнер пакета просто садист, конфиги разбросаны по 4-5 папкам, хотя необходимости в этом нет
.
.
P.S.
За коммент спасибо, думаю кому-то он пригодится
Хотя судя по комментам ты как и я unstable балуешься
.
не, у меня debian stable
Ошибочка вышла
Nagvis – очень хороший инструмент. От себя могу порекомендовать использовать FAN (Fully Automated Nagios) http://fannagioscd.sourceforge.net/drupal/?q=node/7
Это линукс-дистрибутив, в который включены и работают из коробки Nagios, Nagvis, Centreon, RRD, Nareto, что позволяет сразу же видеть схемы сервисов, графики по сервисам, отчеты, типа сколько сервис лежал и т.п. Ставится и настраивается за полчаса.
Сказал бы «спасибо КЭП», но будет грубо
. В прошлой статья я писал что NagVis в FAN работает из коробки.
может вопрос не в тему, но все же^^
Nagios умеет, без особого ковыряния конфига, сам изучать сеть, как например NeDi (www.nedi.ch)?
*дисклеймер*
не сочтите за рекламу^^ буду рад услышать совет бородатых
За рекламу не сочту, да и не бородатый я
.
. Если дадите URL на толковый док по установке и конфигурированию буду ОЧЕНЬ благодарен.
Nedi я как-то смотрел, но так и не смог настроить чтобы он сам все искал
Сама всё ищет OpenNMS – http://www.opennms.org
Спасибо за хорошие статьи.
Вот спасибо, про эту софтину я еще не слышал.
«Из коробки» это не возможно, но судя по описанию Nedi можно попробовать сколотить мутанта Nedi+Nagios
Вот статья по nedi.С цисками работает на ура.Если поковырять .def файлы то можно работать и с другим оборудованием.
http://itroute.ru/story.php?title=Obzor-i-nastrojka-sistemy-upravleniya-setyu-Nedi
Спасиб, читану на досуге.
На счет мутанта nagios и nedi.Если в конфиге nedi расскоментировать строку
#module Other Nagios cinf oth
Можно будет генерировать конфиги хостов для Nagios из Nedi.
%) вот это кашир…
Спасибо друг!!
Буду приглядыватся к Nedi.
в действительности, мощная тулза получилась – стоило лишь глаза разуть:)
теперь начальник не изнасилует:)
Ещё http://www.netxms.org/ стоит посмотреть.
Спасибо, чисто теоретически задавался вопросом «А что есть под винду?»
Под винду есть вышеупомянутый OpenNMS и Hyperic – http://www.hyperic.com/. А вообще вот интересная ссылка http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems. Все что написано на Java можно поставить на винду.
Привет, статья хорошая ,но что то с отображением шаблона твоего блога.
В Опере проверь свой шаблон!
Спасибо, попробую на досуге
Установил ndoutils, создал базу в mysql, инициализировал её, проапгрейдил, проверил таблицы – есть, настроил конфиги аналогично пункту 1.1. Запустил ndoutils, рестартанул нагиос, но вот в логах нагиоса у меня оказалось следующее:
[1266284798] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1266284798] ndomod: Could not open data sink! I’ll keep trying, but some output may get lost…
[1266284798] Event broker module ‘/usr/local/nagios/bin/ndomod.o’ initialized successfully.
Очень долго шерстил Гугль, но решения проблемы везде было одно – перепроверить файлы конфигов. Проверял неоднократно, а вот в чем грабли так и не разобрался.
P.S. Система Open SUSE 11.1
С предыдущей проблемой разобрался, однако на ее место встала другая…
[1266295136] Nagios 3.1.2 starting… (PID=19593)
[1266295136] Local time is Tue Feb 16 13:38:56 YAKT 2010
[1266295136] LOG VERSION: 2.0
[1266295136] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1266295136] ndomod: Successfully connected to data sink. 0 queued items to flush.
[1266295136] Event broker module ‘/usr/local/nagios/bin/ndomod.o’ initialized successfully.
[1266295136] Finished daemonizing… (New PID=19595)
[1266295136] ndomod: Error writing to data sink! Some output may get lost…
[1266295136] ndomod: Please check remote ndo2db log, database connection or SSL Parameters
[1266295152] ndomod: Successfully reconnected to data sink! 0 items lost, 216 queued items to flush.
[1266295152] ndomod: Successfully flushed 216 queued items to data sink.
[1266295152] ndomod: Error writing to data sink! Some output may get lost…
[1266295152] ndomod: Please check remote ndo2db log, database connection or SSL Parameters
[1266295168] ndomod: Successfully reconnected to data sink! 0 items lost, 80 queued items to flush.
[1266295168] ndomod: Successfully flushed 80 queued items to data sink.
[1266295168] ndomod: Error writing to data sink! Some output may get lost…
[1266295168] ndomod: Please check remote ndo2db log, database connection or SSL Parameters
1. А что в это время пишется в логе /usr/local/nagios/var/ndo2db.debug ?
2. В конфиге ndomod (/usr/local/etc/nagios/ndomod.cfg) найди строку
…
output=/usr/local/nagios/var/ndo.sock
…
Проверь наличие этого файла
3. В файле настроект NDO2DB (/usr/local/etc/nagios/ndo2db.cfg) найди строку
…
socket_name=/usr/local/nagios/var/ndo.sock
…
Имена файлов должны совпадать
Если не помогло опиши как фиксил прошлую проблему
1. Самое что интересно, ndo2db.debug – пуст
2. Про совпадение имен и адресов файлов в output и socket_name я был вкурсе, а также пробовал их менять на другие (одновременно в обоих конфигах естественно) типа /var/tmp/ndo.sock , но не помогло…
А с прошлой ошибкой оказалось все просто: при настройке я копипастил в nagios.cfg строки из браузера как есть
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/etc/nagios/ndomod.cfg
event_broker_options=-1
все заработало когда я удалил
Упс
А с прошлой ошибкой оказалось все просто: при настройке я копипастил в nagios.cfg строки из браузера как есть
broker_module=/usr/local/nagios/bin/ndomod.o config_file=<strong/usr/local/etc/nagios/ndomod.cfg</strong
event_broker_options=-1
все заработало когда я удалил <strong и </strong
asd:/usr/local/nagios/etc # grep -v «^$» ndo2db.cfg | grep -v «#»
lock_file=/usr/local/nagios/var/ndo2db.lock
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=unix
socket_name=/var/tmp/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=nag
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=-1
debug_verbosity=2
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000
asd:/usr/local/nagios/etc # grep -v «^$» ndomod.cfg | grep -v «#»
instance_name=default
output_type=unixsocket
output=/var/tmp/ndo.sock
tcp_port=5668
use_ssl=0
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/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
asd:/usr/local/nagios/etc #
это мои конфиги, у меня в mysql сурперюзер nagios (pass: nag), база тоже зовется nagios
В файле
/usr/local/nagios/var/ndomod.tmp
есть что нибудь?
Файл ndo2db.debug при запуске ndo2db создается, но не заполняется. Файл /usr/var/nagios/var/ndomod.tmp при запуске даже не создается, пробовал создавать вручную, назначив всевозможные права доступа, но и в таком случае он не заполняется.
Судя по всему у тебя были проблемы с соединением с базой данных, проверь с помощью
mysql -u nagios -p
и введя пароль
Только что решил такую же проблему с теми же симптомами.
С соединением вроде проблем нет.
Набрал mysql -u nagios -p nagios, ввел пароль и получил «mysql>».
Ввел show tables; и получил список всех таблиц базы, которые пусты.
Подожди, в конфиге ndo2db у тебя пароль не «nagios»:
db_user=nagios
db_pass=nag
Конечно не nagios, пароль – nag, то что указано у меня после «-p» – это имя базы, пароль я ввожу отдельно (после приглашения «Password:»). Если я не ошибаюсь, то пароль указывается слитно с «-p». Если не написать имя базы, то входишь в командную строку «mysql>» ,без попадания в конкретную базу. Я просто хотел посмотреть содержимое базы nagios, а какой командой в mysql выбрать конкретную базу не помню, потому и воспользовался командой таким образом.
P.S. конечно выполнить вход в mysql посредством «mysql -u nagios -p» и посредством «mysql -u nagios -pnag»я пробовал – получается.
asd:/etc # mysql -u nagios -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2085
Server version: 5.0.67 SUSE MySQL RPM
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> \q
Bye
asd:/etc # mysql -u nagios -pnag
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2086
Server version: 5.0.67 SUSE MySQL RPM
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> \q
Bye
asd:/etc #
Блин, это только у меня с кодировкой проблемы? Пять последних сообщений «крокозябриками» отображаются.
Это долбаный спам, отрубил нафиг бэклинки.
хоббит или туда и обратно фильм…
фильм почтальон всегда звонит дважды…
FreeBSD 7.3 ndodb2-3x запускается
[14:25] /home/alex >ps -A | grep nagios
87682 ?? Is 0:00,00 /usr/local/nagios/bin/ndo2db-3x -c /usr/local/etc/nagios/ndo2db.cfg
87792 ?? Ss 0:00,09 /usr/local/bin/nagios -d /usr/local/etc/nagios/nagios.cfg
но в логи вообще ничего не пишет в базу тоже не попадает ничего . Не знаю уже что делать . Версия nagios Nagios Core 3.2.1
А кто сталкивался с тем, что когда в нагиосе хостов становится более 500, нагиос начинает долго загружатся. Например, добавил я новый хост, привязал к нему сервис и т.д., после чего я делаю релоад или рестарт, и некоторое время около 5 минут нагиос начинает читать свои конфиги и писать найденные изменения в БД. Т.е. 5 минут у меня как бы не работает нагиос и нагвис пишет, что нагиос не запущен. Если же ndoutils остановить, то нагиос в течение нескольких секунд заводится. Никто не знает как это дело можно ускорить с ndoutils? Буду очень благодарен за ответ
Я не сталкивался с такой проблемой, но могу только посоветовать останавливать ndo2db перед рестартом.
NDO2DB гадко сделанная вещь, и из своего опыта могу предположить что это не последний костыль с которым вы столкнетесь…
[1283518804] Caught SIGTERM, shutting down…
[1283518804] Successfully shutdown… (PID=15954)
[1283518804] ndomod: Shutdown complete.
[1283518804] Event broker module ‘/usr/local/nagios/bin/ndomod.o’ deinitialized successfully.
[1283518804] Nagios 3.2.1 starting… (PID=16015)
[1283518804] Local time is Fri Sep 03 17:00:04 MSD 2010
[1283518804] LOG VERSION: 2.0
[1283518804] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1283518804] ndomod: Could not open data sink! I’ll keep trying, but some output may get lost… #!!!!!!!
[1283518804] Event broker module ‘/usr/local/nagios/bin/ndomod.o’ initialized successfully.
[1283518804] Finished daemonizing… (New PID=16017)
[1283519716] ndomod: Still unable to connect to data sink. 0 items lost, 4956 queued items to flush.
Не могу понять в чем запара =( Гуру, подскажите как настроить, у меня убунту+нагиос 3.2.1 + ндо 1.4Б9.
А ndo2db у тебя запущен?
[1283518804] ndomod: Could not open data sink! I’ll keep trying, but some output may get lost… #!!!!!!!
эта строчка говорит о том что модуль в Nagios`е не может соединиться с NDO2DB
Почитай внимательно пункты 1.1 и 1.2