hostprofi.ru
Подобрать хостинг
Термин·буква I

Icinga

краткое определение

Система мониторинга доступности хостов и сервисов, форк Nagios с DSL-конфигурацией и REST API.

Icinga — система мониторинга инфраструктуры с открытым исходным кодом. Форк Nagios, созданный в 2009 году. Проверяет доступность хостов и сервисов, уведомляет при сбоях. Icinga 2 (2014) — переработанная версия с DSL-конфигурацией и REST API.

Как работает

Icinga активно проверяет (polling) сервисы по расписанию через плагины. Плагин — исполняемый файл, возвращающий код 0 (OK), 1 (Warning), 2 (Critical), 3 (Unknown). Встроенные плагины: check_http (доступность сайта), check_ping (ICMP), check_disk (место на диске), check_procs (процессы). Nagios-совместимые плагины (monitoring-plugins) работают с Icinga без изменений — тысячи готовых проверок.

Конфигурация через DSL

# /etc/icinga2/conf.d/hosts.conf
object Host "web-server" {
    address = "192.168.1.1"
    check_command = "hostalive"
    vars.http_vhosts["Main Site"] = {
        http_uri = "/health"
        http_port = 443
        http_ssl = true
    }
}

# /etc/icinga2/conf.d/services.conf
apply Service "http" {
    import "generic-service"
    check_command = "http"
    assign where host.vars.http_vhosts
}

История

Nagios создан Этаном Галстадом в 1999 году под именем NetSaint. В 2009 году разработчики Nagios создали форк Icinga из-за разногласий с менеджментом Nagios Inc. по скорости разработки. Icinga 1.x сохранял совместимость с Nagios. В 2012 году начата разработка Icinga 2 с нуля: новый DSL-конфиг, кластеризация, REST API. Icinga Web 2 (2015) предоставил современный веб-интерфейс. Параллельно развиваются Zabbix и Prometheus как альтернативные подходы.

Icinga vs Prometheus

Icinga — pull-based проверки с порогами. Идеален для проверки доступности URL, SSL-сертификатов, дискового пространства — «работает или нет». Prometheus — метрики и временные ряды. Идеален для анализа трендов, производительности, аномалий. Многие команды используют оба: Icinga для availability-мониторинга, Prometheus + Grafana для performance-мониторинга.

Уведомления

Icinga отправляет уведомления через NotificationCommand: email (встроено), Telegram-бот (плагин), PagerDuty, Slack. Настройка escalation: первые 30 минут — уведомление дежурному, после — руководителю. Downtime-объекты заглушают алерты на плановые работы.

На что обращать внимание

Icinga 2 требует значительных ресурсов при мониторинге сотен хостов: 2+ CPU, 4+ GB RAM. Для мониторинга 5-10 серверов достаточно Uptime Robot (внешний SaaS бесплатно до 50 мониторов) или простого cron-скрипта с curl-проверкой и уведомлением в Telegram. Icinga оправдан в корпоративных средах с десятками серверов и требованиями к compliance-отчётности. journalctl и log-сервер дополняют Icinga — показывают причину сбоя после уведомления об инциденте.

Пассивные проверки и NSCA

Помимо активных проверок (Icinga опрашивает сервис), Icinga поддерживает пассивные: внешняя система сообщает Icinga о результате проверки. Это удобно для задач в очередях, cron-джобов, бекапов — Icinga ждёт подтверждения от самого сервиса, а не проверяет снаружи. Если подтверждение не пришло за freshness_threshold — статус переходит в UNKNOWN с алертом.

Icinga Director

Icinga Director — веб-GUI для управления конфигурацией Icinga 2 без редактирования DSL-файлов вручную. Хранит конфигурацию в базе данных и генерирует DSL при деплое. Позволяет добавлять хосты, сервисы и контакты через браузер. Автоматический импорт хостов из Kubernetes-кластера, VMware, NetBox — без ручного добавления каждого сервера.

Другие термины