Icinga

undefined

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 и др.).
  • Мониторинг ресурсов узлов (процессор, жёсткий диск и пр.).
  • Мониторинг серверных компонентов (коммутаторы, маршрутизаторы, сенсоры температуры и влажности и др.).
  • Простое создание пользовательских проверок сервисов.
  • Параллельные проверки сервисов.
  • Определение сетевой иерархии (родительские узлы), что позволяет различать недоступные и отключённые хосты.
  • Настройка обработчиков событий для сервисов и узлов для реагирования на инциденты.

Оповещения

  • Оповещение контактных лиц о проблемах с сервисами и узлами посредством электронной почты, пейджера, мгновенных сообщений или пользовательских методов.
  • Возможна настройка пересылки оповещений другим пользователям или каналам.

Отчёты и визуализация

undefined
  • Два графических интерфейса (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 могут размещаться на разных системах, повышая отказоустойчивость: если одна часть выйдет из строя, другие смогут поддерживать работу мониторинга.

Система также поддерживает гибкую настройку доступа: разграничение прав пользователей, раздельные уведомления и различные представления для групп серверов и сервисов.

Примечания

Ссылки