Мониторинг. · 18 min read · Nov 09, 2025
Как установить и настроить Nagios на Rocky Linux 9

Nagios — это популярная и одна из самых мощных систем мониторинга с открытым исходным кодом. Она контролирует вашу ИТ-инфраструктуру и обеспечивает бесперебойную работу ваших сетей, серверов, приложений и процессов. С помощью системы мониторинга вы можете обнаруживать проблемы до их возникновения и быстро их устранять, чтобы сэкономить средства и время простоя.
Этот учебник научит вас, как установить и настроить Nagios на сервере Rocky Linux 9. Мы также сделаем некоторые базовые настройки и установим Nagios Remote Plugin Executor (NPRE), который позволяет нам мониторить удаленные хосты.
Предварительные требования
- Сервер с установленным Rocky Linux 9.
- Пользователь без прав sudo с правами root.
- SELinux отключен. Для этого учебника, даже если вы оставите SELinux включенным, он будет работать без каких-либо проблем. Но в зависимости от используемых вами мониторов Nagios, вам либо нужно будет настроить SELinux, либо лучше оставить его отключенным.
- Другой сервер с установленным Rocky Linux 9, который вы хотите мониторить.
- Убедитесь, что все обновлено.
$ sudo dnf update
Шаг 1 - Настройка брандмауэра
Первый шаг — настроить брандмауэр. Сервер Rocky Linux поставляется с брандмауэром Firewalld.
Проверьте, работает ли брандмауэр.
$ sudo firewall-cmd --state
Вы должны получить следующий вывод.
running
Проверьте текущие разрешенные службы/порты.
$ sudo firewall-cmd --permanent --list-services
Он должен показать следующий вывод.
dhcpv6-client mdns ssh
Разрешите порты HTTP и HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Проверьте статус брандмауэра еще раз.
$ sudo firewall-cmd --permanent --list-services
Вы должны увидеть аналогичный вывод.
dhcpv6-client http https mdns ssh
Перезагрузите брандмауэр.
$ sudo firewall-cmd --reload
Шаг 2 - Установка Apache и PHP
Чтобы запустить Nagios, вам потребуется установить Apache вместе с PHP.
Установите и включите службу Apache.
$ sudo dnf install httpd
$ sudo systemctl enable httpd
Чтобы установить PHP, мы будем использовать репозиторий Remi. Установите Remi Repo и включите PHP 8.1.
$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1 -y
Установите PHP и несколько общих модулей PHP.
$ sudo dnf install -y php php-gd php-curl
Проверьте установку PHP.
$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies
Включите PHP и запустите службу.
$ sudo systemctl enable --now php-fpm
Перезапустите службу Apache, чтобы изменения вступили в силу.
$ sudo systemctl restart httpd
Вы можете проверить установку Apache и PHP, создав файл info.php в каталоге /var/www/html, который был создан установщиком Apache.
$ sudo nano /var/www/html/info.php
Вставьте следующий код в редактор.
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Откройте URL http:// в вашем браузере, и вы должны увидеть следующую страницу.

Шаг 3 - Установка Nagios
Большая часть этого учебника потребует от вас установки и работы на основном сервере.
Установка зависимостей
Этот учебник потребует, чтобы Nagios и его плагины были собраны из исходного кода. Поэтому сначала вам нужно установить несколько библиотек для разработки. Нам также нужен репозиторий EPEL, но он был автоматически установлен с репозиторием Remi на предыдущем шаге, поэтому мы можем пропустить его здесь.
$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip wget gettext autoconf net-snmp-utils postfix automake perl-Net-SNMP
Загрузка Nagios
Скачайте последнюю версию со страницы релизов Nagios на GitHub. На момент написания учебника 4.4.10 — это последняя доступная версия. Измените команду, если вы хотите другую версию.
$ cd ~
$ sudo wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.10/nagios-4.4.10.tar.gz
Извлеките tar-файл.
$ sudo tar zxf nagios.tar.gz
Переместите извлеченный каталог в каталог /usr/src.
sudo mv nagios-4.4.10 /usr/src/nagios
Перейдите в каталог /usr/src/nagios.
$ cd /usr/src/nagios
Компиляция Nagios
Следующий шаг — скомпилировать Nagios из его исходных файлов. Запустите скрипт configure, чтобы выполнить проверки и убедиться, что все зависимости присутствуют.
$ sudo ./configure
Вы должны получить аналогичный вывод после успешного завершения скрипта.
* Резюме конфигурации для nagios 4.4.10 2023-01-17 *:
Общие параметры:
-------------------------
Исполняемый файл Nagios: nagios
Пользователь/группа Nagios: nagios,nagios
Пользователь/группа команд: nagios,nagios
Брокер событий: да
Установить ${prefix}: /usr/local/nagios
Установить ${includedir}: /usr/local/nagios/include/nagios
Файл блокировки: /run/nagios.lock
Директория результатов проверки: /usr/local/nagios/var/spool/checkresults
Директория инициализации: /lib/systemd/system
Директория конфигурации Apache: /etc/httpd/conf.d
Почтовая программа: /usr/sbin/sendmail
Операционная система: linux-gnu
Метод IOBroker: epoll
Веб-интерфейс:
------------------------
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgi-bin/
Traceroute (используется WAP):
Просмотрите параметры выше на точность. Если они выглядят нормально,
введите 'make all', чтобы скомпилировать основную программу и CGI.
Начните компиляцию.
$ sudo make all
Создание пользователя и группы Nagios
Создайте нового пользователя и группу, которые будут запускать процесс Nagios.
$ sudo make install-groups-users
Вы должны увидеть следующий вывод.
groupadd -r nagios
useradd -g nagios nagios
Добавьте пользователя apache в группу nagios.
$ sudo usermod -a -G nagios apache
Установка бинарных файлов Nagios
Запустите следующую команду, чтобы установить бинарные файлы Nagios, CGI и HTML-файлы.
$ sudo make install
Создание каталога внешних команд
Nagios может обрабатывать команды от внешних приложений, и для этого ему нужен настроенный каталог.
$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
* Каталог внешних команд настроен *
Установка файлов конфигурации Nagios
Установите образцы файлов конфигурации.
$ sudo make install-config
Установка файлов конфигурации Apache
Запустите следующую команду, чтобы установить файлы конфигурации Apache.
$ sudo make install-webconf
Перезапустите веб-сервер, чтобы активировать конфигурацию.
$ sudo systemctl restart httpd
Создание файла службы Systemd
Запустите следующую команду, чтобы установить файл единицы systemd.
$ sudo make install-daemoninit
Включение HTTP-аутентификации
Вы можете заблокировать веб-интерфейс Nagios с помощью HTTP-аутентификации. Запустите следующую команду, чтобы использовать htpasswd для создания пользователя. Вам будет предложено ввести пароль.
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin
Имя пользователя по умолчанию — nagiosadmin. Вы можете использовать другое имя пользователя, заменив все вхождения nagiosadmin в файле /usr/local/nagios/etc/cgi.cfg на предпочитаемое имя пользователя. Или вы можете добавить имя пользователя, используя запятую, как показано ниже.
authorized_for_system_information=nagiosadmin, username1
authorized_for_configuration_information=nagiosadmin, username1
authorized_for_system_commands=nagiosadmin, username1
authorized_for_all_services=nagiosadmin, username1
authorized_for_all_hosts=nagiosadmin, username1
authorized_for_all_service_commands=nagiosadmin, username1
authorized_for_all_host_commands=nagiosadmin, username1
Вы можете добавлять пользователей с доступом только для чтения, включив следующую конфигурацию в файле, убрав хеш (#) перед ней. Затем запустите htpasswd с именем пользователя.
authorized_for_read_only=username2
Перезапустите сервер, чтобы изменения вступили в силу.
$ sudo systemctl restart httpd
Шаг 4 - Установка плагинов Nagios
Установите предварительные требования, необходимые для плагинов Nagios.
$ sudo dnf install epel-release
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils postgresql-devel openldap-devel bind-utils samba-client fping openssh-clients lm_sensors perl-Net-SNMP
Скачайте последнюю версию со страницы плагинов Nagios на GitHub. На момент написания учебника 2.4.3 — это последняя доступная версия. Измените команду, если вы хотите другую версию.
$ cd ~
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.3/nagios-plugins-2.4.3.tar.gz
Извлеките tar-файл.
$ sudo tar zxf nagios-plugins.tar.gz
Переместите извлеченный каталог в каталог /usr/src.
$ sudo mv nagios-plugins-2.4.3 /usr/src/nagios-plugins
Вернитесь в каталог /usr/src/nagios-plugins.
$ cd /usr/src/nagios-plugins
Запустите следующие команды для компиляции и установки плагинов.
$ sudo ./configure
$ sudo make
$ sudo make install
Шаг 5 - Установка плагина check_nrpe
Скачайте последнюю версию со страницы релизов NRPE на GitHub. На момент написания этого учебника последняя доступная версия — 4.1.0. Измените следующую команду, если вы хотите другую версию.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Извлеките архив.
$ tar zxf nrpe-*.tar.gz
Переместите извлеченный каталог в каталог /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Перейдите в каталог /usr/src/nrpe.
$ cd /usr/src/nrpe
Настройте и установите плагин.
$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin
Это поместит плагин check_nrpe в каталог /usr/local/nagios/libexec/.
Шаг 6 - Запуск Nagios
С установленными Nagios и плагинами пришло время запустить службу Nagios.
$ sudo systemctl start nagios
Проверьте статус службы, чтобы увидеть, работает ли она правильно.
$ sudo systemctl status nagios
Веб-интерфейс Nagios
Откройте URL http:// в вашем браузере. Вы должны увидеть запрос на вход.
Введите учетные данные, которые вы создали во время метода HTTP-аутентификации, и вы должны увидеть следующий экран.

Шаг 7 - Мониторинг хостов
Чтобы мониторить хост, вам нужно установить демон NRPE и плагины Nagios на хост. Мы будем мониторить сервер Rocky Linux 9 с нашего сервера Nagios.
Войдите на ваш хост.
$ ssh user@monitored_server_ip
Установка плагинов Nagios
Установите плагины Nagios, повторив шаг 4 из предыдущего.
Установка NRPE
Установите предварительные требования, необходимые для демона NRPE.
$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget
Скачайте NRPE.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Извлеките архив.
$ tar zxf nrpe-*.tar.gz
Переместите извлеченный каталог в каталог /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Перейдите в каталог NRPE.
$ cd /usr/src/nrpe
Настройте и установите NRPE.
$ sudo ./configure --enable-command-args
$ sudo make all
Создайте пользователя и группу.
$ sudo make install-groups-users
Установите бинарные файлы NRPE, демон NRPE и плагин check_npre.
$ sudo make install
Установите файлы конфигурации.
$ sudo make install-config
Обновите файл служб. Файл /etc/services используется для перевода имен служб в номера портов.
$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Nagios services' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"
Установите демон службы NPRE.
$ sudo make install-init
$ sudo systemctl enable nrpe
Вам нужно обновить файл конфигурации NPRE, расположенный по адресу /usr/local/nagios/etc/nrpe.cfg.
Откройте файл для редактирования.
$ sudo nano /usr/local/nagios/etc/nrpe.cfg
По умолчанию NPRE слушает запросы только от локального хоста (127.0.0.1). Вам нужно добавить IP-адрес вашего сервера Nagios в файл.
allowed_hosts=127.0.0.1,10.25.5.2
Следующий параметр определяет, будет ли демон NPRE разрешать клиентам указывать аргументы команд. Разрешите параметр, введя значение 1, что включает расширенные конфигурации NPRE.
dont_blame_nrpe=1
Далее, прокручивая вниз, вы наткнетесь на список команд NRPE с их определениями. Все они закомментированы. Вам нужно раскомментировать их, чтобы Nagios мог их использовать.
Каждую команду можно передавать аргументы. Некоторые команды имеют жестко закодированные аргументы перед ними, в то время как некоторые могут принимать аргументы от пользователя. Каждая команда может иметь следующие параметры уведомления.
- W означает предупреждающие состояния служб
- C означает критические состояния служб
- R означает уведомление о восстановлении службы (состояния OK)
Таким образом, вы можете указать, на каком уровне какой тип уведомления команда может отправлять. Мы не будем углубляться в подробное описание и функции каждой из команд, так как они выходят за рамки этого учебника.
# Следующие примеры используют жестко закодированные аргументы команд...
# Это, безусловно, самый безопасный способ использования NRPE
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
# Следующие примеры позволяют аргументы, предоставленные пользователем, и могут
# использоваться только если демон NRPE был скомпилирован с поддержкой
# аргументов команд *И* директива dont_blame_nrpe в этом
# конфигурационном файле установлена в '1'. Это представляет потенциальный риск безопасности, поэтому
# убедитесь, что вы прочитали файл SECURITY перед тем, как делать это.
### MISC SYSTEM METRICS ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$
### GENERIC SERVICES ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$
### SYSTEM UPDATES ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
#command[check_apt]=/usr/local/nagios/libexec/check_apt
### PROCESSES ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$
### OPEN FILES ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$
### NETWORK CONNECTIONS ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$
Раскомментируйте вышеуказанные команды, убрав символ # перед ними. Вы можете раскомментировать столько команд, сколько вам нужно.
Добавьте следующую команду для проверки свободного места на корневом диске.
command[check_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
Когда закончите, сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Разрешите порт 5666, который используется плагином NPRE.
$ sudo firewall-cmd --permanent --add-port=5666/tcp
Перезагрузите брандмауэр.
$ sudo firewall-cmd --reload
Запустите NPRE.
$ sudo systemctl start nrpe
Все команды с этого момента будут выполняться на основном сервере Nagios, если не указано иное.
Проверьте, работает ли NRPE, запустив следующую команду на вашем основном сервере Nagios.
$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip
Вы должны увидеть следующий вывод.
NRPE v4.1.0
Чтобы мониторить хосты, вам нужно создать файлы конфигурации для каждого хоста, который вы хотите мониторить. Эти хосты затем станут доступными через веб-интерфейс Nagios.
Создайте каталог для хранения файлов конфигурации и дайте ему соответствующие разрешения.
$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers
Откройте файл конфигурации Nagios /usr/local/nagios/etc/nagios.cfg для редактирования.
$ sudo nano /usr/local/nagios/etc/nagios.cfg
Найдите следующий файл и раскомментируйте, убрав # перед ним.
cfg_dir=/usr/local/nagios/etc/servers
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Следующий шаг — добавить команду check_nrpe в файл /usr/local/nagios/etc/objects/commands.cfg, чтобы она могла использоваться для мониторинга хостов.
Откройте файл /usr/local/nagios/etc/objects/commands.cfg для редактирования.
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
Вставьте следующий код в конец файла.
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Создайте новый файл конфигурации для удаленного хоста в каталоге /usr/local/nagios/etc/servers/.
$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg
Добавьте следующий код, заменив значение host_name на имя вашего удаленного хоста, значение alias на описание вашего хоста и значение address на IP-адрес вашего удаленного хоста.
define host {
use linux-server
host_name monitored_server_host_name
alias My client server
address monitored_server_private_ip
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
С этой конфигурацией Nagios сообщит вам, когда хост будет доступен или недоступен. Вам нужно будет добавить больше служб для мониторинга дополнительных вещей.
Добавьте следующий блок для проверки статистики соединений для хоста.
define service {
use generic-service
host_name monitored_server_host_name
service_description PING
check_command check_ping!200.0,20%!400.0,90%
}
Добавьте следующий блок для мониторинга средней нагрузки вашего сервера.
define service {
use generic-service
host_name monitored_server_host_name
service_description Load average
check_command check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}
Директива use generic-service говорит Nagios наследовать от шаблона с именем generic-service, предопределенного Nagios.
Далее добавьте блок для мониторинга использования диска. Измените команду с соответствующими метками диска.
define service {
use generic-service
host_name monitored_server_host_name
service_description /dev/vda1 free space
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/vda1'
}
Мониторьте SSH, используя следующий блок. Следующий блок проверит сервер SSH и сгенерирует предупреждение, если сервер не ответит в течение 5 секунд.
define service {
use generic-service
host_name monitored_server_host_name
service_description SSH Version Check
check_command check_ssh!-t 5
}
Давайте проверим общее количество запущенных процессов.
define service{
use generic-service
host_name monitored_server_host_name
service_description Total Processes
check_command check_nrpe!check_total_procs
}
Проверьте текущих пользователей, вошедших в систему.
define service{
use generic-service
host_name monitored_server_host_name
service_description Current Users
check_command check_nrpe!check_users!-a '-w 5 -c 10'
}
Проверьте использование диска SWAP.
define service{
use generic-service
host_name monitored_server_host_name
service_description SWAP Usage
check_command check_nrpe!check_swap!-a '-w 40% -c 20%'
}
Проверьте корневой раздел и его использование диска.
define service{
use generic-service
host_name nagiosclient
service_description Root / Partition
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /'
}
Проверьте, установлен ли HTTP-сервер.
define service {
use generic-service
host_name nagiosclient
service_description HTTP
check_command check_http
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Перезапустите Nagios.
$ sudo systemctl restart nagios
Проверьте мониторы
Откройте панель управления Nagios и нажмите на опцию Хосты в левой боковой панели. Вы должны увидеть новый настроенный хост вместе с localhost на странице.

Нажмите на новый настроенный хост (nagiosclient), и если все настроено правильно, вы должны увидеть его статус. Это займет минуту или около того, чтобы статус появился.

Чтобы увидеть службы или мониторы, которые мы настроили, нажмите на опцию Просмотреть детали статуса для этого хоста, и вы должны увидеть следующую страницу.

Это должно дать вам четкое представление о том, как работают ваши хосты.
Шаг 8 - Установка Nginx
Вы можете либо запустить Nagios напрямую через IP-адрес сервера, либо разместить его на своем доменном имени. Nagios уже поставляется с файлами конфигурации Apache, но мы будем использовать Nginx для его запуска. Мы будем использовать Nginx в качестве обратного прокси перед веб-сервером Apache.
Apache уже работает на порту 80. Поэтому сначала нам нужно изменить это. А затем мы можем запустить Nginx в качестве прокси.
Откройте файл /etc/httpd/conf/httpd.conf для редактирования.
$ sudo nano /etc/httpd/conf/httpd.conf
Измените строку Listen 80 на Listen 8080. Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено. Поскольку мы будем использовать доменное имя для доступа к Nagios, нам не нужно открывать порт 8080 для публичного доступа.
Перезапустите сервер Apache.
$ sudo systemctl restart httpd
Затем установите Nginx.
Rocky Linux 9 поставляется со старой версией Nginx. Вам нужно загрузить официальный репозиторий Nginx, чтобы установить последнюю версию.
Создайте и откройте файл /etc/yum.repos.d/nginx.repo для создания официального репозитория Nginx.
$ sudo nano /etc/yum.repos.d/nginx.repo
Вставьте следующий код в него.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Установите сервер Nginx.
$ sudo dnf install nginx
Проверьте установку.
$ nginx -v
nginx version: nginx/1.22.1
Включите и запустите сервер Nginx.
$ sudo systemctl enable nginx --now
Шаг 9 - Установка и настройка SSL
Перед настройкой Nginx мы установим и настроим SSL-сертификат для домена, который мы собираемся использовать с Nagios. В нашем случае мы будем использовать http://nagios.example.com.
Мы будем использовать установщик пакетов Snapd для этого. Поскольку Rocky Linux не поставляется с ним, установите установщик Snapd. Он требует репозиторий EPEL для работы, который мы уже установили ранее, поэтому мы можем пропустить это.
Установите Snapd.
$ sudo dnf install -y snapd
Включите и запустите службу Snap.
$ sudo systemctl enable snapd --now
Установите пакет Snap core и убедитесь, что ваша версия Snapd обновлена.
$ sudo snap install core && sudo snap refresh core
Создайте необходимые ссылки для работы Snapd.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Выполните следующую команду, чтобы установить Certbot.
$ sudo snap install --classic certbot
Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку в каталоге /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Проверьте установку.
$ certbot --version
certbot 2.3.0
Выполните следующую команду, чтобы сгенерировать SSL-сертификат.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d nagios.example.com
Вышеуказанная команда загрузит сертификат в каталог /etc/letsencrypt/live/nagios.example.com на вашем сервере.
Сгенерируйте сертификат группы Диффи-Хеллмана.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Сделайте пробный запуск процесса, чтобы проверить, работает ли автоматическое обновление SSL.
$ sudo certbot renew --dry-run
Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.
Шаг 10 - Настройка Nginx
Перед настройкой Nginx есть еще одно изменение, которое мы должны сделать. По умолчанию Apache обслуживает Nagios по адресу http://. Теперь мы можем настроить прокси напрямую с Nagios, но он будет обслуживаться по адресу https://nagios.example.com/nagios. Мы можем сделать перенаправление на Nginx на корневой URL, что усложняет дело. По этой причине мы внесем изменения в Apache и Nagios напрямую.
Сначала откройте файл /usr/local/nagios/etc/cgi.cfg для редактирования.
$ sudo nano /usr/local/nagios/etc/cgi.cfg
Измените url_html_path=/nagios на url_html_path=/.
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Затем откройте /etc/httpd/conf.d/nagios.conf для редактирования.
$ sudo nano /etc/httpd/conf.d/nagios.conf
Измените ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" на ScriptAlias /cgi-bin "/usr/local/nagios/sbin".
Закомментируйте строку Alias /nagios "/usr/local/nagios/share", изменив ее на следующую.
#Alias /nagios "/usr/local/nagios/share"
Добавьте следующую строку ниже.
DocumentRoot /usr/local/nagios/share
Добавьте следующую строку в начало файла.
Добавьте следующую строку в конец файла.
Когда закончите, сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
И, наконец, откройте файл /usr/local/nagios/share/config.inc.php для редактирования.
$ sudo nano /usr/local/nagios/share/config.inc.php
Измените $cfg['cgi_base_url']='/nagios/cgi-bin'; на $cfg['cgi_base_url']='/cgi-bin';.
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Перезапустите как Apache, так и Nagios.
$ sudo systemctl restart httpd
$ sudo systemctl restart nagios
Чтобы подтвердить, что все работает правильно, откройте URL http:// в вашем браузере, и вы должны увидеть, что Nagios работает правильно. Также убедитесь, что данные хостов поступают.
Когда все будет работать, мы можем перейти к созданию нашего конфигурационного файла для Nginx.
Создайте файл конфигурации для Nagios в каталоге /etc/nginx/conf.d.
$ sudo nano /etc/nginx/conf.d/nagios.conf
Вставьте следующий код в него.
server {
listen 80; listen [::]:80;
server_name nagios.example.com;
return 301 https://$host$request_uri;
}
server {
server_name nagios.example.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
access_log /var/log/nginx/nagios.access.log;
error_log /var/log/nginx/nagios.error.log;
ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Когда закончите, сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте файл конфигурации.
$ sudo nginx -t
Если вы получите следующую ошибку, вам нужно будет отредактировать файл /etc/nginx/nginx.conf, чтобы добавить/откорректировать размер переменной server_names_hash_bucket_size.
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.conf
Добавьте следующую строку перед
server_names_hash_bucket_size 64;
Когда закончите, сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено. Снова проверьте Nginx.
Если вы не видите проблем, перезапустите сервер Nginx.
$ sudo systemctl restart nginx
Настройка SELinux
Если вы оставили SELinux включенным, выполните следующую команду, чтобы разрешить Nginx подключаться к сети.
$ sudo setsebool -P httpd_can_network_connect on
Запустите домен https://nagios.example.com в вашем браузере, и вы должны увидеть главную страницу Nagios.
Заключение
Вы установили и настроили Nagios на сервере Rocky Linux 9 для мониторинга нескольких служб, таких как нагрузка, использование диска/обмена, пользователи, общее количество процессов, HTTP и SSH. Это завершает наш учебник. Чтобы узнать больше, вы должны ознакомиться с официальной документацией Nagios, охватывающей мониторинг и различные команды в большом объеме. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.