Гид по технологиям

Установка и настройка Icinga2 и Icinga Web 2 на Ubuntu 20.04

8 min read DevOps Обновлено 27 Nov 2025
Icinga2 на Ubuntu 20.04 — установка и настройка
Icinga2 на Ubuntu 20.04 — установка и настройка

Логотип или скриншот Icinga на рабочем столе сервера

Icinga — бесплатный и открытый инструмент мониторинга для дата-центров и инфраструктуры. Это приложение для мониторинга систем и сети: проверяет доступность ресурсов, оповещает об отказах, собирает данные о производительности и поддерживает высокую доступность и распределённый мониторинг с помощью встроенного кластера.

Icinga возник как форк Nagios в 2009 году, затем был переработан на C++ и стал одной из популярных систем мониторинга. Название “Icinga” происходит от языка зулу и означает «он ищет», «он просматривает», «он проверяет».

В этом руководстве показано, как установить и настроить Icinga2 и Icinga Web 2 на сервере с Ubuntu 20.04 LTS. Мы используем официальные репозитории Icinga и показываем интеграцию с MySQL и Apache/PHP для веб-интерфейса.

Кому это полезно

  • Сисадминам, разворачивающим мониторинг на новых серверах.
  • Инженерам DevOps, которым требуется интеграция Icinga в существующую инфраструктуру.
  • Тем, кто мигрирует с Nagios и хочет современный стек.

Предпосылки

  • Ubuntu 20.04 LTS (Focal Fossa).
  • Минимум 2 ГБ оперативной памяти для тестовой установки; для крупных развёртываний — больше.
  • Доступ root или пользователь с sudo.
  • Открытые порты HTTP/HTTPS для доступа к Icinga Web 2.

Важно: в этой инструкции мы используем PHP 7.3 (PPA) потому что на момент написания Icinga Web 2 может быть несовместим с более новыми версиями PHP без дополнительной проверки.

Что мы сделаем

  • Установим Icinga2 и плагины Nagios
  • Установим и настроим MySQL
  • Установим модуль Icinga IDO для MySQL
  • Установим Apache2 и PHP 7.3
  • Установим и настроим Icinga Web 2
  • Выполним пост-настройку и проверку

Шаг 1 — Установка Icinga2 и плагинов Nagios

Сначала добавим репозиторий Icinga для Ubuntu 20.04 и установим пакеты icinga2 и monitoring-plugins.

Добавим GPG-ключ репозитория Icinga:

curl https://packages.icinga.com/icinga.key | apt-key add -

Перейдите в каталог источников APT и создайте файл репозитория:

cd /etc/apt/sources.list.d/
vim icinga-focal.list

Вставьте конфигурацию репозитория:

deb http://packages.icinga.com/ubuntu icinga-focal main
deb-src http://packages.icinga.com/ubuntu icinga-focal main

Обновите индексы и установите пакеты:

sudo apt update
sudo apt install icinga2 monitoring-plugins

Установка пакетов Icinga2 и плагинов Nagios

После установки запустите службу и включите автозапуск:

systemctl start icinga2
systemctl enable icinga2

Проверьте статус сервиса:

systemctl status icinga2

Старт службы Icinga2

Если сервис активен — продолжаем.


Шаг 2 — Установка и настройка MySQL

Установим MySQL Server и настроим базовую безопасность и пароль root.

Установка:

sudo apt install mysql-server mysql-client

Запуск и автозапуск:

systemctl start mysql
systemctl enable mysql

Запустите инструмент повышения безопасности:

mysql_secure_installation

При выполнении следуйте подсказкам: задайте надёжный пароль root и ответьте “Y” для рекомендаций удаления анонимных пользователей, запрета удалённого логина root, удаления тестовой БД и т.д.

Пример диалога:

Press y|Y for Yes, any other key for No:
Please set the password for root here.

New password:
Re-enter new password:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Настройка пароля root для MySQL

После этого MySQL сконфигурирован с базовым уровнем безопасности.


Шаг 3 — Установка и настройка модуля Icinga IDO для MySQL

Модуль IDO (Icinga Data Output) сохраняет данные мониторинга в БД. Установим пакет и создадим пользователя.

Установка пакета:

sudo apt install icinga2-ido-mysql

Во время установки вы будете приглашены включить функцию ido-mysql — подтвердите “Yes”.

Установка Icinga2 IDO MySQL

При установке также будет запущен dbconfig-common для создания БД — подтвердите и введите пароль для нового пользователя DB (например, для пользователя icinga2).

Конфигурация dbconfig-common для Icinga2 IDO MySQL

Введите и повторите пароль для пользователя icinga2 в MySQL:

Установка пароля для Icinga IDO MySQL

Повтор подтверждения пароля Icinga2 IDO MySQL

После установки пользователь MySQL “icinga2” будет создан. Чтобы гарантировать совместимость с текущей версией MySQL, переключите метод аутентификации на mysql_native_password.

Войдите в MySQL Shell:

mysql -u root -p

Выполните запрос для изменения плагина аутентификации и обновления привилегий (замените пароль на собственный и безопасный):

ALTER USER icinga2@localhost IDENTIFIED WITH mysql_native_password BY 'aqwe123@#$';
flush privileges;

Затем выйдите:

exit

Включите фичу ido-mysql в Icinga2 и проверьте список фич:

icinga2 feature enable ido-mysql
icinga2 feature list

Перезапустите службу Icinga2 для применения изменений:

systemctl restart icinga2

Включение Icinga2 IDO MySQL


Шаг 4 — Установка Apache2 и PHP 7.3

Icinga Web 2 требует веб-сервера и PHP. На Ubuntu 20.04 используем PHP 7.3 из PPA, если стандартный репозиторий содержит только более новые версии.

Добавим PPA и установим нужные пакеты:

sudo apt install python3-software-properties
sudo add-apt-repository ppa:ondrej/php

sudo apt update
sudo apt install apache2 php7.3 php7.3-common php7.3-gd php7.3-ldap php7.3-intl php7.3-curl libapache2-mod-php7.3 php7.3-mysql php7.3-pgsql php7.3-xml

Отредактируйте php.ini (для Apache):

vim /etc/php/7.3/apache2/php.ini

Включите часовой пояс и установите timezone (пример — Asia/Singapore). Установите cgi.fix_pathinfo=0:

date.timezone = Asia/Singapore
cgi.fix_pathinfo=0

Перезапустите Apache и включите автозапуск:

systemctl restart apache2
systemctl enable apache2

Проверьте статус Apache:

systemctl status apache2

Установка и конфигурация Apache и PHP


Шаг 5 — Установка Icinga Web 2

Установим пакеты icingaweb2 и icingacli, затем создадим базу данных для веб-приложения.

sudo apt install icingaweb2 icingacli

Создайте токен установки для веб-интерфейса (сохраните значение — он потребуется в браузере):

icingacli setup token create

Пример вывода:

The newly generated setup token is: 9b871ead0a60c94f

Создайте базу данных и пользователя в MySQL для icingaweb2 (замените пароль на надёжный):

mysql -u root -p

create database icingaweb2;
create user icingaweb2@localhost identified with mysql_native_password by "icingaweb2pass";
grant all privileges on icingaweb2.* to icingaweb2@localhost with grant option;
flush privileges;
exit

Установка Icingaweb2 и создание БД


Шаг 6 — Постустановка Icinga2 и Icinga Web 2 через браузер

Откройте в браузере:

http://вашегосервера>/icingaweb2/setup

Вставьте ранее сгенерированный setup token и нажмите “Next”.

Начало установки Icingaweb2 в браузере

Выберите модуль Monitoring (оставьте по умолчанию) и нажмите “Next”.

Выбор модулей для установки

Проверьте требования окружения — все необходимые модули должны быть зелёными, кроме опционального PostgreSQL, и нажмите “Next”.

Проверка требований модулей

Выберите тип аутентификации Database и нажмите “Next”.

Выбор типа аутентификации

Введённые данные БД icingaweb2 проверьте кнопкой “Validate Configuration”. При успехе — “Next”.

Конфигурация БД для Icingaweb2

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

Выбор backend-ресурса

Введите имя администратора и пароль для доступа к Icinga Web 2 и продолжите.

Создание admin-учётной записи

На этапе Application Configuration можно оставить настройки по умолчанию.

Конфигурация приложения Icinga

Подтвердите финальные параметры и нажмите “Finish”.

Обзор конфигурации Icingaweb2

Затем настройте backend мониторинга: задайте имя, тип IDO и укажите параметры подключения к БД Icinga2.

Настройка backend Icinga2 IDO

Проверка подключения к БД Icinga2 и выбор транспорта команд (Local Command File по умолчанию).

Конфигурация базы данных Icinga2

Выбор транспорта команд

Подтвердите настройки безопасности мониторинга и завершите установку.

Настройка безопасности мониторинга

После успешной установки нажмите “Login to Icinga Web 2” и войдите под созданной учётной записью.

Успешная установка Icinga

Страница входа Icinga Web 2

Дашборд Icinga Web 2

Поздравляем — базовая установка и конфигурация Icinga2 и Icinga Web 2 завершены.


Расширенные рекомендации и лучшие практики

Мини-методология развёртывания

  1. Подготовьте отдельную тестовую среду, повторяющую продакшен по конфигурации.
  2. Автоматизируйте установку (Ansible/Chef/Puppet) для воспроизводимости.
  3. Разверните мониторинг в несколько этапов: базовый стек → интеграции → алерты.
  4. Наблюдайте за потреблением ресурсов и масштабируйте БД IDO по необходимости.

Чек-лист по ролям

  • Системный администратор:

    • Проверил обновления OS и установил пакеты.
    • Настроил firewall для портов 80/443.
    • Обеспечил резервное копирование конфигурации и БД.
  • DBA:

    • Создал базы icinga2 и icingaweb2 и проверил привилегии.
    • Настроил регулярный бэкап и мониторинг размера логов.
  • ДевОпс-инженер:

    • Добавил мониторинг ключевых сервисов и проверил алерты.
    • Интегрировал с системой уведомлений (SMTP/Slack/PagerDuty).

Критерии приёмки

  • Служба icinga2 запущена и в статусе active.
  • Icinga Web 2 доступен по HTTP(S) и позволяет авторизоваться.
  • События мониторинга записываются в БД IDO.
  • Алёрты доставляются в тестовый канал уведомлений.

Сценарии отказа и быстрый Recovery

  • Если Icinga2 не стартует — проверьте логи:
journalctl -u icinga2 -b
/var/log/icinga2/icinga2.log
  • Проблемы с подключением к MySQL — проверьте, что пользователь, пароль и плагин аутентификации корректны.
  • Если веб-интерфейс не открывается — проверьте статус Apache и наличие модулей PHP.

Частые ошибки и способы их устранения

  1. “Cannot connect to database” в Icinga Web 2

    • Проверьте host, порт, имя БД, пользователя и пароль.
    • Убедитесь, что пользователь имеет нужные привилегии.
    • Проверьте, что MySQL слушает на localhost или нужном интерфейсе.
  2. Проблемы аутентификации MySQL (пустой пароль или неверный плагин)

    • Выполните ALTER USER … IDENTIFIED WITH mysql_native_password BY ‘…’ для пользователей Icinga.
  3. Несовместимость версии PHP

    • Используйте рекомендованную версию PHP (в данном руководстве — 7.3) или проверяйте совместимость Icinga Web 2 с вашей версией PHP.
  4. Плохая производительность при большом потоке данных

    • Перенесите IDO в выделенную БД-серверную ноду.
    • Настройте индексы и мониторинг медленных запросов.

Резервный план и откат изменений

Если новая конфигурация вызывает нестабильность, выполните следующие шаги:

  1. Отключите службу Icinga Web 2: systemctl stop apache2
  2. Откатьте конфигурационные файлы (если храните версионно).
  3. Восстановите дамп БД из бэкапа:
mysql -u root -p icinga2 < icinga2_backup.sql
mysql -u root -p icingaweb2 < icingaweb2_backup.sql
  1. Перезапустите службы: systemctl restart mysql icinga2 apache2

Безопасность и ограничения доступа

  • Настройте HTTPS для веб-интерфейса (Let’s Encrypt или корпоративный сертификат).
  • Ограничьте доступ к панели управления через firewall и VPN.
  • Используйте сильные пароли и ротацию ключей/паролей.
  • Включите аудит и логирование доступа к Icinga Web 2.

Совместимость и пути миграции

  • При обновлении с Ubuntu 20.04 на 22.04 учтите возможные изменения версий PHP и MySQL. Планируйте тестовую миграцию и проверьте совместимость модулей Icinga.
  • Для крупных инсталляций стоит вынести БД IDO на отдельный сервер и использовать репликацию и регулярные бэкапы.

Краткое руководство по тестированию и приёмке

Тестовые случаи:

  • После установки: вход в Icinga Web 2 под админом — ожидается успешная авторизация.
  • Добавление тестового хоста и проверки — статус “UP” для корректного хоста.
  • Генерация искусственного падения сервиса — проверка, что алерт создаётся и отправляется.

Критерии успешного приёма описаны выше в разделе “Критерии приёмки”.


Малые советы и эвристики

  • Всегда храните токен установки icingaweb2 в защищённом месте до завершения процесса.
  • Автоматизируйте установку — это минимизирует человеческие ошибки.
  • Для больших сред рассмотрите разделение ролей: веб на одном сервере, Icinga2 Master на другом, IDO на отдельной БД.

1‑строчный глоссарий

  • Icinga2: основной демон мониторинга.
  • Icinga Web 2: веб-интерфейс для просмотра статусов и управления.
  • IDO: модуль сохранения данных мониторинга в БД.
  • icingacli: утилита командной строки для управления Icinga Web 2.

Итог

В этом руководстве показана пошаговая установка Icinga2 и Icinga Web 2 на Ubuntu 20.04 с использованием MySQL, Apache и PHP 7.3. Следуя рекомендациям по безопасности, резервному копированию и тестированию, вы получите надёжную систему мониторинга, готовую к интеграции в корпоративную инфраструктуру.

Важное

  • Тестируйте все изменения в изолированной среде перед применением в продакшене.
  • Не забывайте про регулярные бэкапы конфигураций и БД.

Ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро