Мониторинг. · 5 min read · Oct 21, 2025

Как установить мониторинг сервера Nagios на Ubuntu 16.04

Nagios — это программное обеспечение с открытым исходным кодом для мониторинга систем и сетей. Nagios может отслеживать активность хоста и его служб и предоставляет предупреждение/уведомление, если что-то идет не так на сервере. Nagios может работать на операционных системах Linux. В данный момент я использую Ubuntu 16.04 для установки.

Предварительные требования

  • 2 сервера Ubuntu 16.04 - 64bit - 1 - Хост Nagios с IP: 192.168.1.9
  • 2 - Клиент Ubuntu с IP: 192.168.1.10
  • Доступ Root/Sudo

Что мы будем делать в этом руководстве:

  1. Установим зависимости программного обеспечения, такие как - LAMP и т.д.
  2. Настроим пользователей и группы.
  3. Установим Nagios.
  4. Настроим Apache.
  5. Протестируем сервер Nagios.
  6. Добавим хост для мониторинга.

Установка предварительных требований

Nagios требует компилятор gcc и пакеты build-essentials для компиляции, LAMP (Apache, PHP, MySQL) для веб-интерфейса Nagios и Sendmail для отправки уведомлений с сервера. Чтобы установить все эти пакеты, выполните эту команду (это всего лишь 1 строка):

sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd libgd-dev sendmail unzip

Настройка пользователей и групп

Чтобы Nagios работал, вам нужно создать нового пользователя для Nagios. Мы назовем пользователя “nagios” и дополнительно создадим группу с именем “nagcmd”. Мы добавим нового пользователя в группу, как показано ниже:

useradd nagios  
groupadd nagcmd  
usermod -a -G nagcmd nagios  
usermod -a -G nagios,nagcmd www-data

Установка Nagios

Шаг 1 - Скачивание и извлечение ядра Nagios

cd ~  
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.2.0.tar.gz  
tar -xzf nagios*.tar.gz  
cd nagios-4.2.0

Шаг 2 - Компиляция Nagios

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

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

Для получения дополнительной информации используйте: ./configure –help.

Теперь установим Nagios:

make all  
sudo make install  
sudo make install-commandmode  
sudo make install-init  
sudo make install-config  
/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf

И скопируем директорию evenhandler в директорию nagios:

cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/  
chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

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

Скачайте и извлеките плагины Nagios:

cd ~  
wget https://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz  
tar -xzf nagios-plugins*.tar.gz  
cd nagios-plugin-2.1.2/

Установите плагины Nagios с помощью следующих команд:

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

Шаг 4 - Настройка Nagios

После завершения установки вы можете найти конфигурацию по умолчанию Nagios в /usr/local/nagios/.

Мы настроим Nagios и контакт Nagios.

Отредактируйте конфигурацию nagios по умолчанию с помощью vim:

vim /usr/local/nagios/etc/nagios.cfg

раскомментируйте строку 51 для настройки мониторинга хоста.

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

Сохраните и выйдите.

Добавьте новую папку с именем servers:

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

Контакт Nagios можно настроить в файле contact.cfg. Чтобы открыть его, используйте:

vim /usr/local/nagios/etc/objects/contacts.cfg

Затем замените адрес электронной почты по умолчанию на свой собственный адрес.

Настройка Apache

Шаг 1 - Включение модулей Apache

sudo a2enmod rewrite  
sudo a2enmod cgi

Вы можете использовать команду htpasswd для настройки пользователя nagiosadmin для веб-интерфейса nagios

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

и введите свой пароль.

Шаг 2 - Включение виртуального хоста Nagios

sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Шаг 3 - Запуск Apache и Nagios

service apache2 restart  
service nagios start

Когда Nagios запускается, вы можете увидеть следующую ошибку:

Starting nagios (via systemctl): nagios.serviceFailed

И вот как это исправить:

cd /etc/init.d/  
cp /etc/init.d/skeleton /etc/init.d/nagios

Теперь отредактируйте файл Nagios:

vim /etc/init.d/nagios

… и добавьте следующий код:

DESC="Nagios"  
NAME=nagios  
DAEMON=/usr/local/nagios/bin/$NAME  
DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"  
PIDFILE=/usr/local/nagios/var/$NAME.lock

Сделайте его исполняемым и запустите Nagios:

chmod +x /etc/init.d/nagios  
service apache2 restart  
servuce nagios start

Тестирование сервера Nagios

Пожалуйста, откройте ваш браузер и получите доступ к IP сервера Nagios, в моем случае: http://192.168.1.9/nagios.

Вход в Nagios с помощью apache htpasswd.

Вход в Nagios

Панель управления администратором Nagios

Панель управления Nagios

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

В этом руководстве я добавлю хост Ubuntu для мониторинга на сервер Nagios, который мы создали выше.

IP сервера Nagios : 192.168.1.9  
IP хоста Ubuntu : 192.168.1.10

Шаг 1 - Подключение к хосту ubuntu

ssh [email protected]

Шаг 2 - Установка службы NRPE

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

Шаг 3 - Настройка NRPE

После завершения установки отредактируйте файл nrpe /etc/nagios/nrpe.cfg:

vim /etc/nagios/nrpe.cfg

… и добавьте IP сервера Nagios 192.168.1.9 в server_address.

server_address=192.168.1.9

Шаг 4 - Перезапуск NRPE

service nagios-nrpe-server restart

Шаг 5 - Добавление хоста Ubuntu на сервер Nagios

Пожалуйста, подключитесь к серверу Nagios:

ssh [email protected]

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

vim /usr/local/nagios/etc/servers/ubuntu_host.cfg

Добавьте следующие строки:

# Файл конфигурации хоста Ubuntu

define host {
        use                          linux-server
        host_name                    ubuntu_host
        alias                        Ubuntu Host
        address                      192.168.1.10
        register                     1
}

define service {
      host_name                       ubuntu_host
      service_description             PING
      check_command                   check_ping!100.0,20%!500.0,60%
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       ubuntu_host
      service_description             Check Users
      check_command           check_local_users!20!50
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       ubuntu_host
      service_description             Local Disk
      check_command                   check_local_disk!20%!10%!/
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       ubuntu_host
      service_description             Check SSH
      check_command                   check_ssh
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       ubuntu_host
      service_description             Total Process
      check_command                   check_local_procs!250!400!RSZDT
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

Вы можете найти много check_command в файле /usr/local/nagios/etc/objects/commands.cfg. Посмотрите там, если хотите добавить больше служб, таких как DHCP, POP и т.д.

А теперь проверьте конфигурацию:

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

… чтобы увидеть, правильна ли конфигурация.

Шаг 6 - Перезапуск всех служб

На хосте Ubuntu запустите службу NRPE:

service nagios-nrpe-server restart

… и на сервере Nagios запустите Apache и Nagios:

service apache2 restart  
service nagios restart

Шаг 7 - Тестирование хоста Ubuntu

Откройте сервер Nagios в браузере и посмотрите, как мониторится ubuntu_host.

Хост Ubuntu доступен на мониторируемом хосте.

Мониторируемый сервер в списке

Все службы мониторятся без ошибок.

Все службы зеленые

Заключение

Nagios — это приложение с открытым исходным кодом для мониторинга системы. Nagios широко используется благодаря простоте настройки. Nagios поддерживается различными плагинами, и вы даже можете создать свои собственные плагины. Смотрите здесь для получения дополнительной информации.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.