Icinga
Icinga — свободное программное обеспечение для мониторинга систем и сетей. Программа создана как ответвление (форк) проекта Nagios в 2009 году.[1]
Что важно знать
| Icinga | |
|---|---|
| Тип | система мониторинга сетей и серверов |
| Разработчик | сообщество Icinga |
| Написана на | C, C++ |
| Интерфейс | графический (Classic UI, Web) и командная строка |
| Операционные системы | Linux, Microsoft Windows, macOS, Debian, OpenSUSE, CentOS |
| Языки интерфейса | многоязычный |
| Первый выпуск | май 2009 |
| Аппаратная платформа | x86-64 |
| Последняя версия | 2.10.4 (19 марта 2019) |
| Репозиторий | github.com/Icinga/icinga2 |
| Лицензия | GPL |
| Сайт | icinga.com |
Разработка
Icinga была разработана с целью преодоления недостатков процесса разработки Nagios, а также внедрения новых возможностей, таких как современный веб-интерфейс, поддержка различных СУБД (MySQL, Oracle, PostgreSQL), и REST API, упрощающий интеграцию расширений без сложных изменений ядра Icinga.
Разработчики Icinga стремятся быстрее учитывать нужды сообщества и интегрировать исправления. Первая стабильная версия (1.0) была выпущена в декабре 2009 года, а затем выходили регулярные обновления каждые два месяца.
В 2012 году Дж. Хэммонд из Forrester Research включил Icinga в список «развивающихся» проектов с открытым исходным кодом на основе анализа динамики разработки.
Название Icinga происходит из зулусского языка и означает «искать», «обозревать» или «рассматривать»; слово произносится с щёлкающим согласным.
История
В мае 2009 года группа разработчиков Nagios объявила о создании форка под названием Icinga из-за недовольства стагнацией развития Nagios и стремления сделать проект более открытым для внешних участников.
В первый год существования Icinga были выпущены отдельные версии ядра, API и веб-интерфейса; число скачиваний достигло 10 000.
Во второй год был представлен стабильный и унифицированный релиз ядра и веб-интерфейса, поддержка миграции с IPv4 на IPv6, улучшена работа с СУБД, модернизирован веб-интерфейс (Icinga Web), добавлены расширения сообщества (PNP4Nagios, LConf, Heatmap, Business Process Addon). Количество скачиваний перевалило за 70 000, а команда выросла до 23 человек.
Во второй год развития проект также отметил 100 000 загрузок, интеграцию API в Icinga Web, улучшения отчётности по SLA, открыт официальный канал на Freenode в IRC и расширена поддержка виртуальных машин для Debian, OpenSUSE и CentOS.
В октябре 2012 года появился технологический превью-версия Icinga 2 — ядра, написанного с нуля на C++, с новой архитектурой для устранения ограничений предыдущей ветки и упрощения конфигурации.
В июне 2014 года вышла первая стабильная версия Icinga 2.
Самые последние версии указаны выше:
| Дата | Версия | Ключевые изменения |
|---|---|---|
| 19 марта 2019 | Icinga 2 v2.10.4 | Исправления ошибок для поддержки InfluxDB и Elasticsearch при соединении через TLS. |
| 26 февраля 2019 | Icinga 2 v2.10.3 | Исправления соединения TLS для мастеров и агентов при перезагрузке. |
| 14 ноября 2018 | Icinga 2 v2.10.2 | Исправления ошибок HTTP-сессий, кеша и других регрессий. |
Более ранние версии:
| Дата | Версия | Ключевые изменения |
|---|---|---|
| 18 октября 2018 | Icinga 2 v2.10.1 | Исправлена регрессия с поддержкой пространства имён и восстановлен корректный перезапуск приложения. |
| 11 октября 2018 | Icinga 2 v2.10.0 | Поддержка пространств имён, улучшена работа с TLS, обновлена документация, новые возможности. |
| 24 июля 2018 | Icinga 2 v2.9.1 | Исправления для сервис-демонов и поддержки SELinux. |
| 17 июля 2018 | Icinga 2 v2.9.0 | Поддержка Elasticsearch 6, TLS для IDO PostgreSQL, улучшения мастера установки и уведомлений. |
| 25 апреля 2018 | Icinga 2 v2.8.4 | Исправлена ошибка, приводящая к сбоям при выполнении проверок. |
| 24 апреля 2018 | Icinga 2 v2.8.3 | Исправлены ошибки с конфигурацией Sysconfig и Elasticsearch. |
| 22 марта 2018 | Icinga 2 v2.8.2 | Исправления, связанные с безопасностью. |
| 17 января 2018 | Icinga 2 v2.8.1 | Исправления в API и установщике для Windows. |
| 17 ноября 2017 | Icinga 2 v2.8.0 | Новая функция прокси CA, поддержка CORS, удалены устаревшие режимы и интерфейсы. |
| 9 ноября 2017 | Icinga 2 v2.7.2 | Исправления ошибок и документации. |
| 21 сентября 2017 | Icinga 2 v2.7.1 | Исправления в IDO-MySQL, Livestatus, уведомлениях, обновление скриптов. |
| 2 августа 2017 | Icinga 2 v2.7.0 | Новые скрипты уведомлений, очереди задач, интеграция NSClient++ API. |
| 13 декабря 2016 | Icinga 2 v2.6.0 | Интеграция с NSClient++, улучшения и исправления. |
| 23 августа 2016 | Icinga 2 v2.5.0 | Поддержка InfluxDB, IDO-MySQL, исключения временных интервалов. |
| 16 ноября 2015 | Icinga 2 v2.4.0 | Новая REST API. |
| 9 марта 2015 | Icinga 2 v2.3.0 | Расширенные функции конфигурирования, поддержка OpenTSDB. |
| 19 ноября 2014 | 1.12 | Улучшения классического интерфейса. |
| 17 ноября 2014 | Icinga 2 v2.2.0 | Клиенты, автоматизированная подпись сертификатов, переменные структуры. |
| 29 августа 2014 | Icinga 2 v2.1.0 | Улучшенный анализ конфигурации и поддержка отказоустойчивых кластеров. |
| 16 июня 2014 | Icinga 2 v2.0.0 | Первый стабильный релиз Icinga 2. |
| 16 мая 2014 | Icinga 2 v0.0.11 | Редизайн кластерных зон, балансировка нагрузки. |
| 29 апреля 2014 | Icinga 2 v0.0.10 | Продвинутые правила оповещений, зависимостей и атрибутов. |
| 31 марта 2014 | Icinga 2 v0.0.9 | Логика на правилах, обновление схем БД. |
| 13 марта 2014 | 1.11 | Поддержка Solaris, Oracle, IE и улучшения интерфейса. |
| 11 марта 2014 | Icinga 2 v0.0.8 | Вложенные зависимости, автоматизированное тестирование, стабильность IDO-MySQL. |
| 7 февраля 2014 | Icinga 2 v0.0.7 | Тесты во Vagrant, стабильность IDO-MySQL. |
| 19 декабря 2013 | Icinga 2 v0.0.6 | Повторяющиеся остановки, статистика задержек. |
| 3 декабря 2013 | Icinga 2 v0.0.5 | Повышение производительности и исправления ошибок. |
| 12 ноября 2013 | Icinga 2 v0.0.4 | IDO-PostgreSQL, история состояния. |
| 24 октября 2013 | Icinga 2 v0.0.3 | IDO-MySQL, интеграция Graphite. |
| 24 октября 2013 | 1.10 | Поиск и фильтрация в классическом интерфейсе, оптимизация работы системы. |
| 2 июля 2013 | Icinga 2 v0.0.2 | Технологический превью с поддержкой ядра 1.x. |
| 7 мая 2013 | 1.9 | Оптимизация производительности, улучшения юзабилити. |
| 25 октября 2012 | Icinga 2 v0.0.1 | Предрелиз новой архитектуры ядра. |
| 18 октября 2012 | 1.8 | Запрошенные сообществом улучшения для интерфейсов и отчётности. |
| 15 мая 2012 | 1.7 | Упрощённая система управления пакетами. |
| 30 ноября 2011 | 1.6 | Отчётность SLA (опционально). |
| 24 августа 2011 | 1.5 | Icinga Reporting в Icinga Web. |
| 11 мая 2011 | 1.4 | Улучшения обоих пользовательских интерфейсов. |
| 16 февраля 2011 | 1.3 | Поддержка миграции IPv4→IPv6. |
| 13 октября 2010 | Icinga Mobile | Интерфейс для смартфонов и планшетов. |
| 6 октября 2010 | 1.2 | Объединённая стабильная версия. |
| 18 августа 2010 | 1.0.3 | Веб-интерфейс не стабилен. |
| 30 июля 2010 | 1.0.2 Core, 1.0.1 Web | Оптимизация производительности. |
| 3 марта 2010 | 1.0.1 Core, 0.9.1 Web Beta | Рост производительности, улучшения Icinga Web. |
| 16 декабря 2009 | 1.0 Core, 0.9.1 Web Alpha | Стабильное ядро, поддержка Oracle и PostgreSQL. |
| 28 октября 2009 | 1.0 RC Core | Начальная поддержка Oracle. |
| 15 сентября 2009 | 0.8.4 | Исправление модулей соединения с БД. |
| 2 сентября 2009 | 0.8.3 | Начальная поддержка PostgreSQL. |
| 12 августа 2009 | 0.8.2 | Интеграция API Icinga. |
| 16 июня 2009 | 0.8.1 | Исправления ядра. |
| 15 мая 2009 | 0.8 | Первая версия |
Возможности
Как форк Nagios, Icinga унаследовала его функционал и расширила его рядом улучшений: модулем отчётов с поддержкой SLA, дополнительными коннекторами к PostgreSQL/Oracle, реализацией распределённого мониторинга для отказоустойчивости.
Icinga сохраняет совместимость по конфигам и плагинам Nagios, что облегчает миграцию между системами.
- Контроль сетевых сервисов (SMTP, POP3, HTTP, NNTP, ping и др.).
- Мониторинг ресурсов узлов (процессор, жёсткий диск и пр.).
- Мониторинг серверных компонентов (коммутаторы, маршрутизаторы, сенсоры температуры и влажности и др.).
- Простое создание пользовательских проверок сервисов.
- Параллельные проверки сервисов.
- Определение сетевой иерархии (родительские узлы), что позволяет различать недоступные и отключённые хосты.
- Настройка обработчиков событий для сервисов и узлов для реагирования на инциденты.
- Оповещение контактных лиц о проблемах с сервисами и узлами посредством электронной почты, пейджера, мгновенных сообщений или пользовательских методов.
- Возможна настройка пересылки оповещений другим пользователям или каналам.
- Два графических интерфейса (Classic UI и Web) для просмотра состояния узлов, сервисов, карт сети, логов и др.
- Icinga Reporting на базе JasperReports для обеих оболочек.
- Шаблоны отчётов (топ-10 проблемных хостов/сервисов, сводки по доступности и др.).
- Хранилище отчётов с разграничением прав и автоматической генерацией/доставкой.
- Дополнение для отчётов SLA (разграничение по критичности, плановым и внеплановым простоям, SLA-периодам).
- Отчёты по мощности и загрузке.
- Графики производительности через такие плагины, как PNP4Nagios, NagiosGrapher, InGraph.
Архитектура
Ядро Icinga написано на C и реализует модульную архитектуру: ядро, интерфейс пользователя, база данных; пользователи могут интегрировать различные плагины.
Расширения взаимодействуют с ядром через слой абстракции на Doctrine, REST и API плагинов, связывающих внешние данные и внутренние структуры. Такая архитектура позволяет разворачивать распределённые отказоустойчивые мониторинговые инсталляции и гибко настраивать систему под свои нужды.
Расширение функциональности
Icinga совместима со всеми плагинами и большинством расширений для Nagios, особенно при использовании классического интерфейса. Наиболее популярные расширения:
- Графики производительности (PNP4Nagios, NagiosGrapher, InGraph).
- Инструменты и интерфейсы конфигурирования (например, Nconf, NagiosQL, LConf).
- Мониторинг бизнес-процессов (соответствующие плагины).
- Визуализация сети (NagVis, Nagmap).
- Мониторинг Windows (NSClient++, Cygwin).
- Мониторинг SNMP trap (например, SNMPTT, NagTrap).
Эксплуатация в крупных компаниях
Icinga успешно развёртывается в крупных и сложных инфраструктурах с тысячами хостов и сервисов, в распределённых и отказоустойчивых схемах. Модульный подход (независимые Core, Web, Icinga Data Output for Data Base) упрощает построение масштабируемых систем мониторинга.
Агент Nagios Remote Plugin Executor (NRPE) совместим с Icinga и позволяет собирать метрики с удалённых систем с помощью скриптов, размещённых на целевых хостах (дисковое пространство, нагрузка и др.). Коммуникация осуществляется с помощью плагина check_nrpe.
В конфигурациях с Web-интерфейсом данные мониторинга из нескольких инстанций Icinga Core можно централизовать, если они пишут в одну и ту же базу (IDODB), что упрощает администрирование распределённого мониторинга.
Компоненты Icinga могут размещаться на разных системах, повышая отказоустойчивость: если одна часть выйдет из строя, другие смогут поддерживать работу мониторинга.
Система также поддерживает гибкую настройку доступа: разграничение прав пользователей, раздельные уведомления и различные представления для групп серверов и сервисов.
Примечания
Ссылки
- Официальный сайт
- dev.icinga.org — официальный трекер разработки (архив: https://web.archive.org/web/20150319050626/https://dev.icinga.org/)


