KsI-wiki online documents

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