Ключевые слова:monitoring, nagios, debian, (найти похожие документы)
From: Коробанов Сергей <ksi_korobanov@mail.ru.>
Newsgroups: email
Date: Mon, 22 Mar 2010 17:02:14 +0000 (UTC)
Subject: Установка и настройка Nagios3 и Centreon в Debian Lenny
Оригинал: http://ksimute.trancom.ru/mediawiki/index.php/Nagios-Installation-Lenny-Step-By-Step
Задача - поставить nagios3, настроить мониторинг прикрутить к нему centreon,
Только как фронтенд для красивого и удобного предоставления информации.
И как reporting у него красив, а "бизнес" любит красивые графики.
Функцию построения конфигурационных файлов нагиоса использовать не будем.
Они скриптом из датабазы строятся.
Со старту скажу ставится сложно. Вернее вроде как и без особых хаков, но
несколько раз почитать исходники пришлось.
Создатели например нигде не обмолвились, что пользователь, под которым
стартуют демоны обязательно должени иметь логин шел... Впринципе это из
init скриптов понятно, но пока пришло осознание, почему не стартуют
демона, чуть мозг не свернул.
т.к. не дал права mysql пользователю centreon на поменять базу ndoutils
небыли созданы многие таблицы, об чем инсталлятор тоже не обмолвился.
Пришлось читать логи, исходники и грепать установочные файлы. Вообщем
французы...
Если удалить дефолтный конфиг нагиоса и poller в gui, прописать новые,
то centreon может полностью потерять работоспособность (id в некоторых
базах должны совпадать).
И т.п. Вообщем если кто-то поставил centreon без проблем, честь ему и
хвала, считайте повезло. :).
Если кто-то будет копипастить статью, пожалуйста, указывайте ссылку на оригинал.
Ставим 3-й Nagios
В отдельный vserver заворачивать мониторинг не стал. В тестовой домашней
инсталляции смысла нет.
Позже, возможно, поставлю еще nagiosgrapher - я не использовал, есть
смысл посмотреть его возможности.
ndoutils-nagios3-mysql - о ndo2db я уже писал (http://ksimute.trancom.ru/mediawiki/index.php/Ndoutils) они являются
датаброкером для нагиоса, простыми словами - поставляют данные
сentreon-у.
# aptitude install nagios3 nagios3-doc ndoutils-nagios3-mysql snmpd
правим /etc/nagios.cfg
comand_check_interval=15s
был -1 (check for external commands as often as possible) каждые 15 сек. Хватит.
admin_email = myemail@mydomain.ru
admin_pager = myemail@email2sms.somwhere.somecountry
Остальное все устраивает.
Конфиги /etc/nagios/conf.d На самом деле самое главное при внедрении
нагиоса распланировать какие хосты и сервиса мы планируем мониторить, и
эскалацию проблем. Пока планируем мониторинг локал хоста, wifi роутера,
и хостинга. А также некоторых других доменов.
Еще добавим рабочую станцию и ноутбук но мониторить их будем хитро!
Т.к. они периодически выключаются, буду считывать с них данные по SNMP
или Munin нодой. О состоянии диска, raid массивах, температуре и т.п. и
алармить если все грустно.
А когда сам хост недоступен, nagios будет молчать т.к. icmp ping
проверка физического хоста будет parent.
Группы администрирования нам пока не нужны.
Добавим пользователя nagiosadmin для управления всия мониторингом.
#cd /etc/nagios3
#htpasswd -c htpasswd.users nagiosadmin
собственно работает... http://home-gate.mydomain.mycountry/nagios3/Ставим Centreon
Последняя стабильная версия на данный момент 2.1.5
читаем INSTALL
* RRDTOOL
* perl/RRDTOOL (RRDs.pm)
* Net::SNMP
To use Centreon, you need to have on your server :
* php5
* php-mysql
* php-pear
* php-snmp
* php-posix
* php-ldap (if you would like to use LDAP authentification)
* gd-devel
* libpng
* perl-config-IniFiles
* perl-Crypt-DES
* perl-Digest-HMAC
* perl-Digest-SHA1
* perl-GD
* perl-IO-Socket-INET6
* perl-Net-SNMP
* perl-rrdtool
* perl-Socket6
проверяем, доставляем
rrdtool, librrds-perl, php5-snmp, libsnmp-perl, php-pear
cмотрим phpinfo();
posix есть
ldap - ненужен
libgd-dev - virtual
"libgd-dev" является виртуальным пакетом, предоставленный: libgd2-xpm-dev libgd2-noxpm-dev
поставим если что-то не хватает из
libgd2-xpm-dev, libconfig-inifiles-perl, libcrypt-des-perl
libdigest-hmac-perl libdigest-sha1-perl libgd-gd2-perl
libio-socket-inet6-perl libnet-snmp-perl libsocket6-perl
librrdp-perl (This package contains a Perl interface to RRDs using command pipes. )
librrds-perl (This package contains a Perl interface to RRDs using a shared library.)
Какой ставить - в душе не знаю... Поставлю librrds-perl
поехали!
# aptitude install rrdtool librrds-perl php5-snmp libsnmp-perl php-pear
libgd2-xpm-dev libconfig-inifiles-perl libcrypt-des-perl libdigest-hmac-perl
libdigest-sha1-perl libgd-gd2-perl libio-socket-inet6-perl libnet-snmp-perl
libsocket6-perl librrds-perl
Потянулось немножко зависимостей, устновилось :)
Мануал по установке centreon лаконичен до безобразия.
run install.sh
# ./install.sh -i -v
Слушаем вопросы, отвечаем ответы.
Внимание - ответы на следующие вопросы отличаются от ответов по-умолчанию.
Where is installed Nagios ?
default to [/usr/local/nagios]
> /usr/lib/cgi-bin/nagios3/
Path /usr/lib/cgi-bin/nagios3/ OK
Where is your nagios config directory
default to [/usr/local/nagios/etc]
> /etc/nagios3
Path /etc/nagios3 OK
Where is your Nagios var directory ?
default to [/usr/local/nagios/var]
> /var/lib/nagios3
Path /var/lib/nagios3 OK
Where is your Nagios plugins (libexec) directory ?
default to [/usr/local/nagios/libexec]
> /usr/lib/nagios/plugins/
Path /usr/lib/nagios/plugins/ OK
/usr/sbin/nagios3 OK
Where is your Nagios image directory ?
default to [/usr/local/nagios/share/images/logos]
> /usr/share/nagios/htdocs/images/logos/
Path /usr/share/nagios/htdocs/images/logos/ OK
/usr/sbin/nagios3stats OK
p1_file : /usr/lib/nagios3/p1.pl OK
/usr/bin/php OK
/usr/bin/perl OK
Finding Apache group : www-data
Finding Apache user : www-data
Finding Nagios user : nagios
Finding Nagios group : nagios
Where is your NDO ndomod binary ?
default to [/usr/sbin/ndomod.o]
> /usr/lib/ndoutils/ndomod-mysql-3x.o
/usr/lib/ndoutils/ndomod-mysql-3x.o OK
Работает http://myserver.mydomain.myzone/centreon/
Завершаем инсталляцию.
Там все линейно. Верификация созданного конфига, генерация базы.
Дальше читаем readme
Внимание этот пункт не забываем!
mysql> GRANT ALTER on ndoutils.* TO 'centreon'@'localhost'
-> ;
Query OK, 0 rows affected (0.03 sec)
Конфигурируем брокер модуль в нагиосе.
Т.е. centreon использует базу поддерживаемую ndoutils (ndo2db) и надо
нагиосу рассказать, что он должен передавать данные брокеру ndo.
правим
#vi /etc/nagios3/nagios.cfg
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
broker_module=/usr/lib/ndoutils/ndomod-mysql-3x.o config_file=/etc/nagios3/ndomod.cfg
/etc/init.d/nagios3 restart
Cмотрим выборку
mysql> use ndoutils
mysql> select * from nagios_services \G;
Поперли данные!
Идем в Web интерфейсе centreon configuration->centreon->ndo2db.cfg
Правим, прописываем настройки для базы ndoutils.
И в интерфейсе начинают отображаться наши хосты. Сервисы и т.п.
Теперь нужна карта и бизнес модуль.
Загружаем конфиги
nagios.cfg
Для этого тарим на нагиосе /etc/nagios3 загружаем к себе на рабочую
станцию и через web gui заливаем.
Я бы не стал после заливки nagios.conf удалять конфиг centreon. т.к.
глюки появляются с id в разных базах. А просто привел его ручкамми в
соответствие с нашим текущим.
Аналогично и с cgi.conf
потом выбираем template метод указываем все тотже tar.gz и информация о
наших хостах хостгруппах и сервисах появляется в базе centreon.
т.е. Centreon в базе построии таблички в соответствии с нашим конфигом нагиоса.
Теперь пошли багфиксы...
Скорее "фиксы конфигов".
Со старту ничего не заработало.
И это какбы коммерчесский софт :(
1. Даем nagios пользователю /bin/bash shell чтобы демоны запустились.
2. Права на папки
# Cron for CentACL
*/2 * * * * www-data /usr/bin/php -q /usr/local/centreon/cron/centAcl.php >>
/usr/local/centreon/log/centAcl.log 2>&1
использует
/var/lib/centreon/log/
права
drwxr-xr-x 2 nagios nagios
А скрипт запускается от www-data.
Дадим 777 для тесту, потом посмотрим с какими создаются файлы, сделаем выводы, урежем.
Чтобы nagios process info выдавал, имя instance_name в
ndoutils.nagios_instances должно соответствовать имени в centreon.nagios_server
От этого еще много чего зависит, отображение логов построение графиков и т.п.
mysql> use ndoutils
mysql> select * from nagios_instances;
+-------------+---------------+----------------------+
| instance_id | instance_name | instance_description |
+-------------+---------------+----------------------+
| 1 | default | |
+-------------+---------------+----------------------+
Правим ndomod.cfg
instance_name=Central
рестартуем nagios и ndoutils
Появилась информация.
Желательно конечно после такой стремительной атаки truncate таблицам в
базе ndoutils сделать. Иначе дублирование хостов и сервисов получим,
только копии будут с instance default.
Как базу почистить:
Получим список таблиц и сформируем запрос на трункирование
mysql> SELECT concat('TRUNCATE TABLE ', TABLE_NAME, ' ;')
FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'nagios_%' AND TABLE_SCHEMA='ndoutils';
Правим view т.е. Perfomance-графики
Это последнее что осталось неработающим.
Впринципе они нам соовсем не нужны, munin есть и все что надо рисуем, но уж
надо забороть для полноты инсталляции. (об этом упоминания в официальной документации не нашел).
в /etc/nagios.conf должно быть так:
check_external_commands=1
process_performance_data=1
service_perfdata_command=process-service-perfdata
#host_perfdata_file=/var/lib/nagios3/host-perfdata
#service_perfdata_file=/var/lib/nagios3/service-perfdata
Комманда process-service-perfdata у nagiosa своя. Ее комментируем ставим
центреоновскую
#vi /commands.cfg
#'process-service-perfdata' command definition
# define command{
# command_name process-service-perfdata
# command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t
$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t
$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n"
>> /var/lib/nagios3/service-perfdata.out
#}
define command{
command_name process-service-perfdata
command_line $USER1$/process-service-perfdata "$LASTSERVICECHECK$" "$HOSTNAME$"
"$SERVICEDESC$" "$LASTSERVICESTATE$" "$SERVICESTATE$" "$SERVICEPERFDATA$"
}
Смотрим, файлик обрабатывается данные поперли, лог ругается. :) смотрим
исходники, временных диапазонов сервисам не хватает.
Теперь создаем сервисам template
generic-service, где укажем временные диапазоны и т.п. и графики начнут строиться.
Официальная Howto - http://en.doc.centreon.com/Setup:Prerequisite/Debian/Ubuntu
Правда там все грустно достаточно информации мало только про дополнительные
пакеты хорошо написано.
А форум у них наполовину на французском и отвечают вяло.
P.S. centreon это конечно хорошо, но если не стоит задача его
использовать как gui замена конфигуратора нагиоса а как фронтэнд + SLA
репортер, я бы задумался о его внедрении. Слишком тяжелоконфигурабельно.
Очень полезно включать debug режим для разных вещей в Administration - Options - Options - Debug и смотреть на вывод лог файлов.
Если не генерятся графики для сервисов то идем в Administration - Options - Centstorage - Manage, выбираем нужный сервис и смотрим Number of values справа. Если там 0 то perfdata не поступает корректно. Делаем tail -f /var/lib/nagios3/service-perfdata и ждем пару минут. Nagios доолжен складывать туда инфу, а процесс centstorage забирать и подчищать файл.
Обязательно display_errors=Off в php.ini, иначе графики не сгенерятся (точнее сгенерятся, но побитые и apache их не распознает как картинку и бразуер их не сможет показат, т.к. ошибки php будут идти впереди заголовка png файла).
Спасибо за статью.
После установки и настройки обнаружил, что не запустился ndo2db
соответственно вручную пришлось запустить - тогда Nagios смог в БД скинуть конфиги