19.05.2021

Установка Icinga 2 на Ubuntu 20.04

Рассмотрим установку системы мониторинга Icinga 2 на базе Ubuntu 20.04.

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

На момент написания актуальная версия  Icinga 2.12.3.

1. Установка

1.1 Добавление репозитория

sudo su

apt-get -y install apt-transport-https wget gnupg

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

. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi;  echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" >  /etc/apt/sources.list.d/${DIST}-icinga.list; echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >>   /etc/apt/sources.list.d/${DIST}-icinga.list

apt-get update

1.2 Установка

До установки Icinga 2 я уже установил и настроил Web-сервер Apache и БД MySQL

Устанавливаем Icinga 2 и компоненты необходимые для предоставления WEB-интерфейса и хранения данных в БД MySQL

sudo apt-get install icinga2 icingaweb2 icinga2-ido-mysql snmp

Во время настройки пакета  icinga2-ido-mysql будет предложение настройки БД. Производим настройку согласно заданным вопросам конфигуратора, запросы могут отличатся в зависимости от настройки  сервера БД MySQL. Перечень запросов:


Пароль пользователя icinga2-ido-mysql

Активация модуля Icinga 2's ido-mysql

Метод подключения к БД 

Адрес хоста БД MySQL (locathost)

Номер порта сервера  БД MySQL  (3306)

Плагин аудентификации БД MySQL (default)

Имя БД (icinga2)

Имя пользователя (icinga2@localhost)

Пароль пользователя 

Все данные для подключения сохранились в файле /etc/icinga2/features-available/ido-mysql.conf

Активируем модуль подключения к БД MySQL

sudo icinga2 feature enable ido-mysql

sudo service icinga2 restart

Проверяем работу сервиса

service icinga2 status

● icinga2.service - Icinga host/service/network monitoring system

     Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)

    Drop-In: /etc/systemd/system/icinga2.service.d

             └─limits.conf

     Active: active (running) since Fri 2021-04-16 14:20:28 EEST; 33min ago

   Main PID: 145351 (icinga2)

      Tasks: 36

     Memory: 18.0M

     CGroup: /system.slice/icinga2.service

             ├─145351 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log

             ├─145412 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log

             └─145429 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log

2. Настройка доступа через ВЕб

Во время установки пакета icingaweb2 создается конфигурационный файл Apache /etc/apache2/conf-enabled/icingaweb2.conf , в котором указан алиас для директории icingaweb2. По умолчанию доступ к Web-интерфейсу Icinga2 по адресу http://myhost.org/icingaweb2

По Вашему выбору можно оставить доступ по данному адресу или перенести на отдельное доменное имя через конфигурацию Виртуальных хостов

2.1 Доступ через отдельный адрес

Для доступа к Web-интерфейсу через отдельный адрес создаем файл конфигурации Виртуального хоста /etc/apache2/sites-available/mon.conf 

<VirtualHost *:80>

                ServerAdmin webmaster@localhost

                DocumentRoot /usr/share/icingaweb2/public

                ErrorLog ${APACHE_LOG_DIR}/monpl-error.log

                CustomLog ${APACHE_LOG_DIR}/monpl-access.log combined

                ServerName mon.myhost.org

<Directory "/usr/share/icingaweb2/public">

    Options SymLinksIfOwnerMatch

    AllowOverride None

    SetEnv ICINGAWEB_CONFIGDIR "/etc/icingaweb2"

    EnableSendfile Off

    <IfModule mod_rewrite.c>

        RewriteEngine on

        RewriteBase /

        RewriteCond %{REQUEST_FILENAME} -s [OR]

        RewriteCond %{REQUEST_FILENAME} -l [OR]

        RewriteCond %{REQUEST_FILENAME} -d

        RewriteRule ^.*$ - [NC,L]

        RewriteRule ^.*$ index.php [NC,L]

    </IfModule>

    <IfModule !mod_rewrite.c>

        DirectoryIndex error_norewrite.html

        ErrorDocument 404 /error_norewrite.html

    </IfModule>

</Directory>

</VirtualHost>

Применяем изменения

sudo sudo a2disconf icingaweb2

sudo a2ensite monitoring.conf

sudo service apache2 reload

2.2 Настройка Web-интерфейса

Переходим по адресу

http://mon.myhost.org/setup или http://myhost.org/icingaweb2/setup  в зависимости от того, какой вариант доступа вы выбрали.

Во время настройки WEB-интерфейса следуем инструкции и подсказкам установщика, остановлюсь на некоторых их них.

2.2.1 Создаем токен-ключ

sudo icingacli setup token create

The newly generated setup token is: ae8bc5bbcad0b497

2.2.2 При выборе модулей оставляем значения по умолчанию 

2.2.3 Тип авторизации

На этой странице можно выбрать механизм аутентификации пользователей интерфейса. В данном случае, будет использоваться стандартная опция Database (пользователи будут храниться в БД MySQL).

2.2.4 Параметры подключения к БД

Предварительно создаем пользователя и БД. Я создал пользователя и БД icingaweb.

Заполняем данные, проверяем, нажав "Validate Configuration" и переходим к следующему экрану

Пример заполненных данных ниже

Resource Name icingaweb_db

Database Type MySQL

Host * localhost

PortThe 3306

Database Name * icingaweb

Username * icingaweb

Password * ********

Character Set __________

PersistentCheck __________

2.2.5 Создание администратора (Administration)

Вводим имя пользователя и пароль первого пользователя, он будет администратором

2.2.6 Конфигурация модулей (Application Configuration) 

Настройки ведения логов, можем изменить настройки ведения логов

2.3 Конфигурация модуля Мониторинга

2.3.1 Конфигурация подключения к БД мониторинга

Все настройки можно взять в файле  /etc/icinga2/features-available/ido-mysql.conf

2.3.2 Настройка передачи команд

В данном диалоге указывается как именно будут передаваться команды из Web-интерфейса на сервер мониторинга, Рекомендуется использовать icinga  API

Активируем   icinga2 api

sudo icinga2 api  setup

sudo service icinga2 restart

Смотрим данные для авторизации в файле /etc/icinga2/conf.d/api-users.conf

Пример файла

object ApiUser "root" {

  password = "feb9d86bd1bfa199"

  // client_cn = ""


  permissions = [ "*" ]

}

Где 

root - Имя пользователя

feb9d86bd1bfa199 - пароль

Эти данные переносим в диалог конфигурации модуля Мониторинга  icingaweb2, в качестве адреса хоста указываем localhost

После внесения данных нажимаем  "Validate Configuration", если введено все верно должны получить сообщение  "The configuration has been successfully validated."

После завершения настройки на предложит войти в Web-интерфейс, для входа используем логин пароль пользователя созданного при установке.

Web-интерфейс частично локализирован на русский язык, изменить язык интерфейса можно перейти в настройки аккаунта и выбрав нужный язык, пример на скриншоте ниже

Icinga 2 Изменение языка локализации
Изменение языка локализации

В случае получения ошибки "Your language setting is not applied because your platform is missing the corresponding locale. Make sure to install the correct language pack and restart your web server afterwards." необходимо сгенерировать соответствующую локаль на сервере, для русского языка необходимо выполнить с командной строки

sudo locale-gen ru_RU

sudo locale-gen ru_RU.UTF-8

Список доступных локализация можно посмотреть в файле /etc/locale.gen

3. Список директорий сервера

 /etc/icinga/ - директория с файлами конфигурации Icinga 2

 /etc/icinga2/conf.d/ - директория с файлами конфигурации Icinga 2, в данной директории рекомендуется хранить файлы конфигурации мониторинга, директория считывается рекурсивно

 /etc/icingaweb2/ - директория с файлами конфигурации IcingaWeb 2

 /usr/share/icingaweb2/public - директория Web-интерфейса

 /usr/share/icingaweb2/modules - директория с модулями  Web-интерфейса


Так же рекомендую ознакомится с информацией о мониторинге по протоколу SNMP данная информация по прежнему актуальна


Комментариев нет:

Отправить комментарий