Данное руководство поможет установить популярную открытую систему мониторинга 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 может сообщить о том, что использование диска достигло критической отметки или что веб-сайт не работает. Это позволяет вовремя устранить подобные проблемы.