02.08.2018

Icinga2. Установка Icinga Director

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

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


Icinga Director - модуль для визуальной настройки конфигурации системы мониторинга Icinga2.  Данный модуль поддерживает журналирование изменений, что позволяет в любой момент вернуться к предыдущим вариантам конфигурации (при работе с текстовыми файлами также есть возможность вести контроль версий, например, посредством сервера SVN ....). Для обмена данными Icinga Director использует Icinga Api.

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

Требования


  • Icinga 2 - версия от 2.6.0, согласно данным с официального сайта, допустимо использовать 2.4.3
  • Icinga Web 2 - версия от 2.4.1, допустимо 2.2
  • БД Mysql от 5.1 или PostgreSQL от 9.1
  • PHP от 5.4, рекомендуется использовать PHP 7
  • Модуль расширения php-curl

1. Создание пользователя и БД Mysql

Создаем БД и пользователя icingadirector с паролем icingadirectorpass

mysql -p -e "create database icingadirector; create user icingadirector@localhost identified by 'icingadirectorpass'; grant all on icingadirector.* to icingadirector@localhost; flush privileges;"

Я создаю БД и пользователя mysql: icingadirector с паролем icingadirectorpass.

2. Добавляем новый ресурс SQL в Icinga Web

Переходим в Web-интерфейсе Icinga2 Configuration >Application > вкладка Resources

Нажимаем кнопку "Create a New Resource", создаем ресурс БД icinga_director, вводим данные БД и пользователя, обязательно нужно указать кодировку utf8

После заполнения полей нажимаем "Validate Configuration"

Если не возникло ошибок, сохраняем ресурс, нажав "Save Changes"


3. Активация Icinga API

Для работы модуля необходима поддержка Icinga Api

Включаем:

$ sudo icinga2 api  setup

information/cli: Generating new CA.

information/base: Writing private key to '/var/lib/icinga2/ca/ca.key'.

information/base: Writing X509 certificate to '/var/lib/icinga2/ca/ca.crt'.

information/cli: Generating new CSR in '/etc/icinga2/pki/syslog.csr'.

information/base: Writing private key to '/etc/icinga2/pki/syslog.key'.

information/base: Writing certificate signing request to '/etc/icinga2/pki/syslog.csr'.

information/cli: Signing CSR with CA and writing certificate to '/etc/icinga2/pki/syslog.crt'.

information/cli: Copying CA certificate to '/etc/icinga2/pki/ca.crt'.

information/cli: Adding new ApiUser 'root' in '/etc/icinga2/conf.d/api-users.conf'.

information/cli: Enabling the 'api' feature.

Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.

Done.

Now restart your Icinga 2 daemon to finish the installation!

Перезапускаем Icinga2

sudo service icinga2 restart

Проверяем, что Icinga API активировалось

$ sudo netstat -anp | grep icinga2 | grep LISTEN

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

Во время активации  Icinga Api происходит создание сертификатов и внутреннего пользователя

Смотрим данные на созданного пользователя API

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

/**

 * The APIUser objects are used for authentication against the API.

 */

object ApiUser "root" {

  password = "b96598f222390be1"

  // client_cn = ""

  permissions = [ "*" ]

}

При необходимости Вы можете изменить имя пользователя, пароль или же создать нового пользователя.

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

По умолчанию каталог модулей имеет путь /usr/share/icingaweb2/modules/

Создаем в нем каталог director , для данного плагина требование, чтобы каталог имел такое название

sudo mkdir /usr/share/icingaweb2/modules/director

Большинство модулей Icinga2 выложены на GitHub https://github.com/Icinga. Для того, чтобы поучать модули, необходимо установить клиент, если он у Вас установлен, переходим дальше

sudo apt-get install git

Скачиваем модуль

$ sudo git clone --depth=1 https://github.com/Icinga/icingaweb2-module-director.git /usr/share/icingaweb2/modules/director

Клонирование в «/usr/share/icingaweb2/modules/director»…

remote: Counting objects: 1096, done.

remote: Compressing objects: 100% (969/969), done.

remote: Total 1096 (delta 244), reused 514 (delta 97), pack-reused 0

Получение объектов: 100% (1096/1096), 2.66 MiB | 1.59 MiB/s, готово.

Определение изменений: 100% (244/244), готово.

Проверка соединения… готово.

Альтернативой скачиванию через Git является возможность скачать архив https://github.com/Icinga/icingaweb2-module-director/archive/master.zip и распаковать его в нашу директорию.

5. Активация и конфигурация модуля Icinga Director

Дальнейшая работа по настройке модуля происходит через Web-интерфейс Icinga2

Переходим Configuration >Modules 

Выбираем модуль director и активируем его нажав "enable"


Переходим во вкладку "Configuration" модуля

Выбираем ранее созданный ресурс БД icinga_director и нажимаем "Create database schema"

на следующем этапе у нас запрашивает данные для подключения к Icinga API

Endpoint Name - указываем Common Name (CN) из SSL-сертификата, который был сгенерирован в процессе активации Icinga API. Посмотреть можно следующей командой:

ls -1 /etc/icinga2/pki/*.crt | grep -v ca.crt | xargs openssl x509 -noout -subject -in

или

ls -1 /var/lib/icinga2/certs/*.crt | grep -v ca.crt | xargs openssl x509 -noout -subject -in

в зависимости от версии пакета icinga2.

Начиная с версии Icinga2 2.8.0, каталог для хранения сертификатов перемещен с /etc/icinga2/pki в /var/lib/icinga2/certs

Icinga Host - адрес хоста, допускается использовать localhost, если Web-интерфейс и сервер Icinga находятся на одном хосте

  • Port - 5665, значение по умолчанию
  • API user - root, если Вы не производили изменений
  • Password - пароль пользователя API

Данные для заполнения полей API user и Password можно посмотреть в файле

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

После заполнения полей нажимаем "Run Import"

На этом установка и первоначальная настройка модуля  Icinga Director завершена

Теперь вы можете перейти в модуль и продолжить настройку мониторинга.

Повторно обращаю Ваше внимание: Вы не сможете редактировать существующую конфигурацию, которая находится в  /etc/icinga2/conf.d/

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

Использованные материалы:

https://www.icinga.com/docs/icinga2/latest/doc/12-icinga2-api/

https://www.icinga.com/docs/director/latest/doc/02-Installation/

https://github.com/Icinga/icingaweb2-module-director/issues

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

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