Гид по технологиям

Добавление хостов в Icinga2 через Icinga Director

• 7 min read • Мониторинг. • Обновлено 22 Nov 2025
Добавление хостов в Icinga2 через Icinga Director
Добавление хостов в 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, загрузка системы и использование диска.

  1. Войдите в Icinga Web 2 под администратором и откройте меню Icinga Director.
  2. В меню Services выберите Service Templates и нажмите Add, чтобы создать новый шаблон.

Создание шаблона службы

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

Детали шаблона службы

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

Список шаблонов

Примечание: при создании шаблонов указывайте параметры проверки (timeout, критические/варнинговые пороги) понятными значениями, чтобы избежать шумов в алертах.


Шаг 2 — Создание ServiceSet и добавление шаблонов

ServiceSet позволяет сгруппировать шаблоны служб и привязать набор к шаблону хоста.

  1. В разделе Services выберите ServiceSet и нажмите Add.

Создание ServiceSet

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

Детали ServiceSet

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

Добавление службы в ServiceSet

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

Шаблоны добавлены в ServiceSet

Совет: именуйте ServiceSet так, чтобы по имени было понятно назначение (os-version, role, env).


Шаг 3 — Создание шаблона хоста и привязка ServiceSet

  1. В меню Director откройте Hosts → Host Templates и нажмите Add.

Шаблоны хостов

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

Добавление шаблона хоста

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

Добавление ServiceSet к шаблону хоста

Выбор ServiceSet

Результат: шаблон хоста содержит набор сервисов, который автоматически применится ко всем хостам, созданным с этим шаблоном.


Шаг 4 — Добавление хоста на сервер Icinga2 через Director

В примере добавляем Ubuntu Server 18.04: hostname client1.hakase-labs.io, IP 10.5.5.21.

  1. В Icinga Director откройте Hosts и нажмите Add.

Добавление хоста

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

Добавление нового хоста в Icinga

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

Журнал активности и развертывание

После успешного деплоя хост появится в списке и будет ожидать подключения агента.


Шаг 5 — Инициализация клиентского хоста (развертывание агента)

На клиенте (client1) установим пакеты Icinga2 и запустим скрипт развертывания агента, сгенерированный в Director.

  1. Подключитесь к серверу клиента:
ssh root@client1
  1. Отредактируйте /etc/hosts и добавьте записи для сервера мониторинга и клиента:
10.5.5.20   icinga2.hakase-labs.io  icinga2
10.5.5.21   client1.hakase-labs.io  client1
  1. Добавьте ключ репозитория 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
  1. Обновите пакеты и установите Icinga2 и monitoring-plugins:
sudo apt update
sudo apt install icinga2 monitoring-plugins
  1. В веб-интерфейсе Director откройте созданный хост и перейдите на вкладку Agent. Скопируйте скрипт для Linux и сохраните его на клиенте в deploy-agent.sh:
vim deploy-agent.sh
# Вставьте скрипт из Icinga Director
chmod +x deploy-agent.sh
./deploy-agent.sh

Инициализация клиента

  1. После выполнения скрипта перезапустите сервис:
systemctl restart icinga2

Результат выполнения скрипта

Теперь агент подключён и сервер мониторинга может собирать метрики.


Шаг 6 — Тестирование и валидация

  1. В Icinga Web 2 откройте Overview → Hosts. Оба хоста (сервер мониторинга и client1) должны быть в статусе UP.

Проверка состояния хостов

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

Сводка клиента

Список служб клиента

Если проверки в WARN/CRIT, проверьте пороги в шаблонах и сетевую доступность.


Критерии приёмки

  • Хост виден в Icinga Web 2 и имеет статус UP.
  • Все сервисы из ServiceSet отображаются и имеют рабочий статус или ожидают метрик.
  • Агент установлен на хосте и сервис icinga2 активен.
  • Изменения задеплоены через Activity Log без ошибок.

Плейбук: быстрое действие (SOP)

  1. Создать Service Templates (SSH, HTTP, APT, Load, Disk).
  2. Создать ServiceSet и добавить шаблоны.
  3. Создать Host Template и прикрепить ServiceSet.
  4. Добавить Host → заполнить адрес и шаблон.
  5. Deploy pending changes в Activity Log.
  6. На клиенте установить пакеты и выполнить deploy-agent.sh.
  7. Перезапустить icinga2 и проверить статус в Overview.

Ролевые чеклисты

Администратор мониторинга:

  • Проверить доступ к Icinga Web 2.
  • Создать шаблоны и ServiceSet.
  • Верифицировать деплой конфигураций.

Системный администратор клиента:

  • Обеспечить доступ SSH к клиенту.
  • Добавить записи в /etc/hosts.
  • Установить пакеты и запустить скрипт агента.

Оператор/On-call:

  • Проверить состояние услуг в Icinga.
  • При инциденте выполнять шаги из runbook раздела.

Runbook инцидента: агент не приходит в UP

  1. Проверить, запущен ли icinga2 на клиенте: systemctl status icinga2.
  2. Проверить логи агента: journalctl -u icinga2 -n 200.
  3. Убедиться, что клиента и сервер видят друг друга (ping, nc -z port).
  4. Проверить TLS-сертификаты и конфигурацию zones.conf.
  5. Если скрипт развертывания не прошёл — повторно сгенерировать и применить его.
  6. После исправления — перезапустить агента и проверить состояние в веб-интерфейсе.

Типичные ошибки и способы устранения

  • Ошибка DEPLOY: проверьте синтаксис конфигураций в /etc/icinga2 и журналы в /var/log/icinga2.
  • Agent не подключается: проверьте network (firewall, port 5665), /etc/hosts, правильность FQDN.
  • Сервисы остаются в UNKNOWN: убедитесь, что команды проверки доступны на клиенте (monitoring-plugins).

Безопасность и рекомендации по защите

  • Ограничьте доступ к Icinga Web 2 по IP или VPN.
  • Развертывайте агенты по защищённым каналам. Icinga2 использует TLS; проверьте ключи и зоны.
  • Устанавливайте обновления пакетов и мониторинговых плагинов.
  • Минимизируйте привилегии скриптов, выполняемых на клиентах.

Тестовые сценарии и критерии приёмки

  1. TC-01: После развертывания агент подключается, статус host UP.
    • Ожидаемый результат: host статус UP в Icinga Web 2.
  2. TC-02: Проверка SSH возвращает OK при запущенном sshd.
    • Ожидаемый результат: сервис SSH OK.
  3. 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 на клиенте должна соответствовать используемым проверкам.

Короткая методология внедрения

  1. Проектирование: определить набор метрик и пороги.
  2. Реализация: создать шаблоны и ServiceSet.
  3. Развёртывание: добавить хосты и развернуть агенты.
  4. Валидация: тесты и приёмка.
  5. Эксплуатация: мониторинг и регулярный обзор порогов.

Мини-словник (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 по бизнес-требованиям.

Ресурсы и ссылки


Краткое резюме

  • Создайте шаблоны служб, объедините их в ServiceSet.
  • Создайте шаблон хоста и привяжите ServiceSet.
  • Добавьте хост через Director и задеплойте конфигурацию.
  • На клиенте установите агент и проверьте статусы в Icinga Web 2.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро