Установка Nagios Core на Ubuntu 26.04 LTS

Nagios Core занимается мониторингом инфраструктуры ещё с тех пор, когда Kubernetes даже не существовал. Его панель управления не самая эффектная, но он улавливает сбои, которые упускают более продвинутые инструменты, поскольку проверяет систему «снаружи внутрь». В то время как более новые стеки мониторинга, такие как Prometheus с Grafana, сосредоточены на метриках и данных временных рядов, Nagios превосходно справляется с бинарными проверками типа «прошел/не прошел»: работает ли этот сервис, заполнен ли диск, запущен ли процесс.

Оригинальный контент с computingforgeeks.com — пост № 166139

В этом руководстве подробно описаны этапы компиляции Nagios Core 4.5.12 из исходного кода в Ubuntu 26.04 LTS, установки плагинов, настройки веб-интерфейса, настройки мониторинга localhost и добавления удалённых хостов. Каждая команда была протестирована на свежей минимальной установке Ubuntu 26.04 с Apache 2.4.66 и PHP 8.5.

Последнее обновление: Апрель 2026 г. | Ubuntu 26.04 LTS, Nagios Core 4.5.12, Nagios Plugins 2.5, Apache 2.4.66, PHP 8.5.4

Необходимые условия

Перед началом убедитесь, что ваш сервер соответствует следующим требованиям:

  • Ubuntu 26.04 LTS с завершённой начальной настройкой сервера (пользователь с правами sudo, брандмауэр)
  • Не менее 1 ГБ оперативной памяти и 10 ГБ дискового пространства
  • Доступ с правами root или sudo
  • Проверено на: Ubuntu 26.04 LTS (ядро 7.0), Apache 2.4.66, PHP 8.5.4

Установка зависимостей для сборки

Nagios Core компилируется из исходного кода, поэтому вам понадобятся инструменты разработки, библиотеки для веб-интерфейса CGI и веб-сервер. Установите всё за один раз:

sudo apt update
sudo apt install -y build-essential gcc make unzip libgd-dev libssl-dev apache2 php libapache2-mod-php php-gd openssl wget curl autoconf gettext

При этом будут установлены GCC для компиляции, libgd для графических CGI-карт состояния, библиотеки OpenSSL для проверки HTTPS, а также Apache с PHP для веб-интерфейса.

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

Nagios работает под собственной учётной записью службы. Создайте пользователя, группу команд и добавьте в неё пользователя Apache:

sudo useradd -m -s /bin/bash nagios
sudo groupadd nagcmd
sudo usermod -aG nagcmd nagios
sudo usermod -aG nagcmd www-data

Группа nagcmd позволяет веб-интерфейсу отправлять внешние команды (подтверждение оповещений, планирование простоев) через командный канал Nagios.

Загрузка и компиляция Nagios Core

Загрузите последнюю версию Nagios Core с GitHub. Команда определения версии автоматически извлекает текущий тег, поэтому информация останется актуальной при выходе будущих версий:

cd /tmp
NAGIOS_VER=$(curl -sL https://api.github.com/repos/NagiosEnterprises/nagioscore/releases/latest | grep tag_name | head -1 | sed 's/.*"nagios-\([^"]*\)".*/\1/')
echo "Downloading Nagios Core $NAGIOS_VER"
wget -q "https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-${NAGIOS_VER}/nagios-${NAGIOS_VER}.tar.gz"
tar xzf nagios-${NAGIOS_VER}.tar.gz
cd nagios-${NAGIOS_VER}

На момент написания статьи при этом загружается Nagios Core 4.5.12 (выпущен в марте 2026 года). Настройте сборку с интеграцией с Apache и группой команд:

./configure --with-httpd-conf=/etc/apache2/sites-enabled --with-command-group=nagcmd

Вывод команды configure подтверждает пути установки и URL-адреса веб-интерфейса:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagcmd
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
   Check result directory:  /usr/local/nagios/var/spool/checkresults
           Init directory:  /lib/systemd/system
  Apache conf.d directory:  /etc/apache2/sites-enabled

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/

Скомпилируйте всё:

make all -j$(nproc)

На виртуальной машине с двумя ядрами компиляция занимает около 30 секунд. Теперь установите скомпилированные бинарные файлы, скрипты инициализации, примеры конфигураций, командный режим и конфигурацию Apache:

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

Каждая make install-* цель обрабатывает отдельный компонент: install помещает бинарный файл Nagios в /usr/local/nagios/bin/, install-init создаёт модуль systemd, install-config помещает примеры конфигураций в /usr/local/nagios/etc/, install-commandmode настраивает канал внешних команд, а install-webconf копирует конфигурацию Apache для /nagios/ URL-пути.

Загрузка и установка плагинов Nagios

Без плагинов Nagios фактически не может ничего проверять. Пакет плагинов содержит check_disk, check_load, check_ssh, check_httpи десятки других:

cd /tmp
PLUGIN_VER=$(curl -sL https://api.github.com/repos/nagios-plugins/nagios-plugins/releases/latest | grep tag_name | head -1 | sed 's/.*"release-\([^"]*\)".*/\1/')
echo "Downloading Nagios Plugins $PLUGIN_VER"
wget -q "https://github.com/nagios-plugins/nagios-plugins/releases/download/release-${PLUGIN_VER}/nagios-plugins-${PLUGIN_VER}.tar.gz"
tar xzf nagios-plugins-${PLUGIN_VER}.tar.gz
cd nagios-plugins-${PLUGIN_VER}

Настройте с использованием пользователя nagios и группы команд, затем скомпилируйте и установите:

./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
make -j$(nproc)
sudo make install

Плагины помещаются в /usr/local/nagios/libexec/. Убедитесь, что они там находятся:

ls /usr/local/nagios/libexec/ | head -20

Вы должны увидеть такие файлы, как check_disk, check_http, check_load, check_ping, check_procsи check_ssh , среди прочих.

Создание администратора веб-интерфейса

Веб-интерфейс Nagios использует базовую аутентификацию Apache HTTP. Создайте nagiosadmin пользователя (это имя пользователя жестко задано в конфигурации CGI по умолчанию):

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

При появлении запроса введите надёжный пароль. Флаг -c создаёт файл. Если позже вы добавите других пользователей, снимите флаг -c , чтобы избежать перезаписи существующих записей.

Включите модули Apache и запустите Nagios

Для работы CGI-скриптов Nagios требуется модуль Apache cgi . Включите его вместе с rewrite:

sudo a2enmod cgi rewrite
sudo systemctl restart apache2

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

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

Результат должен показать отсутствие предупреждений и ошибок:

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Запустите и включите службу Nagios:

sudo systemctl enable --now nagios

Убедитесь, что она работает:

sudo systemctl status nagios --no-pager

Служба должна отображаться как активная (работающая) с указанием версии Nagios Core в описании:

● nagios.service - Nagios Core 4.5.12
     Loaded: loaded (/usr/lib/systemd/system/nagios.service; enabled; preset: enabled)
     Active: active (running) since Tue 2026-04-14 10:13:59 UTC; 5min ago
       Docs: https://www.nagios.org/documentation
   Main PID: 29018 (nagios)
      Tasks: 5 (limit: 3522)
     Memory: 5M
        CPU: 2.1s
     CGroup: /system.slice/nagios.service

Также убедитесь, что Apache работает на порту 80:

sudo systemctl status apache2 --no-pager | head -5

Для работы веб-интерфейса обе службы должны быть активными.

Настройте брандмауэр

Если включен UFW, разрешите HTTP-трафик:

sudo ufw allow 80/tcp
sudo ufw reload

Для производственных сред, расположенных за обратным прокси-сервером с SSL, разрешите также порт 443.

Доступ к веб-интерфейсу Nagios

Откройте браузер и перейдите по адресу http://10.0.1.50/nagios/ (замените на IP-адрес вашего сервера). Появится диалоговое окно HTTP-аутентификации. Войдите, используя nagiosadmin и пароль, который вы установили ранее.

Стартовая страница Nagios Core 4.5.12 после входа в систему

Нажмите «Hosts» (Хосты) или «Services» (Сервисы) в левом меню навигации, чтобы просмотреть статус мониторинга. Панель «Tactical Overview» (Тактический обзор) предоставляет краткую сводку по всем хостам и сервисам:

Тактический обзор, позволяющий с первого взгляда увидеть состояние мониторинга

Страница состояния сервисов отображает все проверки, выполняемые на localhost. После запуска Nagios подождите несколько минут, пока все проверки выполнят свой первый цикл:

Подробная информация о состоянии сервисов, отображающая проверки localhost: PING, корневой раздел, текущая нагрузка, SSH, HTTP и др.

Обзор мониторинга localhost по умолчанию

Пример конфигурации уже обеспечивает мониторинг локального компьютера с помощью следующих проверок:

  • PING: проверяет доступность хоста (предупреждение при 100 мс/20 % потерь, критическое состояние при 500 мс/60 %)
  • Корневой раздел: использование дискового пространства на / (предупреждение при 80 %, критическое состояние при 90 %)
  • Текущие пользователи: количество вошедших в систему пользователей (предупреждение при количестве свыше 20, критическое состояние при количестве свыше 50)
  • Общее количество процессов: количество запущенных процессов (предупреждение при превышении 250, критическое состояние при превышении 400)
  • Текущая нагрузка: средняя системная нагрузка (предупреждение при значениях 5/4/3, критическое состояние при значениях 10/6/4 в течение 1/5/15 минут)
  • Использование свопа: использование свопа (предупреждение при 80 %, критическое состояние при 90 %)
  • SSH: доступность SSH-демона на порту 22
  • HTTP: Ответ HTTP-сервера Apache на порту 80

Эти конфигурации находятся в /usr/local/nagios/etc/objects/localhost.cfg. Вы можете настроить пороговые значения, отредактировав check_command аргументы в определении каждого сервиса.

Добавление удалённого хоста для мониторинга

Мониторинг localhost — это только начало. Чтобы добавить удалённый сервер под управлением Linux, создайте файл конфигурации в каталоге objects. Сначала укажите Nagios загружать конфигурации из специального каталога:

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

Отредактируйте главный файл конфигурации, чтобы включить в него этот каталог:

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

Найдите раздел cfg_dir и добавьте следующую строку (или снимите комментарий, если она уже существует):

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

Теперь создайте определение хоста для удалённого сервера:

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

Добавьте следующие определения хоста и службы:

define host {
    use                     linux-server
    host_name               webserver
    alias                   Production Web Server
    address                 10.0.1.51
    max_check_attempts      5
    check_period            24x7
    notification_interval   30
    notification_period     24x7
}

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

define service {
    use                     generic-service
    host_name               webserver
    service_description     SSH
    check_command           check_ssh
}

define service {
    use                     generic-service
    host_name               webserver
    service_description     HTTP
    check_command           check_http
}

Проверьте и перезагрузите:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
sudo systemctl reload nagios

Новый хост появится в веб-интерфейсе в течение минуты. Это «безагентные» проверки, которые выполняются с точки зрения сервера Nagios. Для получения более подробных метрик (использование дискового пространства, загрузка ЦП, запущенные процессы на удалённом компьютере) потребуется агент NRPE.

Настройка NRPE для проверки удалённых систем

NRPE (Nagios Remote Plugin Executor) работает на отслеживаемом хосте и запускает локальные плагины по запросу. Это позволяет серверу Nagios запрашивать проверки, которые могут выполняться только локально, например check_disk или check_load.

На сервере Nagios

Установите плагин проверки NRPE, чтобы сервер мог взаимодействовать с удалёнными агентами NRPE:

cd /tmp
wget -q https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.3/nrpe-4.1.3.tar.gz
tar xzf nrpe-4.1.3.tar.gz
cd nrpe-4.1.3
./configure
make check_nrpe
sudo make install-plugin

В результате в папку check_nrpe будет установлен файл /usr/local/nagios/libexec/. Определите команду в 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$
}

На удалённом хосте

Установите NRPE и плагины Nagios на машине, которую вы хотите мониторить:

sudo apt install -y nagios-nrpe-server nagios-plugins

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

sudo vi /etc/nagios/nrpe.cfg

Найдите строку allowed_hosts и добавьте IP-адрес вашего сервера Nagios:

allowed_hosts=127.0.0.1,::1,10.0.1.50

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

sudo systemctl enable --now nagios-nrpe-server

Добавление проверок сервисов NRPE

Вернувшись на сервер Nagios, добавьте сервисы на основе NRPE в конфигурацию удалённого хоста:

define service {
    use                     generic-service
    host_name               webserver
    service_description     Disk Usage
    check_command           check_nrpe!check_disk
}

define service {
    use                     generic-service
    host_name               webserver
    service_description     System Load
    check_command           check_nrpe!check_load
}

define service {
    use                     generic-service
    host_name               webserver
    service_description     Total Processes
    check_command           check_nrpe!check_total_procs
}

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

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
sudo systemctl reload nagios

Настройте уведомления по электронной почте

Nagios отправляет оповещения по электронной почте с помощью /bin/mail. Установите агент передачи почты, если он ещё не установлен:

sudo apt install -y mailutils

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

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

Измените поле электронной почты в nagiosadmin определения контакта:

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

Для использования в производственной среде настройте Postfix или внешний SMTP-ретранслятор, чтобы электронные письма действительно доставлялись. Без правильно настроенного MTA уведомления никуда не поступят. Протестируйте это с помощью:

echo "Test alert from Nagios" | mail -s "Nagios Test" [email protected]

Проверьте свой почтовый ящик. Если ничего не пришло, проверьте /var/log/mail.log на наличие ошибок доставки.

Nagios Core 4.5.12 работает на Ubuntu 26.04 LTS, все проверки конфигурации прошли успешно

Nagios Core, Nagios XI и Prometheus: сравнение

Выбор между Nagios Core, Nagios XI, Zabbix и Prometheus зависит от вашего бюджета, размера команды и подхода к мониторингу. Ниже приведено практическое сравнение, основанное на опыте эксплуатации всех трех решений в производственных средах:

Функции Nagios Core (бесплатно) Nagios XI (коммерческий) Prometheus (бесплатный)
Лицензия GPL v2, полностью с открытым исходным кодом Проприетарная, от ~2 000 долларов в год Apache 2.0, полностью открытый исходный код
Настройка Текстовые файлы, полный контроль Мастер веб-интерфейса, более простая настройка Файлы YAML, нативная поддержка Kubernetes
Модель мониторинга Pull (активные проверки с сервера) Pull (тот же движок, что и в Core) Pull (извлекает данные из конечных точек /metrics)
Идеально подходит для Традиционную инфраструктуру, сетевые устройства, проверки работоспособности Команды, которым нужна настройка через графический интерфейс, отчёты и информационные панели Облачные решения, контейнеры, Kubernetes, микросервисы
Оповещения Встроенные (электронная почта, скрипты) Встроенные + эскалации + информационные панели Alertmanager (отдельный компонент)
Панели мониторинга Базовый веб-интерфейс на CGI Современный веб-интерфейс с графиками Grafana (отдельно)
Масштабируемость Один сервер, распределённая архитектура через DNX Мультисерверная архитектура с балансировщиком нагрузки Федерация, Thanos, Cortex
Агент NRPE, NSClient++ (Windows) NCPA (кроссплатформенный) Node Exporter, cAdvisor, пользовательские экспортеры
Обнаружение сервисов Вручную (конфигурационные файлы) Плагины автоматического обнаружения Нативные (Kubernetes, Consul, DNS, на основе файлов)
Кривая освоения Крутая (синтаксис конфигурационных файлов) Умеренная (помогает графический интерфейс) Умеренная (PromQL, YAML)
Плагины сообщества Более 4 000 на Nagios Exchange Включает плагины Core + коммерческие дополнения Сотни экспортеров

Nagios Core по-прежнему актуален, когда требуются надёжные проверки работоспособности традиционной инфраструктуры: физических серверов, сетевых коммутаторов, принтеров, устройств ИБП. Prometheus выигрывает в случае контейнерных или облачных решений, где требуются многомерные метрики и запросы PromQL. Nagios XI предназначен для команд, которым нужен механизм проверки Nagios, но которые не хотят вручную управлять конфигурационными файлами.

Для хостинговой среды на базе стека LAMP Nagios Core с NRPE обеспечивает все необходимое, не усложняя эксплуатацию, как это бывает со стеком Prometheus. Для кластера Kubernetes Prometheus является очевидным выбором, поскольку он изначально интегрирован с экосистемой контейнеров.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *