Выпуск полностью переработанной системы мониторинга Icinga 2

После полутора лет интенсивной работы представлен релиз системы мониторинга Icinga 2.0, примечательный изменением методов определения конфигурации, переходом на модульную архитектуру и полной переработкой ядра системы мониторинга, которое было с нуля переписано на языке C++. Icinga представляет собой форк системы мониторинга Nagios, отделившийся в начале мая 2009 года вследствие конфликта независимых разработчиков с компанией Nagios Enterprises. Исходные тексты Icinga распространяются в рамках лицензии GPL. 0_1402940562.png На уровне API в Icinga 2 обеспечена совместимость с веткой Icinga 1.x, что позволило сохранить работоспособность классического web-интерфейса пользователя, написанного на языке С++, мобильного клиента, web-интерфейса Icinga Web, написанного на языке PHP, и пакета icinga-reporting, предоставляющего аналитический модуль для генерации отчетов и работающего вкупе с системой JasperServer. Также сохранена совместимость с прослойками IDODB, позволяющими организовать хранение данных мониторинга и конфигурационной информации в СУБД MySQL, Oracle или PostgreSQL.

Ключевые особенности Icinga 2:

Новый формат конфигурации в стиле Puppet, разбитый на серию отдельных файлов. Новый формат предоставляет средства для задействования шаблонов и поддерживает определение простых зависимостей (host-host, service-service, host-service, service-host), без свойственной nagios путаницы в создании связок хост/сервис и определении иерархии связей между родительскими и дочерними хостами. Назначение объектов конфигурации на основе шаблонов производится через правила apply и assign, добавлены литералы для описания продолжительности времени в атрибутах, глобальные константы, операторы вычисления выражений, возможность вызова функций для сопоставления по шаблонам или регулярным выражениям. Обеспечена начальная поддержка средств для динамического создания сервисов и опроса состояния их выполнения, пока ограниченная управлением уведомлениями. Для автоматического преобразования старой конфигурации в новый формат подготовлен специальный скрипт. Для упрощения редактирования файлов конфигурации вручную подготовлены модули для подсветки синтаксиса в Vim и Nano;

Упрощён процесс установки. В базовую поставку включены IDO-прослойки, поддержка протокола Livestatus, компоненты для записи данных о производительности и библиотеки для обеспечения совместимости. Для включения/выключения дополнений теперь достаточно в процессе настройки набрать команды icinga2-enable-дополнение/icinga2-disable-дополнение. Например, для запуска классического интерфейса нужно активировать objects.cache, status.dat и log, для Icinga Web включить IDO, для Thruk и NagVis достаточно выполнить icinga2-enable-livestatus. Для быстрого развёртывания системы мониторинга подготовлен Vagrant-репозиторий для создания образов для систем виртуализации; Ядро системы мониторинга теперь работает в многопоточном режиме, что позволяет добиться производительности в тысячи проверок в секунду, используя мощность всех имеющихся процессорных ядер. Например, на одном сервере Icinga 2 смог выполнить миллион активных проверок в минуту при мониторинге 60 тысяч хостов. Для контроля за качеством выполнения проверок в систему интегрирована служба самодиагностики, следящая за параметрами производительности системы мониторинга; Встроенная поддержка расширений, доступных по протоколу Livestatus. Реализация модуля Perfdata, позволяющего интегрировать в Icinga средства наглядного вывода данных на графиках, такие как PNP4Nagios, inGraph и Graphite (данные о производительности могут передаваться в Graphite напрямую по TCP); 0_1402940393.png Средства для развёртывания кластера для обеспечения высокой доступности или распределённого мониторинга. Для активации кластерных возможностей достаточно выполнить команду icinga2-enable-cluster. Поддерживается распределение нагрузки между узлами кластера при выполнении операций проверки, отправки уведомлений и обновления БД. Конфигурация и сведения о состоянии автоматически реплицируются между всеми узлами, что позволяет создавать отказоустойчивые конфигурации. Весь обмен данными меду узлами производится через зашифрованные каналы связи. 0_1402942531.png 0_1402942633.jpg

© OpenNet