Nagios-Installation-Lenny-Step-By-Step
Материал из Ksimute
Содержание[убрать] |
Задача - поставить nagios3, настроить мониторинг прикрутить к нему centreon
Коробанов Сергей
Март 22, 2010
Centreon будет выполнять функцию фронтенда для красивого и удобного предоставления информации. И как reporting у него красив, а "бизнес" любит красивые графики. Функцию построения конфигурационных файлов нагиоса использовать не будем. Они скриптом из датабазы строятся.
Со старту скажу ставится сложно. Вернее вроде как и без особых хаков, но несколько раз почитать исходники пришлось.
Создатели например нигде не обмолвились, что пользователь, под которым стартуют демоны обязательно должени иметь логин шел... Впринципе это из init скриптов понятно, но пока пришло осознание, почему не стартуют демона, чуть мозг не свернул.
т.к. не дал права mysql пользователю centreon на поменять базу ndoutils небыли созданы многие таблицы, об чем инсталлятор тоже не обмолвился. Пришлось читать логи, исходники и грепать установочные файлы. Вообщем французы...
После создания пулемета Шоша и винтовки Лебеля от них странно ожидать хорошего софта. :) шутка какбы.
Если удалить дефолтный конфиг нагиоса и poller в gui, прописать новые, то centreon может полностью потерять работоспособность (id в некоторых базах должны совпадать).
И т.п. Вообщем если кто-то поставил centreon без проблем, честь ему и хвала, считайте повезло. :).
Если кто-то будет копипастить статью, пожалуйста, указывайте, что оригинал находится здесь: http://ksimute.trancom.ru/mediawiki/index.php/Nagios-Installation-Lenny-Step-By-Step
Вас не напряжет, а мне какбы приятно будет что сидел писал, для людей, и не сплагиатили, просто так, а авторство указали :)
Ставим 3-й Nagios
В отдельный vserver заворачивать мониторинг не стал. В тестовой домашней инсталляции смысла нет.
Позже, возможно, поставлю еще nagiosgrapher - я не использовал, есть смысл посмотреть его возможности.
ndoutils-nagios3-mysql - о ndo2db я уже писал :) Ndoutils они являются датаброкером для центриона.
# 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 роутера, и хостинга где мы собственно хостимся :). А также некоторых других доменов.
Инсталляция тестовая. В продакшн выводить будем, повеселимся :) там более 2000 чеков :) :).
Еще добавим рабочую станцию и ноутбук но мониторить их будем хитро!
Т.к. они периодически выключаются, буду считывать с них данные по 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 репортер, я бы задумался о его внедрении. Слишком тяжелоконфигурабельно.
Пожелания предложения. Коробанов Сергей - ksi_korobanov@mail.ru