Добавление хостов в Icinga2 через Icinga Director
Важно: сохранены оригинальные пути изображений; подменены только тексты ALT на понятные описания на русском языке.
О чём этот материал
- Цель: научиться добавлять хосты и настроить базовый мониторинг служб (SSH, HTTP, APT, загрузка системы, диск) через Icinga Director.
- Кому полезно: системным администраторам, инженерам по мониторингу, DevOps-инженерам.
Варианты запроса (SEO-формулировки)
- Добавление хостов в Icinga2
- Настройка Icinga Director
- Развертывание агента Icinga2 на Ubuntu
- Шаблоны служб и ServiceSet в Icinga Director
Предпосылки
- Установлен Icinga2 на сервере мониторинга.
- Модуль Icinga Director включён и настроен.
- Доступ администратора к веб-интерфейсу Icinga Web 2.
- На клиенте — Ubuntu 18.04 (в примере), доступ по SSH.
Полезная документация: https://icinga.com/docs/director/latest/
Что мы сделаем
- Создадим шаблоны служб.
- Объединим шаблоны в ServiceSet.
- Создадим шаблон хоста и прикрепим ServiceSet.
- Добавим хост в Icinga2 через Director.
- Развернём агент на клиенте.
- Проверим и протестируем мониторинг.
Шаг 1 — Создание шаблона службы
Сначала нужно определить, какие сервисы мы будем мониторить. В примере используются: SSH, HTTP, проверка обновлений APT, загрузка системы и использование диска.
- Войдите в Icinga Web 2 под администратором и откройте меню Icinga Director.
- В меню Services выберите Service Templates и нажмите Add, чтобы создать новый шаблон.

- Заполните поля шаблона — имя, описание, команду проверки и параметры (пример для SSH показан ниже).

- Нажмите Add. Повторите для всех нужных служб: HTTP, APT, System Load, Disk Usage.

Примечание: при создании шаблонов указывайте параметры проверки (timeout, критические/варнинговые пороги) понятными значениями, чтобы избежать шумов в алертах.
Шаг 2 — Создание ServiceSet и добавление шаблонов
ServiceSet позволяет сгруппировать шаблоны служб и привязать набор к шаблону хоста.
- В разделе Services выберите ServiceSet и нажмите Add.

- Задайте имя Service Set и описание, например basic-services-ubuntu.

- Откройте созданный ServiceSet, вкладку Services и нажмите Add Service. В поле Import укажите имя шаблона службы и добавьте его.

- Повторите для всех шаблонов.

Совет: именуйте ServiceSet так, чтобы по имени было понятно назначение (os-version, role, env).
Шаг 3 — Создание шаблона хоста и привязка ServiceSet
- В меню Director откройте Hosts → Host Templates и нажмите Add.

- Заполните шаблон хоста (например ubuntu-template): имя, шаблон операционной системы, параметры агентов, группы хостов.

- После создания откройте шаблон и на вкладке Service добавьте Service Set basic-services-ubuntu.


Результат: шаблон хоста содержит набор сервисов, который автоматически применится ко всем хостам, созданным с этим шаблоном.
Шаг 4 — Добавление хоста на сервер Icinga2 через Director
В примере добавляем Ubuntu Server 18.04: hostname client1.hakase-labs.io, IP 10.5.5.21.
- В Icinga Director откройте Hosts и нажмите Add.

- Выберите шаблон basic-ubuntu и заполните поля хоста (имя, адрес, переменные, группы).

- Нажмите Add. Перейдите в Activity Log и нажмите Deploy Pending Changes, чтобы применить конфигурацию на сервере.

После успешного деплоя хост появится в списке и будет ожидать подключения агента.
Шаг 5 — Инициализация клиентского хоста (развертывание агента)
На клиенте (client1) установим пакеты Icinga2 и запустим скрипт развертывания агента, сгенерированный в Director.
- Подключитесь к серверу клиента:
ssh root@client1- Отредактируйте /etc/hosts и добавьте записи для сервера мониторинга и клиента:
10.5.5.20 icinga2.hakase-labs.io icinga2
10.5.5.21 client1.hakase-labs.io client1- Добавьте ключ репозитория Icinga и добавьте репозиторий:
curl https://packages.icinga.com/icinga.key | apt-key add -
cd /etc/apt/sources.list.d/
vim icinga2.listВставьте:
deb http://packages.icinga.com/ubuntu icinga-bionic main
deb-src http://packages.icinga.com/ubuntu icinga-bionic main- Обновите пакеты и установите Icinga2 и monitoring-plugins:
sudo apt update
sudo apt install icinga2 monitoring-plugins- В веб-интерфейсе Director откройте созданный хост и перейдите на вкладку Agent. Скопируйте скрипт для Linux и сохраните его на клиенте в deploy-agent.sh:
vim deploy-agent.sh
# Вставьте скрипт из Icinga Director
chmod +x deploy-agent.sh
./deploy-agent.sh
- После выполнения скрипта перезапустите сервис:
systemctl restart icinga2
Теперь агент подключён и сервер мониторинга может собирать метрики.
Шаг 6 — Тестирование и валидация
- В Icinga Web 2 откройте Overview → Hosts. Оба хоста (сервер мониторинга и client1) должны быть в статусе UP.

- Откройте страницу client1, проверьте Summary и вкладку Services, чтобы увидеть применённые шаблоны и статусы проверок.


Если проверки в WARN/CRIT, проверьте пороги в шаблонах и сетевую доступность.
Критерии приёмки
- Хост виден в Icinga Web 2 и имеет статус UP.
- Все сервисы из ServiceSet отображаются и имеют рабочий статус или ожидают метрик.
- Агент установлен на хосте и сервис icinga2 активен.
- Изменения задеплоены через Activity Log без ошибок.
Плейбук: быстрое действие (SOP)
- Создать Service Templates (SSH, HTTP, APT, Load, Disk).
- Создать ServiceSet и добавить шаблоны.
- Создать Host Template и прикрепить ServiceSet.
- Добавить Host → заполнить адрес и шаблон.
- Deploy pending changes в Activity Log.
- На клиенте установить пакеты и выполнить deploy-agent.sh.
- Перезапустить icinga2 и проверить статус в Overview.
Ролевые чеклисты
Администратор мониторинга:
- Проверить доступ к Icinga Web 2.
- Создать шаблоны и ServiceSet.
- Верифицировать деплой конфигураций.
Системный администратор клиента:
- Обеспечить доступ SSH к клиенту.
- Добавить записи в /etc/hosts.
- Установить пакеты и запустить скрипт агента.
Оператор/On-call:
- Проверить состояние услуг в Icinga.
- При инциденте выполнять шаги из runbook раздела.
Runbook инцидента: агент не приходит в UP
- Проверить, запущен ли icinga2 на клиенте: systemctl status icinga2.
- Проверить логи агента: journalctl -u icinga2 -n 200.
- Убедиться, что клиента и сервер видят друг друга (ping, nc -z port).
- Проверить TLS-сертификаты и конфигурацию zones.conf.
- Если скрипт развертывания не прошёл — повторно сгенерировать и применить его.
- После исправления — перезапустить агента и проверить состояние в веб-интерфейсе.
Типичные ошибки и способы устранения
- Ошибка DEPLOY: проверьте синтаксис конфигураций в /etc/icinga2 и журналы в /var/log/icinga2.
- Agent не подключается: проверьте network (firewall, port 5665), /etc/hosts, правильность FQDN.
- Сервисы остаются в UNKNOWN: убедитесь, что команды проверки доступны на клиенте (monitoring-plugins).
Безопасность и рекомендации по защите
- Ограничьте доступ к Icinga Web 2 по IP или VPN.
- Развертывайте агенты по защищённым каналам. Icinga2 использует TLS; проверьте ключи и зоны.
- Устанавливайте обновления пакетов и мониторинговых плагинов.
- Минимизируйте привилегии скриптов, выполняемых на клиентах.
Тестовые сценарии и критерии приёмки
- TC-01: После развертывания агент подключается, статус host UP.
- Ожидаемый результат: host статус UP в Icinga Web 2.
- TC-02: Проверка SSH возвращает OK при запущенном sshd.
- Ожидаемый результат: сервис SSH OK.
- TC-03: Проверка использования диска возвращает WARN если свободно < 10%.
- Ожидаемый результат: соответствующий статус согласно порогам.
Шпаргалка команд
- Перезапуск агента: systemctl restart icinga2
- Проверить статус: systemctl status icinga2
- Просмотреть логи: journalctl -u icinga2 -n 200
- Деплой в Director: Activity Log → Deploy Pending Changes
Ментальные модели и принятие решений
- «Шаблоны сначала»: сначала проектируем шаблоны сервисов, затем соединяем их в ServiceSet и применяем к шаблонам хостов. Это позволяет масштабировать.
- «Минимальный рабочий набор»: стартовый ServiceSet должен содержать критичные проверки (SSH, загрузка, диск, HTTP), чтобы быстро обнаруживать проблемы.
Советы по миграции и совместимости
- При переносе с другой системы мониторинга сперва импортируйте только ключевые проверки.
- Проверяйте версии плагинов и команд: monitoring-plugins на клиенте должна соответствовать используемым проверкам.
Короткая методология внедрения
- Проектирование: определить набор метрик и пороги.
- Реализация: создать шаблоны и ServiceSet.
- Развёртывание: добавить хосты и развернуть агенты.
- Валидация: тесты и приёмка.
- Эксплуатация: мониторинг и регулярный обзор порогов.
Мини-словник (1 строка каждое)
- Icinga2: система мониторинга и оповещений.
- Icinga Director: модуль для управления конфигурацией Icinga через веб-интерфейс.
- ServiceSet: набор шаблонов служб, применяемый к хостам.
- Агент (Icinga2 agent): компонент, собирающий метрики на клиенте.
Пример решения: диаграмма принятия решения
flowchart TD
A'Новый хост готов?' -->|Да| B{Создать шаблон?}
A -->|Нет| Z[Подготовить хост: сеть, SSH]
B -->|Да| C[Создать Host Template]
B -->|Нет| C
C --> D[Добавить ServiceSet]
D --> E[Создать Host в Director]
E --> F[Deploy Changes]
F --> G[Развернуть агент на хосте]
G --> H[Проверить состояние в Overview]
H --> I{OK?}
I -->|Да| J[Закрыть задачу]
I -->|Нет| K[Runbook: устранить причину]Заключение
Мы прошли весь цикл: от проектирования шаблонов до развёртывания агента и проверки работы мониторинга. Такой подход даёт повторяемую и масштабируемую конфигурацию. Для продакшена дополните набор проверок метриками покрывающими критичные пути вашего приложения и настройте оповещения и SLI/SLO по бизнес-требованиям.
Ресурсы и ссылки
- Icinga Director docs: https://icinga.com/docs/director/latest/
- Репозиторий модуля: https://github.com/Icinga/icingaweb2-module-director
Краткое резюме
- Создайте шаблоны служб, объедините их в ServiceSet.
- Создайте шаблон хоста и привяжите ServiceSet.
- Добавьте хост через Director и задеплойте конфигурацию.
- На клиенте установите агент и проверьте статусы в Icinga Web 2.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента