Как стать автором
Обновить

Развертывание и настройка Nagios v.3

Исходная задача звучала примерно так.
Развертывание на сервере Ubuntu платформы Nagios, для мониторинга следующих узлов организации:

Сайт lala.ru: IP_1: доступ по ping; http
Сервер mocs: IP_2: доступ по ping;
Сервер ipaddress: IP_3: доступ по ping;
Сервер Mr: IP_4: доступ по ping, smtp;
DNS сервер: IP_5: доступ по ping;
Exchange сервер: IP_6: доступ по https, pop3,smtp.

Также необходимо место на диске, загрузку CPU, загрузку память для данных серверов.

Реализация.

1)
Установка Nagios.

Установка вспомогательных программ:
apt-get install:
apache
gcc
build-essential
libd2-xpm-dev
Создаем пользователя и группу, от которых будет работать Nagios:
useradd -m nagios
passwd nagios
usermod -G nagios nagios

Создаем отдельную группу для управления настройками ч/з веб-интерфейс: nagcmd. Включим в нее учетную запись веб-сервера (www-data) и пользователя nagios:
group add nagcmd
usermod -G nagcmd nagios
grep -i user /etc/apache2/envvars
usermod -G nagcmd www-data

Устанавливаем nagios:
apt-get install nagios

2)
Настраиваем работу самого Nagios.

Прописываем в /etc/nagios3/cgi.cfg пользователя-админа, который может конфигурировать Nagios через веб-интерфейс.
В нашем случае это:
manage
Выставляем пароль для доступа пользователя manage в вебке:
htpasswd -c /etc/nagios3/htpasswd.users manage
(если мы хотим создать другую учетку (например User1) для доступа к вебке nagios, это делается командой:
htpasswd -c /etc/nagios3/htpasswd.users User1)
Перезапускаем apache:
/etc/init.d/apache2 reload
Поставим nagios в автозагрузку:
ln -s /etc/init.d/nagios /etc/reS.d/S99nagios

— Проверка nagios.cfg на наличие ошибок:
nagios3 -v /etc/nagios3/nagios.cfg
— 3)
Настройка мониторинга узлов в Nagios.

В папке /etc/nagios3/conf.d/ содержатся основные конфигурационные файлы, из которых Nagios читает информацию об узлах.
1) ./hosts_nagios2.cfg — здесь прописываем названия и IP-адреса узлов, которые хотим мониторить.

Здесь были прописаны все требуемые в задаче узлы.
Пример:
#Основной DNS сервер
define host{
use generic-host
host_name DNS Preferred
alias Preferred DNS Server
address IP_5
}

#
define host{
use generic-host
host_name Mr server
alias
address IP_4
}

2) ./hostgroup_nagios2.cfg — задаем группы хостов, к которым хотим применить один из сервисов Nagios.

Здесь хосты были объединены в группы согласно сервисам, по которым их следует мониторить: http, https, pop3, smtp, ping, CPU, Mem, Disk_Space.
Пример:
#smtp-accessible servers
define hostgroup {
hostgroup_name smtp-servers
alias SMTP servers
members Mr server, Exchange
}

3) ./services_nagios2.cfg — задаем, какие службы, протоколы и т.д. будут проверяться Nagios, для каких групп узлов это действует.

Здесь были описаны все используемые Nagios сервисы.
Пример:
# check that smtp services are running
define service {
hostgroup_name smtp-servers
service_description smtp
check_command check_smtp
use generic-service
notification_interval 0; set > 0 if you want to be renotified
}

Заходим на Nagios через веб-интерфейс:
10.33.10.170/nagios3
логин-пароль: YOUR_PASS

Для мониторинга за железом (CPU, Mem, Disk_Space), необходимо установить демон
NRPE
NSClient++

4) установка NRPE

На клиенте (ОС Linux).
Предварительный этап:
apt-get install xinetd
apt-get install libssl-dev
apt-get install openssl
groupadd nagios
useradd nagios -d /home/nagios -g nagios -m
Установка:
cd /home/manage
wget citylan.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz
tar -xzf ./nrpe-2.13.tar.gz
cd ./nrpe-2.13
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
make all
make install && make install-xinetd
Конфигурирование:
Редактируем /etc/xinetd.d/nrpe, находим строку
only_from = 127.0.0.1,10.33.10.170 (без пробела после "," !!!)
дописываем IP-адрес хоста Nagios (в общем случае — узлов, с которых будет осуществляться мониторинг)

Добавить описание NRPE в конец файла /etc/services.
nrpe 5666/tcp # NRPE
Далее:
service xinetd restart

На клиенте (ОС Windows).
NSClient++ качаем отсюда: files.nsclient.org/x-0.4.x/NSCP-0.4.1.61-x64.msi
или files.nsclient.org/x-0.4.x/NSCP-0.4.0.183-Win32.msi
Конфигурирование:
Делаем все, как на картинках: habrahabr.ru/sandbox/41657 (IP: 10.33.10.170, обязательно проставляем все галочки)
C:\Program Files\NSClient++\nsclient.ini
Далее идём в «Службы», открываем NSClient++ и ставим галочку напротив «Разрешить взаимодействие с рабочим столом» на вкладке «Вход в систему». Если служба не запущена, нажимаем «старт».

На сервере Nagios.


Перед запуском определенного сервиса, Nagios в папке /etc/nagios-plugins/ смотрит согласно $service_description .cfg-файл, находит путь до плагина $check_command, запускает ее. Числовые и прочие параметры для запуска плагинов указываются в ./services_nagios2.cfg.

4)
Если сбой! Настройка оповещения админа.

1)
vim /etc/nagios3/commands.cfg — изменяем параметры отправки почты:
В конец команд host-notify-by-email и notify-by-email вместо $CONTACTEMAIL$ прописываем через пробел адреса получателей (admin@yandex.ru, root@localhost, ...)

либо (если не заработает, как было у меня: на виртуалке этот вариант прошел)

vim /etc/nagios3/conf.d/contacts_nagios2.cfg — добавляем описания контактов, которых хотим включить в рассылку уведомлений, добавляем их в группу admins.

define contact{
contact_name manage
alias Nagios Administrator
service_notification_period 24x7
host_notification_period 24x7
service_notification_options c,r // c – сообщать о критических состояниях, r – сообщать о восстановлении сервиса
host_notification_options d,r // d — оповещение в том случае, если система отключилась, r – сообщать о восстановлении системы
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email admin@yandex.ru
}

define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members root, manage
}

2)
vim /etc/nagios3/conf.d/generic-service_nagios2.cfg — указываем настройки оповещения (через какой временной интервал и в ответ на какие события высылать письма)
notification_interval 240 //240 = 4 часа
notification_options c,r // c – сообщать о критических состояниях, r – сообщать о восстановлении сервиса

vim /etc/nagios3/conf.d/generic-host_nagios2.cfg
notification_interval 240
notification_options d,u,r // d — оповещение в том случае, если система отключилась, u – если она недоступна, r – сообщать о восстановлении системы

5)
Конфигурирование Nagios через php-шный веб-интерфейс NConf (http://exchange.nagios.org/directory/Addons/Configuration/NConf/details)

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.