Установка Nagios


Установка Nagios позволит получить рабочее решение для мониторинга с большим количеством возможностей. Nagios позволяет реализовывать масштабируемые системы. Конфигурация для распределенных систем — длительный процесс, в рамках статьи реализуем мониторинг одного сервиса на удаленном хосте.

Работы по настройке будут выполняться на сервере с операционной системой CentOS 7, для nrpe клиента также будет использоваться CentOS 7

На клиенте установим плагин nrpe и разрешим в его настройках подключение к серверу.



Nagios установка и настройка сервера мониторинга


Настройку начинаем на машине, которая будет выполнять роль nagios сервера. Установим необходимые пакеты:

yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip



nagios работает через Apache, поэтому в списке устанавливаемых пакетов присутствует httpd



Переходим в корневой каталог с временными файлами и скачиваем в него при помощи wget последние релизы nagios и nagios-plugins

cd /tmp

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.2.8.tar.gz

wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz



Создаем системных пользователя и группу

useradd nagios

groupadd nagcmd



Добавляем пользователя nagios в группу nagcmd

usermod -a -G nagcmd nagios


usermod -a -G nagios,nagcmd apache



Поскольку используем CentOS httpd работает не от имени пользователя www-data, а от имени пользователя apache



Чтобы в дальнейшем не возникло конфликтов прав добавляем пользователя apache в группы nagios,nagcmd

ls -la



Извлекаем содержимое скачанного архива

tar -zxvf nagios-4.2.0.tar.gz



Переходим в каталог с файлами nagios

cd nagios-4.2.0



Установку как nagios, так и nrpe в дальнейшем будем производить из исходников

./configure --with-command-group=nagcmd


В качестве опции при сборке указываем группу nagcmd



Компилируем

make all


make install


make install-init


make install-config


make install-commandmode


make install-webconf



Рекурсивно копируем каталог с библиотеками в /usr/local на сервере

cp -R contrib/eventhandlers /usr/local/nagios/libexec



Также рекурсивно меняем владельца и группу владельца каталогов и файлов на nagios

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers



Пробуем запустить и посмотреть версию nagios указывая путь к основному конфигурационному файлу

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg



Добавляем nagios в автозагрузку — система будет каждый раз запускать его при старте

systemctl enable nagios



Запускаем сервис

systemctl start nagios



Аналогичные операции проделываем с веб-сервером

systemctl enable httpd


systemctl start httpd

Задаем пароль пользователя nagios

passwd nagios



При помощи htpasswd генерируем файл, который будет ограничивать доступ для пользователя nagiosadmin

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin


Установка основного пакета на этом завершена. Открываем интернет браузер и вводим в поисковую строку ip-адрес сервера, затем /nagios и попадаем в веб-интерфейс



Настройка мониторинга сервиса на удаленном хосте


Идем на другую серверную машину, которая будет выполнять роль nagios-клиента
Переходим в каталог /tmp/

cd /tmp/

ls -la



Распаковываем nagios-plugins-2.1.2

tar -zxvf nagios-plugins-2.1.2

cd nagios-plugins-2.1.2



Компилируем указывая пользователя и группу nagios

./configure --with-command-user=nagios --with-nagios-group=nagios

make

make install



Теперь устанавливаем nrpe plugin

Сначала дополнительно ставим из репозитория openssl-devel, если он уже установлен — шаг пропускаем (необходимо также присутствие пакета и на nagios сервере)

yum -y install openssl-devel



Можно установить и из репозитория

yum install nagios-plagins-all nagios-plagins-nrpe


Если нужна свежая версия, что так
Скачиваем пакет

wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz



Распаковываем tar.gz

tar -zxvf nrpe-2.15.tar.gz

cd nrpe-2.15



Компилируем тем же способом, что и ранее

./configure


make all


make install


make install-deamon

Идем на сервер nagios



Пробуем подключиться с сервера указывая после ключа -H IP адрес клиента

/usr/local/nagios/libexec/check_nrpe -H 10.11.27.44

Получаем connection refused и отправляемся производить конфигурацию плагина



Стартуем nrpe на клиенте и добавляем сервис в автозагрузку

systemctl start nrpe


systemctl enable nrpe



Открываем основной конфигурационный файл и в качестве значения в секции allowed_hosts указываем IP адрес сервера

mcedit /etc/nrpe/nrpe.cfg

allowed_hosts = 10.11.27.11



Возвращаемся на сервер

/usr/local/nagios/libexec/check_nrpe -H 10.11.27.44



Теперь наша попытка успешна и мы видим версию nagios


Снова открываем основной конфигурационный файл

mcedit /usr/local/nagios/etc/nagios.cfg

Снимаем знак комментария со строки с cfg_dir (cfg_dir=/usr/local/nagios/etc/servers)


Создаем директорию и переходим в нее

mkdir /usr/local/nagios/etc/servers

cd /usr/local/nagios/etc/servers



Определяем хосты, мониторинг которых будет производиться. У хостов могут быть любые названия, nagios увидит все файлы с расширением cfg



Прописываем параметры хоста, значения директив понятно из названия. Этих директив может быть значительно больше в случае необходимости тонких настроек мониторинга, здесь рассматриваем базовую рабочую конфигурацию



mcedit cenos11.cfg

define host {
use                                    linux-server
host_name                          cenos11
alias just                             nagios client
address                                10.11.27.44
max_check_attempts      5
check_period                      24×7
notification_interval       30
notification_period          24×7

}



Добавляем конфигурационный файл для сервиса, который мониторим. Сейчас ограничимся проверкой наличия пинга до хоста

mcedit service.cfg

{
use                                            generic-service
host_name                             cenos11
service_description            PING
check_command                   check_ping!100.0,20%!500.0,50%
}



Использована команда check_command, выдержка из мануала относительно нее говорит следующее:

check_ping -H -w ,% -c ,%
[-p packets] [-t timeout] [-4|-6]



Соответственно, при потере 20% пакетов мы будем получать предупреждение, при потере 50% — ALERT



Снова запускаем и убеждаемся в том, что ошибок нет

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg



Перезапускаем службу

systemctl restart nagios



Идем в веб-интерфейс и видим, что там отображается сервис на удаленном хосте, который мы мониторим (в конфигурации, приведенной на скриншоте, настроен мониторинг еще ряда ресурсов ). Настройка сервера мониторинга с базовым функционалом завершена.

nagios установка и настройка


Настройка ALERT-ов в nagios

Открываем основной конфигурационный файл и при необходимости раскомментируем строку cfg_file=/usr/local/nagios/etc/objects/contacts.cfg:


mcedit /usr/local/nagios/etc/nagios.cfg



В файле определяем контактный адрес электронной почты для отправки уведомлений:

mcedit /usr/local/nagios/etc/objects/contacts.cfg

define contact {
contact_name               nagiosadmin
use                                     generic-contact
alias                                  Nagios Admin
email                                 [email protected]

}

Перезапускаем службу

cyctemctl restart nagios



Также может использоваться дополнительное программное обеспечение с помощью которого могут отправляться, например, SMS-сообщения с ALERT-ами касающимися принципиально важных сервисов. Получен рабочий сервер Nagios, установка и настройка на этом завершены.



Для серверов можно устанавливать Nagios сервер и клиент на одной машине, однако намного проще использовать другой пакет — например, Monitorix.

Сказать спасибо