Мониторинг сервера CentOS 7 при помощи Nagios 4

Данное руководство поможет установить популярную открытую систему мониторинга Nagios 4 на сервер CentOS 7 или RHEL 7, а также выполнить базовую настройку мониторинга ресурсов хоста. Кроме того, в руководстве показано, как настроить Nagios Remote Plugin Executor (NRPE) в качестве агента на удалённых хостах для мониторинга их ресурсов.

Система Nagios позволяет отслеживать ресурсы сервера и работу основных сервисов. В целом системы мониторинга являются важным инструментом для любой среды производства.

Примечание: Аналогичное руководство для Ubuntu можно найти по этой ссылке.

Требования

  • Предварительно настроенный сервер CentOS 7.
  • Права суперпользователя (подробнее – здесь).
  • Заранее установленный стек LAMP (инструкции по установке можно найти здесь).
  • Частная сеть; если ваш сервер не поддерживает частную сеть, просто замените ссылки на внутренний IP-адрес внешним IP-адресом.

Установка Nagios 4

Установка зависимостей

Чтобы собрать Nagios Core из исходного кода, нужно установить несколько библиотек для разработки.

sudo yum install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip

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

Затем нужно создать пользователя и группу для запуска процесса Nagios; в данном руководстве пользователь называется nagios, а группа nagcmd. Создайте их и добавьте пользователя в группу.

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios

Установка Nagios Core

Загрузите последний стабильный релиз Nagios Core. Откройте загрузочную страницу сайта, кликните Skip to download и загрузите ссылку на последний стабильный релиз.

Примечание: В руководстве используется версия Nagios 4.1.1.

Загрузите пакет в домашний каталог:

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

Распакуйте архив:

tar xvf nagios-*.tar.gz

Откройте полученный каталог:

cd nagios-*

Прежде чем приступить к сборке Nagios, нужно настроить систему при помощи команды:

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

Скомпилируйте Nagios:

make all

Затем установите Nagios, сценарии инициализации и образцы конфигурационных файлов:

sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo make install-webconf

Чтобы иметь возможность запускать внешние команды через веб-интерфейс Nagios, нужно добавить пользователя apacheв группу nagcmd:

sudo usermod -G nagcmd apache

Установка плагинов Nagios

Последний релиз Nagios Plugins можно найти по этой ссылке. Скопируйте ссылку на последний стабильный релиз и загрузите пакет в домашний каталог.

Примечание: В руководстве используется версия Nagios Plugins 2.1.1.

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Распакуйте архив Nagios Plugins.

tar xvf nagios-plugins-*.tar.gz

Откройте полученный каталог:

cd nagios-plugins-*

Запустите настройку Nagios Plugins перед сборкой пакетов.

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

Скомпилируйте Nagios Plugins:

make

Установите пакет при помощи команды:

sudo make install

Установка NRPE

Откройте загрузочную страницу сайта, найдите последний стабильный релиз NRPE и загрузите его в домашний каталог.

Примечание: В руководстве используется NRPE 2.15.

cd ~
curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Распакуйте архив NRPE:

tar xvf nrpe-*.tar.gz

Перейдите в полученный каталог:

cd nrpe-*

Чтобы настроить NRPE, запустите команду:

./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

После этого соберите и установите NRPE и сценарий xinetd:

make all
sudo make install
sudo make install-xinetd
sudo make install-daemon-config

Откройте скрипт запуска xinetd в текстовом редакторе:

sudo vi /etc/xinetd.d/nrpe

В строку only_from добавьте внутренний IP-адрес сервера Nagios:

only_from = 127.0.0.1 10.132.224.168

Примечание: Укажите свой правильный IP-адрес.

Сохраните и закройте файл. Теперь взаимодействовать с NRPE сможет только сервер Nagios.

Перезапустите xinetd:

sudo service xinetd restart

Установка Nagios 4 успешно завершена. Теперь нужно настроить систему.

Настройка Nagios 4

Откройте главный конфигурационный файл Nagios в текстовом редакторе:

sudo vi /usr/local/nagios/etc/nagios.cfg

Найдите и раскомментируйте следующую строку:

#cfg_dir=/usr/local/nagios/etc/servers

Сохраните и закройте файл.

Создайте каталог для хранения конфигурационных файлов отслеживаемых серверов.

sudo mkdir /usr/local/nagios/etc/servers

Откройте конфигурационный файл contacts в текстовом редакторе:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

Найдите директиву email и укажите в ней свой адрес электронной почты.

email                           nagios@localhost        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

Сохраните и закройте файл.

Настройка команды check_nrpe

Добавьте в настройки Nagios новую команду:

sudo vi /usr/local/nagios/etc/objects/commands.cfg

Добавьте в конец файла следующий код:

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Сохраните и закройте файл. Теперь вы сможете использовать команду check_nrpe в определении серверов Nagios.

Настройка Apache

Используйте htpasswd, чтобы создать пользователя по имени nagiosadmin для доступа к веб-интерфейсу Nagios.

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

Введите пароль. Запомните эти учётные данные, поскольку они пригодятся для работы с веб-интерфейсом Nagios.

Примечание: Если назвать этого пользователя не nagiosadmin, то нужно будет отредактировать файл  /usr/local/nagios/etc/cgi.cfg и во всех ссылках на nagiosadmin указать другое имя пользователя.

Теперь система Nagios готова к запуску. Не забудьте перезапустить Apache:

sudo systemctl start nagios.service
sudo systemctl restart httpd.service

Чтобы настроить автозапуск Nagios, введите:

sudo chkconfig nagios on

Ограничение доступа по IP-адресу (опционально)

Чтобы разрешить доступ только определённым IP-адресам, отредактируйте конфигурацию Apache:

sudo vi /etc/httpd/conf.d/nagios.conf

Найдите и закомментируйте следующие строки:

Order allow,deny
Allow from all

Затем раскомментируйте следующие строки и добавьте IP-адреса или диапазоны IP-адресов (через пробел), которые будут иметь доступ к серверу, в директиву Allow from:

#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1

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

Сохраните и закройте файл.

Запустите Nagios и перезапустите Apache, чтобы обновить настройки:

sudo systemctl restart nagios.service
sudo systemctl restart httpd.service

Веб-интерфейс Nagios

Откройте браузер и перейдите к серверу Nagios по этой ссылке:

http://nagios_server_public_ip/nagios

Примечание: Укажите в ссылке свой IP-адрес.

Веб-сервер Apache использует htpasswd, потому нужно ввести учётные данные пользователя nagiosadmin.

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

На данный момент Nagios мониторит только localhost.

Мониторинг хоста CentOS 7 при помощи NRPE

Данный раздел покажет, как добавить в настройки мониторинга Nagios новый сервер.

Примечание: Если вы хотите добавить несколько серверов CentOS или RHEL, повторите эти инструкции на каждом из них.

Войдите на сервер, который нужно добавить в список отслеживаемых, и установите репозиторий EPEL:

sudo yum install epel-release

Затем установите Nagios Plugins и NRPE.

sudo yum install nrpe nagios-plugins-all

Откройте конфигурационный файл NRPE в текстовом редакторе:

sudo vi /etc/nagios/nrpe.cfg

Найдите директиву allowed_hosts и добавьте в конец внутренний IP-адрес сервера Nagios (через запятую).

allowed_hosts=127.0.0.1,10.132.224.168

Сохраните и закройте файл. Теперь NRPE будет принимать запросы от сервера Nagios через внутренний IP-адрес.

Перезапустите NRPE:

sudo systemctl start nrpe.service
sudo systemctl enable nrpe.service

После этого нужно добавить этот хост в настройки сервера Nagios.

Добавление хоста в настройки Nagios

Перейдите на сервер Nagios и создайте новый конфигурационный файл для хоста в /usr/local/nagios/etc/servers/.

sudo vi /usr/local/nagios/etc/servers/yourhost.cfg

Примечание: Вместо yourhost укажите имя своего хоста.

Добавьте в файл следующий код, заменив значение host_name именем удалённого хоста (в данном примере это web-1), значение alias – описанием хоста, а address – внутренним IP-адресом удалённого хоста.

define host {
use                             linux-server
host_name                       yourhost
alias                           My first Apache server
address                         10.132.234.52
max_check_attempts              5
check_period                    24x7
notification_interval           30
notification_period             24x7
}

Теперь Nagios будет мониторить данный сервер. Однако система будет отслеживать только состояние удалённого хоста (включен он или отключен). Если этого достаточно, сохраните и закройте файл. Если вы хотите мониторить отдельные сервисы на удалённом хосте, не закрывайте файл.

Ниже приведён список сервисов и настройки их отслеживания. Просто выберите сервис, который вы хотите отслеживать, и добавьте в файл предложенный блок настроек. Имейте в виду: значение команды check_command определяет, что именно будет отслеживаться.

Ping:

define service {
use                             generic-service
host_name                       yourhost
service_description             PING
check_command                   check_ping!100.0,20%!500.0,60%
}

SSH (notifications_enabled со значением 0 отключает уведомления):

define service {
use                             generic-service
host_name                       yourhost
service_description             SSH
check_command                   check_ssh
notifications_enabled           0
}

Директива use generic-service просто наследует значения шаблона generic-service, установленного по умолчанию.

Сохраните и закройте файл. Перезапустите Nagios, чтобы обновить настройки:

sudo systemctl reload nagios.service

После настройки откройте веб-интерфейс и проверьте страницу Services; теперь она должна содержать список только что добавленных удалённых хостов.

Заключение

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

Tags: , , , , , ,

1 комментарий

Добавить комментарий