Обновление 7.0.0 (15.09.2022)
Цель и задачи версии Monq 7.0
Наша команда рада представить новую, уже 7-ю по счету, версию нашего продукта зонтичного мониторинга Monq. С момента создания продуктом Monq движет концепция "мониторинг и эксплуатация как код" и новая версия является значительной вехой на этом пути. Главная идея 7й версии заключается в динамическом сценарном управлении проблемами, что значительно упрощает процесс постановки на мониторинг, что особенно актуально для систем с динамическим окружением (контейнеры, микросервисная архитектура, Kubernetes). Проще говоря, вместо того чтобы настраивать десятки и сотни тысяч статических триггеров и постоянно следить за их актуальностью, в Monq 7 Вам достаточно написать несколько десятков сценариев и забыть о старом процессе постановки на мониторинг - все сделает Monq.
Еще одной к лючевой особенностью новой версии Monq является концепция "единого окна", когда информация обо все объектах собрана в одном месте, что минимизирует переключения. В Monq 7.0 панель мониторинга объединена с графом ресурсно-сервисной модели, информацией по сервисным режимам и здоровью КЕ. В последующих релизах добавятся логи и результаты сборок синтетических тестов, ну и, конечно, метрики.
Не осталась в стороне и технологическая составляющая продукта: для ряда критичных сервисов в 7.0 была пилотно внедрена система удаленного вызова процедур gRPC от компании Google. Данное архитектурное решение позволило добиться значительного ускорения межмикросервсиного взаимодействия, что особенно важно для сценарного подхода, когда пользователь может вызывать в своих сценариях функции API.
1. Сигналы. Сценарное управление проблемами и отказ от триггеров
Как уже было отмечено выше, сценарное управление проблемами является главной идеей новой версии Monq и воплощением концепции "мониторинг и эксплуатация как код". В предыдущих версиях основным инструментом дедупликации и корреляции первичных событий (алертов и логов) были синтетические триггеры, управляемые правилами в виде lua-скриптов. Несмотря на неоспоримую гибкость наших триггеров, при использовании Monq для управления большими динамическими окружениями возникал ряд трудностей. Прежде всего, из-за статической природы триггера, на каждый случай приходилось создавать отдельный триггер со своим правилом, что приводило к значительным трудозатратам при настройке и разрастанию количества триггеров до десятков и сотен тысяч. Также это порождало проблему постоянной синхронизации с внешними системами мониторинга - приходилось постоянно отслеживать их изменения. В случае удаления триггера или отвязки его от КЕ происходила потеря истории. Все это делало затруднительным пол ноценное использование нашего продукта для мониторинга динамически изменяющихся сред.
В связи с чем в Monq 7.0 на смену синтетическим триггерам пришли сигналы, управляемые сценариями на low-code движке. В отличие от синтетического триггера, у которого изменяется лишь статус, сигнал - это "короткоживущий" динамический объект, похожий на задачу в обычном таск-трекере. Сигнал открывается по определенному алерту (или набору алертов), далее в процессе к нему могут быть присоединены другие алерты (подтверждающие), и в определённый момент сигнал закрывается по алерту или событию планировщика.
Приведем пример простейшей дедупликация алертов по превышению пороговых значений метрики. Например, в случае превышения порогового значения источник каждые 5 мин генерирует алерт о превышении. В Monq по первому событию открывается сигнал, все последующие подтверждения присоединяются к этому сигналу. При возвращении метрики в исходное состояние и отсутствия новых алертов по данной метрики в течении 30 минут - Monq закрывает сигнал. В случае повторения ситуации генерируется новый сигнал, ранее сработавшие и уже закрытые сигналы остаются неизменными.
Кроме короткого жизненного цикла, изменился и сам подход к управлению сигналами. В случае триггера: мы вначале привязывали вручную или через API триггер к нужной КЕ, затем задавали скрипт управления его статусами (либо вручную, либо через шаблон) и префильтр событий. Таким образом за каждый отдельный триггер отвечал отдельный скрипт. В 7й версии по аналогии с раннее успешно апробированным автопостроением РСМ мы перешли полностью на сценарное управление сигналами. Это значит, что теперь именно внутри сценария происходит открытие/закрытие сигналов, определяется логика их привязки к КЕ, а также присоединение к ним первичных событий (алертов). Мало того, теперь сигналы управляются всем вашим набором сценариев: Вы можете создать один мега-сценарий дедупликации алертов, а можете разбить на множество маленьких, никаких ограничений.
Связь сигнала с КЕ устанавливается также в сценарии. Логика привязки может абсолютно произвольной, в зависимости от того, как у Вас устроена CMDB и настроены системы мониторинга и источники логов. Теперь вы можете непосредственно из сценария обратится к функциям CMDB: найти нужную КЕ или группу КЕ по атрибутам и связать их с создаваемым сигналом.
Больше о сигналах, инструментах дедупликации и кореляции, доступных в Monq, готовых примерах и сценариях Вы можете ознакомиться на нашем портале документации docs.monq.ru
2. Единое окно мониторинга
Концепция "единого окна" призвана ускорить работу инженера с находящимися на мониторинге объектами, и, таким образом, минимизировать время решения аварии. В 7.0 были заменены 4 экрана (Главный, Оперативный, Шкала Времени, РСМ) единым окном мониторинга, в котором панель мониторинга объединена с графом РСМ.
Единое окно разделено визуально на две части: в левой панели находится список отфильтрованных КЕ, их здоровье и статус, на правой панели информация меняется в зависимости от выбранного режима оператором: граф РСМ, карточка КЕ, список сигналов, сервисные режимы, лог изменений. При этом правая панель служит дополнительным фильтром для правой, доступен также множественный выбор с зажатой клавишей CTRL. На экране действует множество разнообразных кросс-ссылок и фильтров.
В Monq 7.0 значительной переработке подверглись глобальный параметрический фильтр карт РСМ: появились быстрые наборы фильтров, полностью изменился конструктор.
Еще одной фишкой стал функционал точек перехода между картами. Можно привязать карты к определенным конфигурационным единицам, после чего на этих конфигурационных единицах появятся точки перехода. Таким образом, можно из одной карты переходить в другую непосредственно на графе РСМ.
Возможно, что в 7.0 не будет хватать привычного функционала, доступного в предыдущей 6й версии Monq. Мы гарантируем, что в ближайших релизах "единое" окно будет развиваться: появляться новые фильтры, виджеты, графики, до полняться кастомизация настроек. Например, уже в 7.1 будет доступен табличный вид РСМ.В разработке находится функция управления столбцами таблиц.
3. Ресурсно-сервисная модель в Monq 7.0
Изменения не обошли стороной и ресурсно-сервисную модель. Появились атрибуты КЕ, позволяющие сохранять разнообразную информацию о КЕ, и жизненный цикл КЕ.
Атрибуты КЕ не только позволяют хранить информации об объекте, но и являются важной составляющей для сценариев. Атрибуты широко используются в сценариях, например, для определения связи между КЕ и сигналом. Набор атрибутов КЕ задается администратором Monq для типа КЕ. Локальное расширение модели (для конкретной КЕ) также возможно: пользователи могут воспользоваться специальным системным атрибутом "лейблы". Атрибуты строго типизированы, типы атрибутов идентичны типам и структурам движка автоматизации, и могут быть расширены специальными библиотеками.
В Monq был добавлен жизненный цикл КЕ. В 7.0 доступно управление только стандартным жизненным циклом, состоящим из 2х стадий: в эксплуатации, архивные. В последующих версиях появится возможность создавать собственные схемы жизненного цикла и применять их к тем или иным типам КЕ. Обращаем Ваше внимание, что архивные КЕ не участвуют в расчетах, к ним невозможно привязать новые сигналы.
4. Расширение библиотеки Automaton.Core
Помимо новой библиотеки работы с сигналами в нашем low-code движке, мы продолжаем расширять набор готовых стандартных функций доступных нашим пользователям для написания собственных сценариев автоматизации. В новой версии Monq добавлены следующие функции:
Функции работы с массивами: ArrayLength, ArrayCreate, ArraySelect, ArrayIntersect, ArrayContains, ArrayUnion; Функции работы со временем: Now, UTCNow, ParseDateTime, TryParseDateTime, DateRangeToNow, ConvertToMilliseconds; Прочие функции: CompareNumber, IsNull. Подробнее здесь (ссылка на раздел документации).
5. Миграция 6.12 в 7.0
Традиционно, для наших клиентов, пользующихся 6й версией Monq, мы подготовили специальный мигратор, максимально упрощающий переход и предотвращающий потерю исторических данных.
История изменения статусов синтетических триггеров будет преобразована в сигналы. Таким образом, не будет потеряна история проблем, накопленная в предыдущих версиях Monq. Связанные с КЕ объекты Zabbix превратятся в простые атрибуты КЕ. Интерфейс для удобной связи объектов Zabbix с КЕ сохранится, но также появится возможность простой текстовой правки данных атрибутов. Автосоздание синтетических триггеров из Zabbix прекратит свое существование, как и собственно синтетические триггеры. Если вы активно использовали данный функционал, скачайте с нашего официального GitHub репозитория типовой сценарий для дедупликации событий из Zabbix в сигналы (ссылка доступна в интерфейсе Monq в окне создания сценариев) и создайте соответствующий сценарий. Отчеты. Все сохраненные шаблоны отчетов мигрируют с триггеров на сигналы. А в связи с тем, что все исторические изменения триггеров будут преобразованы в сигналы, Вы не потеряете консистентность и актуальность Ваших отчетов за предыдущие периоды. Правила и действия. Мы также подготовили специальную миграцию для ваших настроенных правил и действий. Мигрируют как условия правил, так и макросы в действиях. В случае если по какой-то причине миграцию будет невозможно выполнить - мигратор выключит данные объекты и внесет специальную метку в имя объекта. После завершения миграции обязательно проверьте ваши правила и действия на предмет наличия такой метки в названии; Кастомные синтетические триггеры. К сожалению, в случае если вы писали собственные синтетические триггеры, то автоматической миграции заложенной логики в новые сценарии не будет. Необходимо будет написать новый сценарий. Если у Вас на момент выхода 7.0 подключен пакет поддержки уровня "Премиальный" и выше, то обратитесь, пожалуйста, в нашу службу технической поддержки - наши специалисты выполнят работы по перепрограммированию кастомных триггеров в сценарии сигналов.
В Monq 7.0 Был внесен ряд технологических изменений в модуль лицензионной защиты и изменена структура лицензионного ключа. Monq 7.0 работает только с новой версией лицензионного ключа. Перед тем как выполнять обновление, получите новый лицензионный ключ. Если у Вас бесплатная версия - сгенерируйте новый ключ для вашего экземпляра Monq на нашем сайте, если у Вас платная версия - обратитесь в службу технической поддержки.
6. Прочее
В релиз вошел еще ряд полезных доработок:
- Active Directory. Поддержка фильтров LDAP. Позволяет более гибко задавать правила синхронизации с Monq.
- Управление сервисными режимами КЕ в графическом интерфейсе. Теперь вы сможете непосредственно из интерфейса задавать сервисные режимы для Ваших объектов.
- Переменные окружения для Yaml-скриптов в заданиях потоков. Еще более удобная и кастомизиуемая настройка ETL-процессов в Monq.
- Информация по общему объему данных по потоку.