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

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

Что такое Icinga 2?

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

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

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

  1. Многие из команд в этом руководстве требуют привилегий суперпользователя. Если при использовании команды sudo появляется следующая ошибка: bash: sudo: command not found
    Вам необходимо активировать режим суперпользователя, установить команду sudo и добавить своего пользователя в группу sudo:
    1. su -
    2. apt-get install sudo -y
    3. usermod -aG sudo yourusername
  2. На виртуальном сервере должен быть установлен LAMP-стек.
  3. Обновите локальные репозитории и пакеты:
    sudo apt-get update && sudo apt-get upgrade

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

Чтобы увеличить скорость загрузки вашего приложения с помощью плагина OPCache, доступного в PHP7, добавьте следующие параметры 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 2. После появления сообщения 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.