Как установить и настроить Nagios на CentOS 8
На этой странице
- Предпосылки
- Шаг 1. Настройка брандмауэра
- Шаг 2. Установите Apache и PHP
- Шаг 3. Установите Nagios
- Установить зависимости
- Загрузить Nagios
- Скомпилировать Nagios
- Создание пользователя и группы Nagios
- Установите двоичные файлы Nagios
- Создать внешний каталог команд
- Установите файлы конфигурации Nagios
- Установите файлы конфигурации Apache
- Создание служебного файла Systemd
- Включить HTTP-аутентификацию
- Веб-интерфейс Nagios
- Установите подключаемые модули Nagios
- Установить NRPE
- Проверить мониторы
- Шаг 8a. Установка и настройка SSL
Nagios — популярная и одна из самых мощных систем компьютерного мониторинга с открытым исходным кодом. Он отслеживает вашу ИТ-инфраструктуру и обеспечивает бесперебойную работу ваших сетей, серверов, приложений и процессов. Использование системы мониторинга позволяет выявлять проблемы до их возникновения и быстро развертывать исправления, что приводит к экономии средств и времени простоя.
В этом руководстве вы узнаете, как установить и настроить Nagios на сервере на базе CentOS 8. Мы также выполним некоторую базовую настройку и установим Nagios Remote Plugin Executor (NPRE), который позволит нам отслеживать удаленные хосты.
Предпосылки
- A server running CentOS 8
- A non-sudo user with root privileges.
- SELinux Disabled
- Another server running CentOS 8 that you want to monitor.
- Ensure that everything is updated.
$ sudo dnf update
Шаг 1. Настройте брандмауэр
Первым шагом является настройка брандмауэра. Сервер Fedora поставляется с брандмауэром 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 systemctl reload firewalld
Шаг 2 — Установите Apache и PHP
Для запуска Nagios вам понадобится Apache вместе с установленным PHP.
Установите и включите службу Apache.
$ sudo dnf install httpd $ sudo systemctl enable --now httpd
Для установки PHP мы будем использовать репозиторий Remi. Установите Remi Repo и включите PHP 7.4.
$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm $ sudo dnf module reset php $ sudo dnf module enable php:remi-7.4
Установите PHP и несколько стандартных модулей PHP.
$ sudo dnf install php php-gd php-curl
Включите 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
Вставьте следующий код в редактор.
<?php phpinfo();
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Откройте URL-адрес
http://
в своем браузере, и вы должны увидеть следующую страницу./info.php Шаг 3 — Установите Nagios
Большая часть этого руководства потребует от вас установки и работы на вашем основном сервере.
Установить зависимости
Для этого руководства потребуется, чтобы Nagios и его плагины были собраны из исходного кода. Поэтому вам нужно сначала установить несколько библиотек разработки.
$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip wget gettext autoconf net-snmp-utils epel-release postfix automake $ sudo dnf config-manager --enable powertools $ sudo dnf install perl-Net-SNMP
Скачать Нагиос
Перейдите в каталог
/usr/src
, где мы будем размещать загруженные исходные файлы Nagios.$ cd /usr/src
Загрузите последнюю версию Nagios со страницы Github. На момент руководства 4.4.6 является последней доступной версией. Измените команду, если вам нужна другая версия.
$ sudo wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
Извлеките tar-файл.
$ sudo tar zxf nagios-*.tar.gz
Перейдите в исходный каталог Nagios.
$ cd nagioscore-nagios-*/
Скомпилируйте Nagios
Следующим шагом будет компиляция Nagios из исходных файлов. Запустите скрипт
configure
, чтобы проверить наличие всех зависимостей.$ sudo ./configure
Вы должны получить аналогичный результат после успешного завершения скрипта.
*** Configuration summary for nagios 4.4.6 2020-04-28 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: /run/nagios.lock Check result directory: /usr/local/nagios/var/spool/checkresults Init directory: /lib/systemd/system Apache conf.d directory: /etc/httpd/conf.d Mail program: /sbin/sendmail Host OS: linux-gnu IOBroker Method: epoll Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs.
Запустите компиляцию.
$ 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 *** External command directory configured ***
Установите файлы конфигурации Nagios
Установите примеры файлов конфигурации.
$ sudo make install-config
Установите файлы конфигурации Apache
Выполните следующую команду, чтобы установить файлы конфигурации Apache.
$ sudo make install-webconf
Перезапустите веб-сервер, чтобы активировать конфигурацию.
$ sudo systemctl restart httpd
Создайте служебный файл Systemd
Выполните следующую команду, чтобы установить файл модуля systemd.
$ sudo make install-daemoninit
Включить HTTP-аутентификацию
Вы можете заблокировать веб-интерфейс Nagios с помощью HTTP-аутентификации. Для этого создайте пользователя-администратора с именем
nagiosadmin
.Выполните следующую команду, чтобы использовать
htpasswd
для создания пользователя. Вам будет предложено ввести пароль.$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin
Перезапустите сервер, чтобы конфигурация вступила в силу.
$ sudo systemctl restart httpd
Шаг 4 — Установите плагины Nagios
Установите предварительные условия, необходимые для подключаемых модулей Nagios.
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils epel-release postgresql-devel libdbi-devel openldap-devel mysql-devel mysql-libs bind-utils samba-client fping openssh-clients lm_sensors $ sudo dnf config-manager --enable powertools $ sudo dnf install -y perl-Net-SNMP
Вернитесь в каталог
/usr/src
.$ cd /usr/src
Загрузите последнюю версию Nagios со страницы Github. На момент руководства 2.3.3 является последней доступной версией. Измените команду, если вам нужна другая версия.
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz
Извлеките tar-файл.
$ sudo tar zxf nagios-plugins.tar.gz
Перейдите в каталог плагинов.
$ cd nagios-plugins-*
Запустите следующие команды, чтобы скомпилировать и установить плагины.
$ sudo ./configure $ sudo make $ sudo make install
Шаг 5 — Установите плагин check_nrpe
Перейдите в каталог
/usr/src
.$ cd /usr/src
Загрузите последнюю версию NPRE со страницы Github. На момент написания этого руководства последней доступной версией была 4.0.3. Измените следующую команду, если вам нужна другая версия.
$ sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
Распакуйте архив.
$ sudo tar zxf nrpe-*.tar.gz
Перейдите в каталог NPRE.
$ cd nrpe-4.0.3
Настройте и установите плагин.
$ 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://
в браузере. Вы должны увидеть приглашение для входа./nagios Введите учетные данные, которые вы создали во время метода аутентификации HTTP, и вы должны увидеть следующий экран.
Шаг 7 — Мониторинг хостов
Для мониторинга хоста необходимо установить на хост плагины NRPE Daemon и Nagios. Мы будем контролировать сервер на базе CentOS 8 с нашего сервера Nagios.
Войдите на свой хост.
$ ssh _server_ip
Установите плагины Nagios
Установите плагины Nagios, повторив шаг 4 ранее.
Установить NRPE
Установите необходимые компоненты для демона NRPE.
$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget
Перейдите в каталог
/usr/src
.$ cd /usr/src
Скачать NRPE.
$ sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
Распакуйте архив.
$ sudo tar zxf nrpe-*.tar.gz
Перейдите в каталог NPRE.
$ cd nrpe-4.0.3
Настройте и установите NPRE.
$ sudo ./configure --enable-command-args $ sudo make all
Создайте пользователя и группу.
$ sudo make install-groups-users
Установите бинарные файлы NPRE, демон NPRE и плагин 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).
Таким образом, вы можете указать, на каком уровне какой тип уведомления может отправлять команда. Мы не будем углубляться в подробное описание и функции каждой из команд, поскольку они выходят за рамки этого руководства.
# The following examples use hardcoded command arguments... # This is by far the most secure method of using 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 # The following examples allow user-supplied arguments and can # only be used if the NRPE daemon was compiled with support for # command arguments *AND* the dont_blame_nrpe directive in this # config file is set to '1'. This poses a potential security risk, so # make sure you read the SECURITY file before doing this. ### 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$
Раскомментируйте приведенные выше команды, удалив перед ними символ
#
. Вы можете раскомментировать столько команд, сколько вам нужно.Когда вы закончите, сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Разрешите порт 5666, который используется плагином NPRE.
$ sudo firewall-cmd --permanent --add-port=5666/tcp
Перезагрузите брандмауэр.
$ sudo systemctl reload firewalld
Запустите НПРЕ.
$ sudo systemctl start nrpe
Все команды отсюда будут выполняться на основном сервере Nagios, если не указано иное.
Проверьте, работает ли NRPE, выполнив следующую команду на главном сервере Nagios.
$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip
Вы должны увидеть следующий вывод.
NRPE v4.0.3
Для мониторинга хостов вам необходимо создать файлы конфигурации для каждого хоста, который вы хотите отслеживать. Затем эти хосты станут доступны через веб-интерфейс 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
для редактирования. Найдите следующий файл и раскомментируйте его, удалив перед ним#
.#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 client01 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/sda1 free space check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/sda1' }
Затем мы можем отслеживать службу HTTP, используя следующий блок кода.
define service { use generic-service host_name monitored_server_host_name service_description HTTP check_command check_http }
Отслеживайте SSH, используя следующий блок. Следующий блок проверяет сервер SSH и генерирует предупреждение, если сервер не отвечает в течение 5 секунд.
define service { use generic-service host_name nagiosclient 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' }
Проверьте корневой раздел и его использование на диске.
define service{ use generic-service host_name monitored_server_host_name service_description Root / Partition check_command check_nrpe!check_root }
Проверьте использование диска подкачки.
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%' }
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Перезапустите Нагиос.
$ sudo systemctl restart nagios
Проверить мониторы
Откройте панель управления Nagios и щелкните параметр «Хосты» на левой боковой панели. Вы должны увидеть только что настроенный хост вместе с локальным хостом на странице.
Нажмите на только что настроенный хост (nagiosclient) и, если все настроено правильно, вы должны увидеть его статус. Статус появится через минуту или около того.
Чтобы просмотреть службы или мониторы, которые мы настроили, нажмите «Просмотреть сведения о состоянии для этого хоста», и вы должны увидеть следующую страницу.
В нашем случае мы не настроили память подкачки, и, следовательно, мы получаем критический статус для службы, поскольку пространство подкачки равно 0. Это должно дать вам правильное представление о том, как работают ваши хосты.
Шаг 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 при появлении запроса.
Добавьте новый IP-адрес в брандмауэр.
$ sudo firewall-cmd --permanent --add-port=8080/tcp $ sudo systemctl reload firewalld
Перезапустите сервер Apache.
$ sudo systemctl restart httpd
Далее устанавливаем Nginx.
CentOS 8 по умолчанию поставляется с Nginx 1.14, но это старая версия. Мы также можем включить последнюю версию.
$ sudo dnf module enable nginx:1.20 $ sudo dnf install nginx
Включите сервер Nginx.
$ sudo systemctl enable nginx
Шаг 8a. Установите и настройте SSL
Перед настройкой Nginx мы установим и настроим SSL-сертификат для домена, который будем использовать с Nagios. В нашем случае мы будем использовать
http://nagios.example.com
.Чтобы установить SSL-сертификат с помощью Lets Encrypt, нам нужно загрузить инструмент Certbot. Certbot доступен из репозитория EPEL CentOS, который мы уже добавили ранее в этом руководстве.
$ sudo dnf install certbot python3-certbot-nginx
Остановите службу Nginx.
$ sudo systemctl stop nginx
Создайте SSL-сертификат.
$ sudo certbot certonly --standalone --preferred-challenges --agree-tos --email http -d nagios.example.com
Приведенная выше команда загрузит сертификат в каталог
/etc/letsencrypt/live/nagios.example.com
на вашем сервере.Создайте задание Cron для обновления SSL. Он будет запускаться каждый день для проверки сертификата и его обновления при необходимости. Для этого сначала создайте файл
/etc/cron.daily/certbot-renew
и откройте его для редактирования.$ sudo nano /etc/cron.daily/certbot-renew
Вставьте следующий код.
#!/bin/sh certbot renew --cert-name nagios.example.com --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Измените права доступа к файлу задачи, чтобы сделать его исполняемым.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Создайте групповой сертификат Диффи-Хеллмана.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Прежде чем настраивать Nginx, мы должны внести еще одно изменение. По умолчанию Apache обслуживает Nagios через
http://
. Теперь мы можем настроить прокси напрямую через Nagios, но он будет обслуживаться через:8080/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
Добавьте следующую строку в начало файла.
<VirtualHost *:1080>
Добавьте следующую строку внизу файла.
</VirtualHost>
Когда вы закончите, сохраните файл, нажав 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 работает правильно. Также убедитесь, что данные Hosts принимаются.:1080 Как только все заработает, мы можем приступить к созданию файла конфигурации для 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 X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; 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 start nginx
Запустите домен
https://nagios.example.com
в своем браузере, и вы должны увидеть домашнюю страницу Nagios.Заключение
Вы установили и настроили Nagios на сервере на базе CentOS 8 для мониторинга нескольких служб, таких как загрузка, использование диска/подкачки, пользователи, общие процессы, HTTP и SSH. На этом наш урок заканчивается. Если вы хотите узнать больше, вам следует ознакомиться с официальной документацией Nagios, в которой подробно описывается мониторинг и различные команды. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.