09.08.2022

Установка Icinga 2 на Debian 9

В этом руководстве показано как установить и настроить инструмент для мониторинга сетевой инфраструктуры Icinga 2 в Debian 9.

Что такое Icinga 2?

Icinga представляет собой приложение для мониторинга с открытым исходным кодом, которое можно использовать для наблюдения за критически важными службами и системами на вашем виртуальном сервере. Icinga 2 может отслеживать хосты в сети или проверять внешние сетевые протоколы, такие как состояние HTTP-сервера, почтового сервера, службы обмена файлами и другие.

Icinga 2 можно настроить для мониторинга состояния внутренних систем, для проверки загрузки, памяти, свободного места на диске или других внутренних параметров хостов. Icinga также можно настроить для отправки уведомлений и оповещений по электронной почте или в SMS- системным администраторам, указанным в контактах.

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

Многие из команд в этом руководстве требуют привилегий суперпользователя. Если при использовании команды sudo появляется ошибка bash: sudo: command not found, вам необходимо активировать режим суперпользователя, установить команду sudo и добавить своего пользователя в группу sudo:

su -
apt-get install sudo -y
usermod -aG sudo yourusername

На виртуальном сервере должен быть установлен LAMP-стек.
Обновите локальные репозитории и пакеты:

sudo apt-get update && sudo apt-get upgrade

Использование OPCache для увеличения скорости загрузки

Чтобы увеличить скорость загрузки вашего приложения с помощью плагина OPCache, доступного в PHP 7, добавьте следующие параметры OPCache в конец файла конфигурации PHP:

vi /etc/php/7.0/apache2/php.ini

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

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

Перезапустите Apache, чтобы изменения вступили в силу:

systemctl restart apache2

Настройка баз данных

Установите СУБД, необходимую веб-приложению Icinga 2 для мониторинга, и интерфейсу Icinga Web 2 для хранения пользователей, контактов и других собранных данных. Выполните следующую команду, чтобы установить базу данных MariaDB и модуль PHP, необходимые для доступа к базе данных MySQL в Debian 9:

apt install php7.0-mysql mariadb-server mariadb-client

Войдите в консоль MySQL и защитите учетную запись суперпользователя MariaDB:

mysql -h localhost

use mysql;

update user set plugin='' where user='root';

flush privileges;

exit

Далее выполните сценарий безопасности MySQL:

sudo mysql_secure_installation

Войдите в консоль базы данных и создайте базу данных для Icinga 2:

mysql -p

Создайте пользователя с надежным паролем для управления базой данных приложения Icinga 2, введя команды ниже. В этом примере необходимо заменить icingadb, icinga-user и strongpassword своим собственным именем базы данных и учетными данными:

create database icingadb;
grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'strongpassword';
flush privileges;

Создайте вторую базу данных MySQL, используемую Icinga 2 Web для хранения пользователей и групп. Как и в предыдущем шаге замените имя базы данных и учетные данные. Вы можете использовать одну и ту же учетную запись пользователя MySQL для одновременного управления обеими базами данных (icinga_user'@'localhost):

create database icinga_users;
grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'strongpassword';
exit

Установка Icinga 2

Установите Icinga 2 и модуль Icinga 2 MySQL для доступа к базе данных MariaDB:

apt install icinga2 icinga2-ido-mysql

Во время установки возникнет вопрос использования модуля MySQL. Выберите Yes в командной строке:

 

После установки Icinga 2 запустите службу Icinga 2 и проверьте состояние демона:

systemctl start icinga2.service

systemctl status icinga2.service

Установка веб-интерфеqса Icinga 2

Для управления Icinga 2 через веб-интерфейс установите пакеты веб-интерфейса Icinga 2 и интерфейса командной строки (CLI):

apt install icingaweb2 icingacli

Перезапустите демон Icinga 2 и проверьте его статус:

systemctl restart icinga2.service

systemctl status icinga2.service

Для установки схемы MySQL требуется база данных Icinga 2:

mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Откройте файл конфигурации Icinga 2 MySQL IDO:

vi /etc/icinga2/features-enabled/ido-mysql.conf

Добавьте учетные данные базы данных Icinga 2 как показано на примере ниже. Используйте учетные данные первой базы данных, созданной на предыдущем этапе создания базы данных:

library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "strongpassword",
host = "localhost",
database = "icingadb"
}

Сохраните файл и перезапустите демон Icinga 2:

systemctl restart icinga2.service

Создайте каталог журналов Icinga Web 2 и добавьте соответствующие разрешения файловой системы, чтобы предоставить разрешения записи групп:

mkdir -p /var/log/icingaweb2/

chgrp -R icingaweb2 /var/log/icingaweb2/

chmod -R 775 /var/log/icingaweb2/

Настройте Icinga 2 через веб-интерфейс

Сгенерируйте токен установки. Сохраните его в легкодоступном месте. Вам нужно будет использовать его для доступа к настройке Icinga 2:

icingacli setup token create

Вывод этой команды должен быть примерно таким:

The newly generated setup token is: c0f22932e763ac41

Примечание: показать сгенерированный токен, если вы его забыли, можно с помощью команды:

icingacli setup token show

Откройте порт HTTP для подключения к веб-интерфейсу:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Откройте браузер и перейдите по адресу http://exampleIP/icingaweb2/setup. Замените exampleIP на IP-адрес вашего виртуального сервера. На первом этапе установки добавьте токен, созданный ранее:

На следующем экране отметьте галочкой модули Doc и Monitoring и нажмите Next для продолжения:

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

Прокрутите вниз до конца страницы и нажмите Далее, чтобы продолжить:

В качестве типа аутентификации выберите Database:

Используйте информацию из второй базы данных, созданной ранее, чтобы добавить учетные данные, необходимые для доступа к базе данных Icinga 2 для хранения пользователей и групп.

В качестве имени для этого ресурса используйте icingaweb_db.

Параметры Host и Port должны иметь значения localhost и 3306 соответственно. Не включайте постоянные и SSL-опции. Нажмите кнопку Validate configuration, чтобы подтвердить базу данных. После успешной проверки базы данных нажмите Next, чтобы перейти к следующему этапу процесса настройки Icinga 2:

Определите имя для базы данных аутентификации и нажмите Next:

Добавьте имя пользователя с надежным паролем для входа в веб-интерфейс Icinga 2 и нажмите Next:

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

  • Отметьте Show Stacktraces;
  • Storage Type = Database;
  • Logging Type = File;
  • Logging Level = Error;
  • File path = /var/log/icingaweb2/icingaweb2.log.

Просмотрите информационный отчет и, если ошибок нет, нажмите Next для продолжения:

В следующем окне нажмите Next для продолжения:

Добавьте имя для Icinga 2 Backend, выберите IDO в качестве Backend Type и нажмите Next:

Добавьте учетные данные базы данных для настройки среды ресурса IDO. После добавления нажмите кнопку Validate Configuration, чтобы проверить ресурс IDO мониторинга Icinga.

После появления сообщения Successfully validated нажмите Next:

Выполните настройку транспортного модуля, используя следующие параметры:

Transport Name = icinga2
Transport Type = Local Command File
Command File = /var/run/icinga2/cmd/icinga2.cmd

Настройте переменные среды безопасности мониторинга (можно оставить значения по умолчанию):

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

После завершения процесса установки и настройки появится сообщение о том, что Icinga Web 2 успешно настроена:

Выполните вход в панель Icinga 2 по адресу http://exampleIP/icingaweb2/authentication/login:

Вы будете перенаправлены в панель управления Icinga Web 2, где вы увидите службы и ресурсы виртуального сервера, которые в настоящее время отслеживаются механизмом Icinga 2:

Вы успешно установили, а также настроили приложение мониторинга Icinga 2 и интерфейс Icinga Web 2 в Debian 9.