Привет Медиум! Я Рик Лэтэм. Я инженер по информационным технологиям, отвечающий за мониторинг данных в американской телекоммуникационной компании. До сегодняшнего дня я был просто скромным читателем и застенчивым потребителем контента, но, потратив годы своей жизни на рутинную ручную работу и, наконец, найдя решение, я почувствовал себя обязанным поделиться. Это моя первая статья здесь, и я надеюсь, что она будет вам интересна и полезна. Жду ваших отзывов, а пока устраивайтесь поудобнее, наливайте кофе и наслаждайтесь!

Кстати, о кофе…

Пить кофе, положив ноги на стол и смотреть на зеленые лампочки возле всех элементов системы — мечта каждого ИТ-инженера, занимающегося ИТ-мониторингом. Но по моему опыту, это обычно все, сон. В своей работе я поддерживаю более 100 различных систем, сервисов и серверов и эта инфраструктура постоянно расширяется, изменяется, пополняется новыми элементами и подключениями. Я работаю с Zabbix, и хотя он соответствует требованиям по производительности, мне нужно следить не только за ИТ-инфраструктурой, но и за собой. Если я не поставлю новые элементы на мониторинг, мне не будут приходить оповещения, когда один из этих элементов не отвечает. Пока, конечно, разгневанные пользователи не смоделируют DDoS-атаку на внешний интерфейс моего отдела, когда один из сервисов не работает.

Чтобы избежать подобных казусов и не просыпаться в холодном поту, пытаясь вспомнить, поставил ли я новый элемент конфигурации на мониторинг, я решил выяснить, есть ли решение автоматизировать эти процессы и возложить эту рутинную работу на машины. Так я нашел Acure. Нет, это не опечатка, это название платформы AIOps — главного героя этой истории.

Что такое AIOps?

Я слышал термин «Искусственный интеллект для ИТ-операций» или «AIOps» несколько лет назад благодаря Gartner (кому еще?). Это определение:

Платформы AIOps используют большие данные, современное машинное обучение и другие передовые технологии аналитики для прямого или косвенного улучшения функций ИТ-операций (мониторинг, автоматизация и служба поддержки) с упреждающим, личным и динамическим анализом. Платформы AIOps позволяют одновременно использовать несколько источников данных, методов сбора данных, аналитических технологий (в реальном времени и глубоких) и технологий представления.

Короче говоря, у AIOps есть два аспекта — большие данные и машинное обучение. А теперь вы должны увидеть умную картинку.

А, вот оно.

Было ясно, что в моем случае я выиграю от платформы AIOps, но мне нужно было выбрать правильную. Проблема, с которой я столкнулся, заключалась в серьезном ценовом барьере, поскольку у меня не было бюджета размером с Илона Маска. Поэтому я начал искать бесплатные решения и нашел Acure.io.

Лекарство?

Немного предыстории Acure. Acure — это новая платформа для управления инцидентами и автоматизации, созданная латвийской компанией, и они обладают множеством функций. Это привлекло мое внимание, поскольку они позиционировали его как созданное инженерами для инженеров, что было очень важно для меня, поскольку никто не разбирается во всех болевых точках и внутренностях ИТ-мониторинга лучше, чем коллега-инженер. Он может похвастаться гибкой и открытой архитектурой, анализом первопричин и последствий, моделями топологии, единым экраном для состояния всей ИТ-системы, интеграциями с популярными системами мониторинга (включая Zabbix, конечно) и движком с низким кодом. Все это звучало великолепно, особенно low-code, потому что, хотя я и ИТ-волшебник, я не мастер кодирования, поэтому я могу сделать все настройки и изменения самостоятельно.

Вскоре Acure выпустит версию SaaS, но у них есть и локальная лицензия для предприятий. Я связался с командой, объяснил свои требования, и они любезно предоставили мне локальную версию, чтобы я мог ее протестировать. Пришлось настроить потоки данных, автоматизировать процесс обнаружения элемента конфигурации, поставить его на мониторинг и даже запустить скрипты автолечения. Все эти процессы полностью описаны в информативных руководствах пользователя Acure.

Я написал только о своем случае и показал свой интерфейс, настройки, кнопки и скрипты, но не беспокойтесь о множестве настроек. После настройки Acure значительно упростит ваши будущие рабочие процессы.

Как я уже упоминал, Acure — это решение SaaS, и локальные версии запрашиваются отдельно. Поэтому я не буду зацикливаться на процессе установки (в версии SaaS это будет означать просто создание места) и перейду сразу к своим пунктам.

Агрегация и анализ событий от внешних систем

Сначала я настроил поток данных для получения данных из другой системы. В Acure этот процесс очень прост и интуитивно понятен. В разделе Сбор данных — Потоки данных просто нажмите кнопку +Добавить поток и заполните следующие поля.

Замечательная функция Acure позволяет вам выбрать шаблон популярной системы мониторинга с предварительно настроенными задачами и обработчиками. Вам не нужно ломать голову над сложной настройкой, так как система все сделает за вас.

Как я уже говорил, я работаю с Zabbix, поэтому выбрал его шаблон.

Затем я подключил Zabbix и Acure, используя URL-адрес подключения и войдя в Zabbix.

Шаблон конфигурации уже содержит задачи для привязки Zabbix к Acure, но в моем случае мне нужно было добавить еще одну пользовательскую задачу, чтобы брать данные из Zabbix для дальнейшего построения топологии. Я написал скрипт на YAML и сделал запрос к Zabbix API:

Токен API был взят из Zabbix:

Затем я сохранил изменения и вуаля! Поток был добавлен в потоки данных

Однако волшебство на этом не заканчивается. Задача сбора данных о топологии не может быть запущена на внутреннем агенте из-за политик безопасности. Мне пришлось подключить внешний агент перед его запуском. Это может показаться немного сложным, но на самом деле это не так уж и плохо. Как только этот шаг будет выполнен, вам больше не нужно будет об этом беспокоиться.

Затем я добавил нового координатора и настроил внутри него пользовательский агент.

После настройки я вернулся в Data Stream и поменял агента в добавленной вручную кастомной задаче на только что созданную.

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

«Попав» в одно из событий, сообщающих о проблеме, я увидел не только его табличное представление с информацией обо всех элементах, содержащихся в Zabbix, но и стандартную структуру JSON для Zabbix, например:

На основе событий, поступающих из основной системы мониторинга, я построил модель службы ресурсов.

Построение модели службы ресурсов

Модель службы ресурсов (RSM) представляет собой список элементов конфигурации (CI) из системы и связей между ними. В Acure RSM основан на топологии, но я не буду забегать вперед. Вернемся к структуре JSON. Следующие параметры — это то, на чем построен RSM.

Для дальнейшего автоматического создания элементов конфигурации я определил, что:

Имя ЭК == host.name (имя хоста Zabbix)

Имя родительского ЭК == host.groups[0].name

Связанный объект =› узел Zabbix

В разделе «Автоматизация» я добавил новый сценарий для своей рабочей группы.

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

Каждый сценарий начинается с блока «OnLogEvent», где вы получаете события топологии. Мой не был исключением.

Затем я проверил потоки: имя моего потока совпадало со значением в скрипте (в моем случае Zabbix Sync), поэтому скрипт выполнялся дальше. В противном случае скрипт не будет выполнен.

Чтобы вырастить топологию «кустом» из одной информационной системы, я вручную создал корневой ЭК через опцию создания ЭК на вкладке Service Model Graph.

Создав КИ, я взял его ID из ссылки и вставил в следующий блок скрипта.

При создании сценария все группы были привязаны к этому корневому ЭК, который отображает работоспособность всей системы на топологии.

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

1. Создание элементов конфигурации (КИ).

2. Привязка узлов первичных систем мониторинга (для дальнейшей привязки триггеров).

Я доработал свой скрипт, сделал разные проверки, добавил автоматическое создание КИ и настроил привязки между ними, скомпилировал и запустил сценарий.

Выполнение этого скрипта показало мне график Service Model, который отображает статусы всех компонентов и работоспособность системы в режиме реального времени.

Я добавил новые ЭК для проверки автообнаружения и сразу увидел их на карте. Чтобы убедиться, что система мне не соврала, я проверил добавление новинок в журнале событий. И вау! Все новые ЭК были добавлены автоматически.

Но я был бы не я, если бы ограничился автообнаружением.

Автоправила и автоматические действия

Как вы уже поняли, Acure берет на себя часть задач и автоматизирует рутинные процессы, которые раньше выполнялись вручную. Я решил проверить, сможет ли сама система выполнять алгоритм тех или иных действий и правил, которые будут срабатывать при определенных изменениях в КИ.

В разделе «Правила и действия» я добавил Новое правило для всех ЭК и событий с приоритетом 2 и выше.

Я настроил автоматическое действие, которое будет выполняться при срабатывании этого правила. В моем случае это были два уведомления по электронной почте с интервалом в 2 и 30 минут и выполнение скрипта автовосстановления, если за это время инцидент не был устранен.

Шаблоны предупреждений также настраиваются внутри Acure. Я использовал предварительно настроенный шаблон, но также смог добавить любой текст и прикрепить необходимые файлы, используя Markdown и HTML для разметки.

В результате при обнаружении события с высоким приоритетом должен срабатывать этот скрипт автодействия: отправляются необходимые уведомления и запускается автолечение. Автоматически! Пока вы с комфортом пьете кофе, положив ноги на стол.

Заключение

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

Система имеет удобный и интуитивно понятный интерфейс и несколько крутых фич: возможность интеграции с другими системами мониторинга, топология, low-code, статус всей инфраструктуры на одном экране и полная автоматизация процессов, начиная от настройки элементов конфигурации для мониторинга для запуска автоматических сценариев. Когда событие входит в систему, оно изменяет саму модель обслуживания или ее состояние. Acure автоматически позволяет отслеживать все эти изменения и предпринимает связанные с ними действия. Объекты добавляются автоматически, основные триггеры локальной системы мониторинга автоматически связываются, политики эскалации автоматически распространяются, работоспособность системы автоматически рассчитывается, а сценарии автоматизации запускаются.

Удивительно, как такое простое решение может быть таким мощным. Это результат, когда системы мониторинга делают те, кто сам этими системами пользуется.

Также понравилась команда разработчиков — ребята отзывчивые, быстро отвечали на вопросы и предоставляли всю необходимую информацию и лицензии. Несмотря на то, что Acure — молодая платформа и ей есть к чему стремиться, я вижу огромный потенциал.

Скоро ребята должны выпустить новую SaaS версию, которую я с нетерпением буду ждать попивая кофе, конечно ;)

А пока делитесь своими мыслями, отзывами и до встречи в комментариях.