Icinga2 установка

Данный пример сделан на базе сборки docker icinga/icinga2

MySQL сервер

mkdir -p /srv/data/mysql
chmod 770 /srv/data/mysql
chown 999:999 /srv/data/mysql

Делаем отдельно, так как зачастую кто то еще будет юзать mysql.
docker-compose.yml

version: '3.8'

services:
  mysql:
    image: mariadb:10
    container_name: mysql
    volumes:
      - /srv/data/mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root-pass
    restart: unless-stopped
docker-compose up -d

Создаем базы данных icinga и icinga-web.

docker exec -i  mysql sh -c 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e "create database icinga; create database \`icinga-web\`"'

Инсталим Icinga

Создаем каталоги данных

mkdir -p /srv/data/icinga /srv/data/icinga-web
chmod 777 /srv/data/icinga /srv/data/icinga-web

Скачиваем архив с докер сборкой. Правим под себя. Запускаем.

docker-compose up -d

Импортируем таблички для icinga. Процесс не очень быстрый

docker exec icinga cat /usr/share/icinga2-ido-mysql/schema/mysql.sql | docker exec -i  mysql sh -c 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" icinga'

Включаем mysql

docker exec -it icinga icinga2 feature enable ido-mysql

Включаем апи

docker exec -it icinga icinga2 api setup

Правим конфиг /srv/data/icinga/etc/icinga2/features-available/ido-mysql.conf

Далее перезапускаем icinga.

Веб интерфейс

Генерим токен и сохраняем его

docker exec -it icinga-web icingacli setup token create

Подключаемся к веб интерфейсу. Базовые модули которые надо указать: Director и Monitoring

Icingadb отключаем, так как будет просить доступ к редису, да и вообще я незнаю зачем он :).

Первым дело запросит данные для базы данных. Указываем тут icinga-web. И везде кодировку utf8

Потом вводим имя пользователя и все остальное по умолчанию.

Monitoring IDO Resource тут надо указать табличку баз данных icinga.

Настройка доступа к АПИ
пользователь root пароль лежит тут /srv/data/icinga/etc/icinga2/conf.d/api-users.conf

При настройке директора запросит Endpoint Name его можно глянуть тут, как хостнейм

cat /srv/data/icinga/etc/icinga2/constants.conf

В случае с докером имя icinga . Это имя должно отдавать адрес icinga сервера. В сборке все сделано правильно, лучше не менять :).

Полезные команды

docker exec -it icinga icinga2 daemon -C - проверяем конфиги
kill -s SIGHUP `ps uax |grep "icinga2 daemon"|head -1 | awk '{print $2}'` - обновляем конфиги

Ссылки на документации

Команды
https://icinga.com/docs/icinga-2/latest/doc/10-icinga-template-library/

[ Править ]

@kiranananda