Мониторинг. · 17 min read · Nov 18, 2025
Как установить инструмент мониторинга Icinga 2 на Debian 9.2
В этом руководстве мы обсудим, как установить и настроить последнюю версию инструмента веб-мониторинга Icinga 2 в релизе Debian 9.2, чтобы мониторить все важные устройства сетевой инфраструктуры, такие как физические или виртуальные серверы или ВМ, маршрутизаторы, коммутаторы, устройства межсетевого экрана и другие сетевые IoT-устройства. Он также может мониторить состояние сетевых протоколов, таких как HTTP, FTP, SMTP, IMAP или другие сетевые сервисы, ресурсы хостов, физические датчики, а также программное обеспечение, загрузку ЦП, память, дисковое пространство и т. д. и почти все взаимосвязанные сетевые устройства через ICMP или ping-запросы.
Icinga, изначально форк системы мониторинга Nagios, является современным приложением для мониторинга сети с открытым исходным кодом, написанным на PHP и широко развернутым в Linux под компонентами Apache/Nginx, PHP и MySQL/MariaDB, также известными как LAMP или LEMP стеки. Icinga 2 может быть настроен для уведомления системных или сетевых администраторов по электронной почте, SMS, чату или другим типам оповещений о сбоях в сети, системах, сервисах или других связанных сбоях сети и также может генерировать графики о времени простоя сети или производительности.
Требования
- Установленный Debian 9.2 на физической машине или на виртуальном частном сервере.
- Один из сетевых интерфейсов сервера, настроенный с статическим IP-адресом.
- Прямой доступ к учетной записи root через консоль или удаленно через SSH-сервис или привилегии sudo root на локальной или удаленной учетной записи.
- Доменное имя, частное или публичное, в зависимости от вашего развертывания, с правильно настроенными DNS-записями для веб-сервисов.
- Почтовый сервис, правильно настроенный на вашем оборудовании, чтобы отправлять почтовые оповещения.
Начальная настройка
Перед тем как начать установку и настройку инструмента веб-мониторинга Icinga 2 на вашем сервере, сначала убедитесь, что система соответствует всем программным требованиям для компиляции и установки приложения. На первом этапе обновите репозитории вашей системы и программные пакеты, выполнив следующую команду.
apt updateapt upgradeНа следующем этапе выполните следующую команду, чтобы установить некоторые необходимые утилиты, которые будут использоваться для дальнейшего управления вашей системой из командной строки.
apt install wget bash-completion unzipЗатем настройте имя хоста для вашей системы, выполнив следующую команду. Замените переменную имени хоста соответственно.
hostnamectl set-hostname icingaПроверьте имя хоста машины и файл hosts, выполнив следующие команды.
hostnamectlcat /etc/hostnamehostname –s
Наконец, перезагрузите сервер Debian, чтобы правильно применить обновления ядра и изменения имени хоста.
init 6Icinga 2 — это приложение для мониторинга сети, которое можно настроить через веб-интерфейс, и его функциональность в основном основана на языке программирования PHP на стороне сервера. Чтобы выполнить PHP-скрипты приложения, необходимо установить и запустить веб-сервер, такой как Apache HTTP сервер, и шлюз обработки PHP. Чтобы установить веб-сервер Apache и интерпретатор PHP вместе со всеми необходимыми модулями PHP, необходимыми для правильной работы Icinga, выполните следующую команду в консоли вашего сервера.
apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readlineПосле установки Apache и PHP проверьте, работает ли веб-сервер и слушает ли он сетевые подключения на порту 80, выполнив следующую команду с привилегиями root.
netstat –tlpnВ случае, если утилита netstat не установлена по умолчанию в вашей системе Debian, выполните следующую команду для ее установки.
apt install net-toolsПроверяя вывод команды netstat, вы можете увидеть, что веб-сервер Apache слушает входящие сетевые подключения на порту 80. Для той же задачи вы также можете использовать команду ss, которая автоматически устанавливается по умолчанию в Debian 9.
ss- tulpnЕсли у вас включен межсетевой экран в вашей системе, такой как приложение межсетевого экрана UFW, вы должны добавить новое правило, чтобы разрешить проход HTTP-трафика через межсетевой экран, выполнив следующую команду.
ufw allow WWWили
ufw allow 80/tcpЕсли вы используете iptables для управления правилами межсетевого экрана на вашем сервере Debian, добавьте следующее правило, чтобы разрешить входящий трафик на порт 80 через межсетевой экран, чтобы посетители могли просматривать веб-интерфейс Icinga2.
apt-get install -y iptables-persistentiptables -I INPUT -p tcp --destination-port 80 -j ACCEPTsystemctl iptables-persistent savesystemctl iptables-persistent reloadЗатем включите и примените следующие модули Apache, которые будут использоваться для перенаправления HTTP-соединений на HTTPS, выполнив следующую команду.
a2enmod rewritesystemctl restart apache2Наконец, проверьте, может ли веб-страница по умолчанию веб-сервера Apache отображаться в браузерах ваших клиентов, посетив IP-адрес вашего сервера Debian или ваше доменное имя или FQDN сервера через протокол HTTP. Если вы не знаете IP-адрес вашей машины, выполните команды ifconfig или ip a, чтобы узнать IP-адрес вашего сервера. Страница по умолчанию Apache для Debian будет отображаться в вашем браузере, как показано на скриншоте ниже.

Чтобы получить доступ к приложению мониторинга Icinga 2 через протокол HTTPS, который обеспечит безопасность трафика для ваших клиентов, выполните следующую команду, чтобы включить модуль SSL веб-сервера Apache и файл конфигурации сайта SSL. Также включите модуль переписывания Apache, чтобы заставить пользователей посещать интерфейс через HTTPS.
a2enmod ssl rewritea2ensite default-ssl.confЗатем откройте файл конфигурации сайта SSL по умолчанию Apache с помощью текстового редактора и включите правила переписывания URL, добавив следующие строки кода после директивы DocumentRoot, как показано в следующем примере:
nano /etc/apache2/sites-enabled/default-ssl.confФрагмент файла конфигурации сайта SSL:
Options +FollowSymlinks
AllowOverride All
Require all granted
Также внесите следующие изменения в строку VirtualHost, чтобы она выглядела, как показано в следующем фрагменте:

Закройте файл TLS Apache и откройте файл /etc/apache2/sites-enabled/000-default.conf для редактирования и добавьте те же правила переписывания URL, что и для файла конфигурации SSL. Вставьте строки кода после оператора DocumentRoot, как показано в следующем примере.
Options +FollowSymlinks
AllowOverride All
Require all granted

Наконец, перезапустите демон Apache, чтобы применить все правила, настроенные до сих пор, и посетите ваш домен через протокол HTTP. Поскольку вы используете автоматически сгенерированную самоподписанную пару сертификатов, выданную Apache при установке, в браузере должно появиться предупреждение об ошибке, как показано на скриншоте ниже.
systemctl restart apache2
Примите предупреждение, чтобы продолжить и быть перенаправленным на веб-страницу по умолчанию Apache через протокол HTTPS. Следующая страница будет отображаться в вашем браузере.

Если приложение межсетевого экрана UFW блокирует входящие сетевые подключения к порту HTTPS, вы должны добавить новое правило, чтобы разрешить HTTPS-трафик проходить через межсетевой экран, выполнив следующую команду.
ufw allow 'WWW Full'или
ufw allow 443/tcpЕсли iptables является приложением межсетевого экрана по умолчанию, установленным для защиты вашей системы Debian на уровне сети, добавьте следующее правило, чтобы разрешить входящий трафик на порт 443 через межсетевой экран, чтобы посетители могли просматривать ваше доменное имя.
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPTsystemctl iptables-persistent savesystemctl iptables-persistent reloadНа следующем этапе нам нужно внести некоторые изменения в файл конфигурации PHP по умолчанию, чтобы убедиться, что следующие переменные PHP включены, а настройка timezone PHP правильно настроена и соответствует вашему географическому положению. Откройте файл /etc/php/7.0/apache2/php.ini для редактирования и убедитесь, что следующие строки настроены следующим образом. Также сначала сделайте резервную копию файла конфигурации PHP.
cp /etc/php/7.0/apache2/php.ini{,.backup}nano /etc/php/7.0/apache2/php.iniИщите, редактируйте и изменяйте следующие переменные в файле конфигурации php.ini:
php_value max_execution_time 300
php_value memory_limit 128M
php_value max_input_time 300
date.timezone = Europe/LondonЗамените переменную time.zone соответственно вашему физическому времени, проконсультировавшись со списком часовых поясов, предоставленным документацией PHP по следующей ссылке http://php.net/manual/en/timezones.php
Если вы хотите увеличить скорость загрузки страниц вашего веб-сайта с помощью плагина OPCache, доступного для PHP7, добавьте следующие настройки OPCache внизу файла конфигурации интерпретатора PHP, как указано ниже:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1Закройте файл конфигурации php.ini и проверьте, были ли правильно добавлены переменные, выполнив следующую команду.
tail /etc/php/7.0/apache2/php.iniПосле того как вы внесли изменения, описанные выше, перезапустите демон apache, чтобы применить новые изменения, выполнив следующую команду.
systemctl restart apache2Наконец, создайте файл информации PHP, выполнив следующую команду, и проверьте, правильно ли настроен часовой пояс PHP, посетив файл скрипта информации PHP из браузера по следующему URL, как показано на изображении ниже. Прокрутите вниз до настройки date, чтобы проверить конфигурацию часового пояса PHP.
echo ''| tee /var/www/html/info.php
Icinga 2 хранит пользователей, контакты и другие собранные данные в конкретной базе данных RDBMS, такой как MySQL, SQLite или PostgreSQL. В этом руководстве мы настроим Icinga с базой данных MariaDB, форком базы данных MySQL, в качестве бэкенда. Выполните следующую команду, чтобы установить сервер базы данных MariaDB и модуль PHP, необходимый для доступа к базе данных mysql.
apt install mariadb-server mariadb-client php7.0-mysqlПосле установки MariaDB проверьте, работает ли демон и слушает ли он подключения на localhost, порту 3306, запустив команду netstat или ss.
netstat –tlpn | grep mysqlЗатем войдите в консоль MySQL и защитите учетную запись root MariaDB, выполнив следующие команды.
mysql -h localhostuse mysql;
update user set plugin='' where user='root';
flush privileges;
exitТеперь мы защитим MariaDB, выполнив скрипт mysql_secure_installation, предоставленный пакетами установки из репозиториев Debian. При выполнении скрипт задаст ряд вопросов, направленных на защиту базы данных MariaDB, таких как: изменение пароля root MySQL, удаление анонимных пользователей, отключение удаленного входа root и удаление тестовой базы данных. Выполните скрипт, выполнив следующую команду, и убедитесь, что вы отвечаете “да” на все задаваемые вопросы, чтобы полностью защитить демон MySQL. Используйте вывод скрипта ниже только в качестве руководства.
sudo mysql_secure_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andyou haven't set the root password yet, the password will be blank,so you should just press enter here.Enter current password for root (enter for none):OK, successfully used password, moving on...Setting the root password ensures that nobody can log into the MariaDBroot user without the proper authorisation.You already have a root password set, so you can safely answer 'n'.Change the root password? [Y/n] yNew password:Re-enter new password:Password updated successfully!Reloading privilege tables.. ... Success!By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.Remove anonymous users? [Y/n] y ... Success!Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] y ... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? [Y/n] y ... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!Чтобы протестировать безопасность MariaDB, попробуйте войти в базу данных из консоли без пароля root. Доступ к базе данных должен быть запрещен, если пароль для учетной записи root не предоставлен. Если пароль предоставлен, процесс входа должен быть разрешен в консоль MySQL, как показано на скриншоте ниже.
mysql -h localhost -u rootmysql -h localhost -u root –p
Затем войдите в консоль базы данных MariaDB и сначала создайте базу данных, которая будет использоваться приложением Icinga2, и пользователя с паролем, который будет использоваться для управления этой базой данных, выполнив следующие команды. Замените это имя базы данных, пользователя и пароль соответственно.
mysql –u root -pcreate database icingadb;
grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'icinga_pass';
flush privileges
exit
Затем создайте вторую базу данных MySQL, которая будет использоваться для хранения пользователей веб-интерфейса Icinga2, групп и других пользовательских данных веб-интерфейса, выполнив следующие команды. Также, как и в предыдущей базе данных, убедитесь, что вы заменили имя базы данных и учетные данные соответственно и выбрали надежный пароль для пользователя базы данных.
mysql –u root –pcreate database icinga_users;
grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'icinga_pass';
flush privileges
exit
Чтобы применить все изменения, сделанные до сих пор, перезапустите демоны MySQL и Apache и проверьте, работают ли демоны, выполнив следующие команды.
systemctl restart mysql apache2systemctl status mysql apache2Установить Icinga 2
После того как все системные требования для установки нашего веб-приложения мониторинга выполнены, продолжите установку приложения вместе с модулем MySQL, необходимым для доступа к базе данных MySQL, выполнив следующую команду. Icinga 2 имеет предварительно скомпилированные бинарные пакеты, предлагаемые репозиториями Debian 9. Установка будет выполнена через менеджер пакетов apt Debian 9.
apt install icinga2 icinga2-ido-mysqlВо время установки предварительно скомпилированных бинарников Icinga2 из репозиториев Debian на вашем экране появится ряд подсказок для настройки приложения. На первой подсказке вас спросят, хотите ли вы настроить и включить Icinga 2 для использования модуля MySQL. Выберите Да из подсказки и нажмите клавишу [enter], чтобы продолжить, как показано на изображении ниже.

На следующей подсказке вас спросят, хотите ли вы настроить базу данных для icinga2-ido-mysql с опцией dbconfig-common. Выберите Нет из подсказки и нажмите клавишу [enter], чтобы завершить установку Icinga 2.

После установки Icinga 2 запустите демон Icinga 2 и проверьте статус службы, выполнив следующие команды.
systemctl start icinga2.servicesystemctl status icinga2.serviceНа следующем этапе установите пакеты веб-интерфейса Icinga 2 и утилиты командной строки из Debian 9 с помощью следующей команды.
apt install icingaweb2 icingacliПеред тем как начать настраивать Icinga 2 из веба, перезапустите демон Icinga 2, чтобы учесть все изменения, и проверьте статус приложения, выполнив следующую команду.
systemctl restart icinga2.servicesystemctl status icinga2.serviceЗатем удалите файл index.html по умолчанию, установленный веб-сервером Apache в путь веб-корня, и также удалите ранее созданный файл info.php.
rm /var/www/html/index.htmlrm /var/www/html/info.phpТеперь установите схему MySQL для базы данных Icinga, выполнив следующую команду. Схема базы данных MySQL находится в директории /usr/share/icinga2-ido-mysql/schema/.
mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sqlЧтобы выполнить установку Icinga 2 из веба, сгенерируйте токен установки с помощью следующей команды. Убедитесь, что вы записали этот токен, потому что мы запишем его позже в веб-интерфейсе, когда будет запрошено.
icingacli setup token create
Если вы не можете найти этот токен позже, вы можете выполнить следующую команду, чтобы показать сгенерированный токен.
icingacli setup token show
Теперь продолжите процесс установки веб-интерфейса Icinga2, открыв браузер и перейдя по IP-адресу вашего сервера или доменному имени через протокол HTTP по следующему URL.
http://your_domain.tld/icingaweb2/setup
На первом экране установки вас попросят записать токен, сгенерированный ранее, чтобы начать процесс установки, как показано на скриншоте ниже. После того как вы добавите свой токен, нажмите кнопку Далее, чтобы продолжить процесс установки.

На следующем экране установки вас попросят включить некоторые модули для установки Icinga 2 веб. Выберите модули Doc и Monitoring и нажмите кнопку Далее, чтобы продолжить, как показано на изображении ниже.

Затем установщик Icinga2 выполнит ряд проверок системных и PHP-модулей, чтобы определить, выполнены ли все требования для продолжения процесса установки. Прокрутите вниз до списка всех необходимых PHP-модулей, установленных и правильно настроенных, и нажмите кнопку Далее, чтобы перейти к следующему разделу установки, как показано на изображениях ниже.


На следующем экране выберите Базу данных в качестве метода аутентификации для Icinga Web 2 и нажмите кнопку Далее, чтобы продолжить.

На следующем этапе добавьте имя базы данных MySQL для Icinga 2 и учетные данные доступа к этой базе данных. Эта база данных будет использоваться для хранения пользователей и групп веб-интерфейса Icinga 2. Используйте информацию о базе данных для второй базы данных, созданной ранее. Добавьте icingaweb_db в качестве имени для этого ресурса и оставьте переменные Хост, Порт и Кодировка по умолчанию. Не отмечайте опции Постоянный и SSL и нажмите кнопку Проверить конфигурацию, чтобы проверить соединение с базой данных, как показано на изображении ниже. Когда закончите, нажмите кнопку Далее, чтобы перейти к следующему разделу установщика.

Теперь задайте имя для базы данных аутентификации и нажмите кнопку Далее, чтобы продолжить, как показано на скриншоте ниже.

На следующем экране укажите имя администратора для управления веб-интерфейсом Icinga2 и выберите надежный пароль для этой учетной записи. Когда закончите, нажмите кнопку Далее, чтобы перейти к следующему экрану установки.

Настройте приложение Icinga и конфигурацию журналирования со следующими настройками, и когда закончите, нажмите кнопку Далее, чтобы продолжить.
- Проверьте Показать трассировки
- Тип хранения = База данных
- Тип журналирования = Файл
- Уровень журналирования = Ошибка
- Путь к файлу = /var/log/icingaweb2/icingaweb2.log

На следующем экране появится сообщение, информирующее вас о том, что Icinga Web2 был успешно настроен, и подробный отчет отобразит все настройки, сделанные до сих пор. Просмотрите отчет и нажмите кнопку Далее, чтобы продолжить к следующему разделу установки.

Нажмите кнопку Далее, чтобы перейти к настройке модуля мониторинга Icinga 2, как показано на изображении ниже.

На следующем экране добавьте имя для Icinga2 Backend, выберите IDO в качестве типа бэкенда и нажмите кнопку Далее, чтобы продолжить.

Вернитесь к консоли сервера, откройте и отредактируйте файл конфигурации Icinga MySQL IDO и добавьте учетные данные базы данных Icinga (информацию о первой базе данных), как показано в следующем примере.
nano /etc/icinga2/features-enabled/ido-mysql.confФрагмент файла ido-mysql.conf:
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "icinga_pass",
host = "localhost",
database = "icingadb"
}
Сохраните файл и перезапустите демон Icinga2, чтобы применить настройки, выполнив следующую команду. После этого вернитесь к веб-интерфейсу Icinga и продолжите процесс установки.
systemctl restart icinga2.serviceДобавьте информацию о базе данных Icinga, чтобы настроить среду ресурса IDO. Используйте информацию о базе данных для первой созданной базы данных, как показано на изображении ниже. После того как вы закончите редактировать информацию о базе данных, нажмите кнопку Проверить конфигурацию, чтобы проверить ресурс Icinga Monitoring IDO, и нажмите кнопку Далее, чтобы перейти к следующему экрану установки.

Настройте транспорт команд Icinga со следующими настройками и нажмите кнопку Далее, чтобы продолжить.
- Имя транспорта = icinga2
- Тип транспорта = Локальный файл команд
- Файл команд = /var/run/icinga2/cmd/icinga2.cmd

На следующем экране оставьте переменные по умолчанию, настроенные для безопасности мониторинга, как показано на изображении ниже, и нажмите кнопку Далее, чтобы продолжить.

На следующем экране появится новое сообщение, информирующее вас о том, что модуль мониторинга Icinga2 был успешно настроен. Просмотрите отображаемый отчет, чтобы проверить, правильно ли все настроено, и нажмите кнопку Завершить, чтобы завершить установку.

После успешного завершения процесса установки появится сообщение с поздравлением, информирующее вас о том, что Icinga Web 2 был успешно установлен. Нажмите на ссылку Войти, чтобы быть перенаправленным на страницу входа Icinga2.

Войдите в Icinga Web 2 с учетными данными, настроенными в процессе установки, и вы будете перенаправлены на панель инструментов Icinga Web 2, где вы увидите список текущих мониторируемых сервисов и ресурсов системы, принадлежащих вашему серверу.


Наконец, снова войдите в командную строку сервера и выполните следующие команды, чтобы убедиться, что журналы Icinga Web 2 будут созданы.
mkdir -p /var/log/icingaweb2/chgrp -R icingaweb2 /var/log/icingaweb2/chmod -R 775 /var/log/icingaweb2/Чтобы заставить посетителей просматривать интерфейс Icinga Web 2 через протокол HTTPS, создайте новый файл .htaccess в пути документа вашего веб-сервера со следующим содержимым.
nano /var/www/html/.htaccessФрагмент файла .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteEngine on
Options -Indexes Вот и все! Вы успешно установили и настроили приложение мониторинга Icinga 2 на Debian 9.2. Однако, поскольку веб-сервер Apache использует самоподписанные сертификаты для шифрования трафика между сервером и браузером клиента, предупреждающее сообщение всегда будет генерироваться и отображаться в вашем браузере каждый раз, когда вы получаете доступ к вашему домену. В этом случае вам следует купить сертификат, выданный доверенным центром сертификации, или получить бесплатную пару сертификатов от Let’s Encrypt CA.
Для других пользовательских конфигураций, касающихся Icinga 2, посетите страницу документации по следующему адресу: https://www.icinga.com/docs
Get new posts in your inbox
No spam. Unsubscribe anytime.