В этой части мы произведём расширение функциональности ранее развёрнутой 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 и рассмотрим пример развёртывания клиента Icinga на Linux-хостах c Debian и CentOS.
Дополнительные источники информации:
Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 5. Отключение неиспользуемых служб клиента Icinga (классический вариант) | Блог IT-KB /
Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 6. Базовая настройка конфигурации Icinga с помощью Icinga Director | Блог IT-KB /
Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 9. Настройка e-mail оповещений в Icinga Director 1.3 | Блог IT-KB /
Добрый день. В мануале по моему закралась небольшая ошибка. В ответ на
"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"
Нет тут никакой ошибки.
Обязательно после установки php-curl перезапустить Апач. Иначе на этапе настройки модуля будет ошибка о невозможности выполнить CURL
В конце забыли написать, что нужно применить изменения
Icinga Director > Activity log > Deploy [...] changes