Icinga — это компьютерная система с открытым исходным кодом и приложение для мониторинга сети . Первоначально он был создан как ответвление приложения для мониторинга системы Nagios в 2009 году. [2] [3]
Icinga работает над улучшением процесса разработки Nagios [4] , а также над добавлением новых функций [5] [6] , таких как современный пользовательский интерфейс в стиле Web 2.0 , дополнительные соединители баз данных (для MySQL , Oracle и PostgreSQL ) и REST API, который позволяет администраторам интегрировать многочисленные расширения без сложной модификации ядра Icinga.
Разработчики Icinga также стремятся более точно отражать потребности сообщества и быстрее интегрировать исправления . Первая стабильная версия, 1.0, была выпущена в декабре 2009 года, а с января 2010 года счетчик версий увеличивался каждые пару месяцев. [7]
В мае 2009 года группа разработчиков из сообщества Nagios объявила о форке Icinga, сославшись на свое недовольство застойным развитием программного обеспечения Nagios в то время и желание открыть его разработку для более широкой базы. [4] Имя Icinga — это зулусское слово, означающее «оно ищет», «оно просматривает» или «оно исследует» [8] и произносится с согласным щелчком . [9]
В первый год своего существования разработчики Icinga выпустили отдельные версии Core, API и Web и отпраздновали свою 10-тысячную загрузку. [10]
На второй год своего существования проект Icinga выпустил унифицированное и стабильное ядро и веб; добавлена поддержка двойного стека IPv6 и IPv4 , оптимизировано подключение к базе данных и обновлен пользовательский веб-интерфейс Icinga, интегрирующий различные надстройки сообщества (PNP4Nagios, LConf, Heatmap и Business Process Addon). Проект был скачан более 70 000 раз, а команда выросла до 23 человек. [10]
На второй год своего существования Icinga отпраздновала свою 100-тысячную загрузку, интегрировала компонент Icinga API в Icinga Web, улучшила отчетность по SLA ; и распространил виртуальные устройства Icinga на операционные системы Debian , OpenSUSE и CentOS . [11]
В октябре 2012 года проект Icinga выпустил предварительную технологическую версию Icinga 2. Это была замена основной платформы и ветвь параллельной разработки. Разработчики заявили, что хотят переписать ядро, чтобы исправить проблемы. К ним относятся сложная настройка и ограничения масштабируемости в крупных развертываниях. Они планируют переписать ядро Icinga 2 на C++ и разработать новую архитектуру загрузчика компонентов. Они также планируют изменить способ проведения проверок мониторинга. [12]
В июне 2014 года проект Icinga выпустил первую стабильную версию Icinga 2. [13] Новые функции, такие как агент или функция API, запланированы в последующих выпусках.
Поскольку Icinga является ответвлением, Icinga предлагает функции Nagios с некоторыми дополнениями, такими как дополнительный модуль отчетности с повышенной точностью SLA , дополнительные соединители баз данных для PostgreSQL и Oracle , а также распределенные системы для резервного мониторинга.
Icinga также поддерживает совместимость конфигурации и плагинов [10] с Nagios, что облегчает миграцию между двумя программами мониторинга.
Icinga Core написана на C [17] и имеет модульную архитектуру с автономным ядром, пользовательским интерфейсом и базой данных, в которую пользователи могут интегрировать различные надстройки и плагины.
Последний взаимодействует через уровень абстракции Doctrine Icinga , REST и API-интерфейсы подключаемых модулей , которые являются посредниками между внешними данными и внутренними структурами. Такое объединение компонентов позволяет пользователям распространять систему Icinga для резервного мониторинга. Он также предлагает пользователям свободу настройки Icinga в соответствии со своими потребностями. [18]
Icinga Core управляет задачами мониторинга, получая результаты проверок от различных плагинов. Затем он передает эти результаты в IDODB (база данных вывода данных Icinga) через интерфейс IDOMOD (модуль вывода данных Icinga) и сервисный демон IDO2DB (вывод данных Icinga в базу данных) через TCP-сокеты с шифрованием SSL. Хотя оба они поставляются в комплекте (также известном как IDOUtils) с ядром, они представляют собой отдельные компоненты, которые можно разделить для распределения данных и процессов по нескольким серверам для мониторинга распределенной системы.
Пользовательский интерфейс Icinga Classic также поставляется в комплекте с Icinga Core и может использоваться вместо веб-интерфейса Icinga на основе PHP .
Icinga 2 управляет задачами мониторинга, выполняет проверки и отправляет оповещения. Функции Icinga 2 можно включать по требованию, будь то функции по умолчанию, такие как компонент «проверка» или «уведомление», или внешние интерфейсы, совместимые с Icinga 1.x и ее пользовательскими интерфейсами, например, база данных IDO (Icinga Data). Наша база данных). Icinga 2 поставляется со встроенным стеком кластеров, защищенным сертификатами SSL x509, что позволяет упростить настройку распределенного мониторинга.
Синтаксис конфигурации отличается для Icinga Core 1.x и Nagios и требует миграции при обновлении.
Icinga предлагает пользователям веб-интерфейс для просмотра результатов мониторинга и отправки команд в Icinga Core, называемый Icinga Web (также называемый New Web). Это интерфейс, основанный на projecgavi и PHP , вдохновленный Web 2.0 , который использует Cronks ( виджеты ). предлагать настраиваемые информационные панели с возможностью перетаскивания. Icinga Web — это отдельная часть программного обеспечения. Он взаимодействует с ядром, базой данных и сторонними надстройками через слои ввода/dmкомпонента: абстракция доктрины , слой (ввод/база данных), REST API (внешние сценарии) и интерфейс управления командами (запись в канал, выполнение команд).
Интерфейс предоставляет информацию о состоянии хоста и службы, историю, уведомления и карты состояний, чтобы показать состояние сети в режиме реального времени, а также поддерживает адреса IPv4 , а также адреса IPv6 .
База данных вывода данных Icinga (IDODB) — это точка хранения исторических данных мониторинга для доступа к надстройкам или веб-интерфейсу Icinga. В отличие от своего предшественника Nagios, Icinga помимо MySQL поддерживает базы данных PostgreSQL и Oracle .
Проект Icinga предлагает дополнительный модуль Icinga Reporting, основанный на Jasper Reports с открытым исходным кодом . Его можно интегрировать как в пользовательские интерфейсы Icinga Classic, так и в Icinga Web. Модуль предоставляет отчеты на основе шаблонов (например, 10 наиболее проблемных хостов или служб, краткий обзор всей среды мониторинга, отчеты о доступности и т. д.), которые можно сохранить в хранилище с различными уровнями доступа и автоматическим созданием и распространением отчетов. Отчеты также можно просматривать в обоих дополнительных пользовательских интерфейсах Icinga.
Icinga Mobile — это пользовательский интерфейс для браузеров смартфонов и планшетов, работающий на WebKit . Обычно они доступны на iOS , Android , BlackBerry Tablet OS и webOS . Основанная на JavaScript и Sencha Touch , Icinga Mobile загружается на сервер для доступа авторизованных пользователей через их мобильные устройства. Таким образом, администрирование и обновления могут осуществляться централизованно, чтобы автоматически распространяться на всех пользователей компьютерной сети. [19]
Icinga совместима со всеми плагинами и большинством дополнений, написанных для Nagios, особенно для пользователей, выбирающих классический пользовательский интерфейс Icinga. Популярные дополнения для расширения функциональности Icinga включают:
Icinga успешно развернута в больших и сложных средах с тысячами хостов и сервисов, в распределенных и аварийных конфигурациях. [20] Модульная архитектура программного обеспечения с автономным ядром, Интернетом и IDODB (база данных вывода данных Icinga) облегчает распределенный мониторинг и мониторинг распределенных систем.
Nagios Remote Plugin Executor ( NRPE ) — это агент, совместимый с Icinga, который позволяет осуществлять мониторинг удаленных систем с помощью сценариев, размещенных на удаленных системах. Он позволяет отслеживать такие ресурсы, как использование диска, загрузку системы или количество пользователей, вошедших в систему в данный момент. Icinga периодически опрашивает агента в удаленной системе с помощью подключаемого модуля check_nrpe.
В настройках с использованием дополнительного пользовательского веб-интерфейса Icinga данные мониторинга из нескольких экземпляров Icinga Core могут отображаться, если каждый экземпляр записывает в одну и ту же IDODB. Таким образом, распределенный мониторинг также упрощается в администрировании.
На структурном уровне различные компоненты Icinga могут быть разделены и распределены в распределенной системе. Мониторинг распределенных систем обеспечивает большую безопасность и резервирование; если один компонент выйдет из строя, его место сможет заменить другой, не нарушая работу всей системы мониторинга.
Программное обеспечение также предлагает детальную систему аутентификации, благодаря которой доступ пользователей, уведомления и представления могут быть настроены с учетом деталей групп серверов, серверов и служб для каждого отдельного человека.