Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 3. Установка Icinga Director 1.2.0

В этой части мы произведём расширение функциональности ранее развёрнутой Icinga Web 2 с помощью установки модуля Icinga Director. Этот модуль расширяет базовые возможности веб-интерфейса администрирования Icinga и позволяет тем самым облегчить управление конфигурационными файлами Icinga. Icinga Director это относительно молодой (первый релиз был объявлен в марте этого года), но динамично развивающийся модуль Icinga Web 2.

Основные предварительные требования для развёртывания модуля Icinga Director таковы:

  • Установленный Icinga версии 2.4.3 или выше.
  • Установленный Icinga Web версии 2.2.0 или выше
  • СУБД MySQL версии 5.1 или выше (поддерживаются форки, такие как MariaDB) или PostgreSQL версии 9.1 и выше
  • Модуль PHP php5-curl

Все вышеперечисленные условия нами уже выполнены в первой и второй части.

 

Создание и подключение базы данных для Icinga Director

Создадим пустую БД для Icinga Director. В нашем случае используется MySQL, поэтому команды создания будут следующие:

# mysql -u root -p
mysql> CREATE DATABASE directordb CHARACTER SET 'utf8';
mysql> GRANT ALL ON directordb.* TO 'directordb-usr'@'localhost' IDENTIFIED BY 'D1rect0rUsRPa$sw0rd';
mysql> quit

После этого перейдём в веб-консоль Icinga Web 2 и в структуре навигации выберем Configuration > Application > вкладка Resources. Здесь с помощью кнопки Create a New Resource создадим запись о новом ресурсе с типом SQL Database, который будет ссылаться на базу данных, которую мы только что создали в MySQL:

После ввода данных о созданной БД жмём кнопку проверки подключения Validate Configuration. В случае успешного подключения в верхней-части веб-страницы появится соответствующая информация:

После этого сохраняем новый ресурс БД нажав кнопку Save Changes.

 

Установка модуля Icinga Director

Установка модуля Icinga Director это простая процедура копирования файлов модуля в каталог модулей. Расположение каталога модулей можно подсмотреть в веб-консоли Icinga Web 2 перейдя в меню навигации в Configuration > Application - на вкладке General параметр Module Path:

По умолчанию каталог модулей имеет путь /usr/share/icingaweb2/modules/. В этом каталоге нам нужно будет создать подкаталог с именем director (имя каталога должно быть именно таким и никаким другим, это требование разработчиков модуля) и в него скопировать файлы модуля. Сделать это можно либо просто загрузив файлы модуля с помощью wget, либо клонировать файлы с GitHub с помощью утилиты git:

# apt-get install git -y
# mkdir /usr/share/icingaweb2/modules/director
# git clone --depth=1 https://github.com/Icinga/icingaweb2-module-director.git /usr/share/icingaweb2/modules/director

 

Активация Icinga API

Так как модуль Icinga Director в своей работе использует Icinga API, то перед включением модуля нам необходимо включить поддержку API. Включение API подразумевает автоматическое создание служебного центра сертификации, генерацию сертификата узла для сервера Icinga и создание специального API-пользователя root. Включение API выполняется командой:

# icinga2 api setup

После этого перезапустим службу icinga2 и убедимся в том, что в системе создан TCP-прослушиватель Icinga API на порту 5665:

# systemctl restart icinga2
# netstat -nap | grep 5665

tcp    0   0 0.0.0.0:5665    0.0.0.0:*     LISTEN      4808/icinga2

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

# iptables -A INPUT -p tcp --dport 5665 -j ACCEPT -m comment --comment "Icinga API"
# iptables-save > /etc/iptables.conf

В дальнейшем нам потребуется пароль API-пользователя root, который был сгенерирован в процессе включения Icinga API. Найти эту информацию можно в файле /etc/icinga2/conf.d/api-users.conf:

# cat /etc/icinga2/conf.d/api-users.conf

/**
 * The APIUser objects are used for authentication against the API.
 */
object ApiUser "root" {
  password = "aa05ac8856b7c1b3"
  // client_cn = ""
  permissions = [ "*" ]
}

 

Конфигурация модуля Icinga Director

В веб-консоли Icinga Web 2 перейдём в раздел Configuration > Modules, выберем модуль director и включим его, щелкнув по ссылке enable

После того, как модуль включен, прейдём на вкладку Configuration и выполним настройку модуля. Для этого сначала выберем из выпадающего списка ресурсов БД добавленный нами ранее ресурс (director_db),  связанный в базой данных MySQL и нажмём кнопку Store configuration: 

После этого нам сообщат о том, что ассоциированная база данных пуста и не имеет схемы и предложат создать эту схему. Жмём кнопку Create database schema:

После создания схемы в базе данных веб-страница обновится и нам будет предложено ввести данные для подключения модуля Director к Icinga API нашего сервера.

В качестве значения Endpoint Name нужно использовать имя Common Name (CN) из SSL-сертификата, который был сгенерирован в процессе включения Icinga API (путь к этому сертификату виден на скриншоте с выполнением команды icinga2 api setup):

# openssl x509 -noout -subject -in /etc/icinga2/pki/KOM-AD01-MON20.holding.com.crt

subject= /CN=KOM-AD01-MON20.holding.com

По умолчанию в качестве CN для SSL-сертификата используется FQDN-имя сервера, на котором выполняется включение Icinga API.

В качестве Icinga Host и Port указываем всё то же имя нашего сервера Icinga и порт Icinga API, который мы ранее открывали в брандмауэре.

В поля API User и Password вписываем учётные данные полученные нами ранее из файла /etc/icinga2/conf.d/api-users.conf.

После жмём кнопку Run Import

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

  

Выбрав этот пункт меню, мы получим доступ к расширенному набору инструментов управления конфигурацией Icinga 2:

Icinga Director Overview

***

На этом пока всё. В следующей части мы немного поговорим о клиент-серверной архитектуре Icinga и рассмотрим пример развёртывания клиента Icinga на Linux-хостах c Debian и CentOS.

 

Дополнительные источники информации:

Всего комментариев: 7 Комментировать

  1. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 5. Отключение неиспользуемых служб клиента Icinga (классический вариант) | Блог IT-KB /

  2. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 6. Базовая настройка конфигурации Icinga с помощью Icinga Director | Блог IT-KB /

  3. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 9. Настройка e-mail оповещений в Icinga Director 1.3 | Блог IT-KB /

  4. Роман Кулакович /

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

    "openssl x509 -noout -subject -in /etc/icinga2/pki/KOM-AD01-MON20.holding.com.crt"

    выводится ответ:

    "subject= /CN=KOM-AD01-MON20.holding.com"

    Наверное должно быть:

    "subject=CN = KOM-AD01-MON20.holding.com"

    1. Алексей Максимов / Автор записи

      Нет тут никакой ошибки.

  5. Алексей /

    Обязательно после установки php-curl перезапустить Апач. Иначе на этапе настройки модуля будет ошибка о невозможности выполнить CURL

  6. Вячеслав /

    В конце забыли написать, что нужно применить изменения
    Icinga Director > Activity log > Deploy [...] changes

Добавить комментарий