Об авторе: Денис Романов, директор департамента профессиональных сервисов IT-разработчика «Базис».
Что такое AIOps
AIOps — это технология для поиска сбоев в IT-системах, расшифровывается как «искусственный интеллект для управления IT-системами». Под этим термином понимают набор технологий, которые помогают следить за приложениями, серверами, сетями и базами данных, например собирать информацию об их работе, замечать отклонения и связывать между собой разные события.
Представим жилой дом, где одновременно погас свет, остановился лифт и отключились камеры. Система мониторинга отправит три уведомления. Дальше специалисту управляющей компании придется выяснять, связаны ли эти события и с чего начинать проверку. В то же время AIOps сопоставил бы время их появления и устройство инженерных систем, а затем предложил бы проверить общий электрощит.
В IT-инфраструктуре технология работает как и в нашем вымышленном доме. Она собирает сигналы из разных источников, ищет необычное поведение и объединяет связанные оповещения. Ее главное отличие от простого порогового мониторинга — попытка учитывать контекст.
Обычное правило, например, отправить уведомление, когда загрузка процессора превысит 80%. Но для сервера, который каждую ночь формирует отчеты, даже 90% могут быть нормой. При этом неожиданный рост с 20 до 55% в спокойное время вероятно указывает на проблему. Пороговый мониторинг просто замечает пересечение заданной границы, а вот AIOps пытается понять, насколько происходящее необычно именно для этого сервиса и что могло вызвать изменение.
AIOps не выносит окончательный диагноз. Его задача — сократить область поиска. Убрать лишний шум, показать наиболее вероятную причину и предоставить инженеру факты для проверки, не более того.
Пять следов одной поломки
Чтобы понять, почему перестало работать приложение, ни одному эксперту не хватит одного графика. AIOps сопоставляет несколько видов информации: метрики, логи, трассировки, историю изменений и обращения пользователей. Каждый источник показывает систему с разных сторон, поэтому мы рассмотрим их отдельно.
Метрики
Отвечают на вопрос, что происходит прямо сейчас. К ним относятся загрузка процессора, объем свободной памяти, время ответа приложения, число ошибок, длина очереди запросов и место на диске. По метрикам можно увидеть, что сервис замедлился или начал расходовать больше ресурсов — это уже важный сигнал. Но сами по себе они редко объясняют причину. Например, та же высокая нагрузка может быть следствием наплыва покупателей, неудачного обновления или зависшего процесса.
Логи
Это технический журнал событий. Приложения записывают в него ошибки, предупреждения и сведения о выполненных операциях. В логах можно найти, например, сообщение о неудачном подключении к базе данных или истекшем сертификате. Функция это сверхполезная, но проблема в том, что крупная система создает миллионы таких записей, причем разные компоненты используют собственные форматы. AIOps приводит их к сопоставимому виду, группирует повторяющиеся сообщения и ищет записи, появившиеся одновременно с отклонением.
Трассировки
Показывают путь отдельного запроса через систему. Когда пользователь оплачивает заказ, его запрос может последовательно пройти через сайт, корзину, платежный сервис, базу данных и внешний банк. Если операция заняла пять секунд вместо одной, трассировка помогает увидеть, на каком участке возникла задержка. Без нее каждая команда наблюдает только свой компонент и может не понимать, где началась проблема.
История изменений
Позволяет проверить, что происходило с системой незадолго до сбоя. Вариантов хватает — это может быть выпуск новой версии приложения, изменение настроек, установка обновления, перенос базы данных или замена сертификата. Многие инциденты действительно начинаются после изменений, поэтому AIOps накладывает их временную шкалу на графики и сообщения об ошибках. Совпадение еще не доказывает причинно-следственную связь, но дает инженеру важную версию для проверки.
Обращения пользователей
Они добавляют бизнес-контекст. Иногда клиенты замечают проблему раньше, чем срабатывают технические правила. Страница открывается, но кнопка оплаты не работает; приложение запускается, но только часть заказов доходит до магазина. AIOps может объединить похожие обращения и сопоставить их с техническими событиями. Так становится понятнее не только то, что сломалось, но и насколько сильно сбой влияет на работу бизнеса.
Каждый источник дает лишь часть ответа. Система может видеть перегруженный сервер, но не знать, какой сервис на нем работает, какие компоненты от него зависят и что недавно изменилось. Чем полнее данные и точнее описаны связи внутри инфраструктуры, тем полезнее будет вывод AIOps.
100 уведомлений, один ответ
Работу AIOps можно разложить на пять последовательных шагов:
Система замечает необычное поведение одного или нескольких показателей. Находит связанные оповещения, удаляет повторы и отделяет важные события от фонового шума. Объединяет сообщения, которые могут относиться к одной проблеме, в единый инцидент. Показывает затронутые сервисы, вероятную первопричину и факты, на которых основана эта версия. Направляет инцидент нужной команде, после чего инженер проверяет вывод и выбирает действие.
Например, сбой сетевого оборудования может одновременно вызвать сообщения о недоступности серверов, ошибках базы данных и неуспешных платежах, и для каждой команды ситуация будет выглядеть как отдельная проблема. AIOps сравнит время появления уведомлений, связи между компонентами и недавние изменения. Если все события ведут к одному сетевому узлу, инженер получит один инцидент вместо десятков несвязанных тревог. Результат — колоссальная экономия времени.
Вместе с тем важно понимать, что уменьшение числа уведомлений само по себе еще не означает, что система работает хорошо. При слишком агрессивной фильтрации AIOps может скрыть важный сигнал или ошибочно присоединить его к другому инциденту. Поэтому эффективность оценивают не только по объему оповещений, но и по времени обнаружения проблемы, скорости поиска первопричины, продолжительности восстановления и количеству пропущенных сбоев.
Как отличить обычную нагрузку от проблемы
Для этого AIOps изучает привычный ритм работы каждого сервиса. Система учитывает, в какие часы растет число запросов, сколько обычно длится резервное копирование, чем будний день отличается от выходного и как инфраструктура ведет себя в конце месяца. Так появляется динамическая модель нормального поведения.
Например, для интернет-магазина рост нагрузки вечером может быть обычным явлением. Такой же скачок в четыре утра потребует внимания. При этом модели нужно накопить историю: для ежедневных закономерностей может хватить нескольких дней, для недельных — нескольких недель. Чтобы учесть ежегодную распродажу, потребуются данные за прошлые периоды.
Норма не остается неизменной. После переезда в облако, запуска нового приложения или резкого роста аудитории прежняя модель может устареть. В таком случае ее приходится перестраивать, иначе система начнет либо присылать лишние предупреждения, либо принимать новые проблемы за обычное поведение.
Представим, что перед распродажей платежный сервис магазина стал отвечать не за 150, а за 250 мс. Одновременно увеличилось время ожидания соединения с базой данных и замедлилась запись на диск. Каждый показатель по отдельности еще находится в допустимых пределах, поэтому пороговые правила в классическом мониторинге молчат. AIOps заметит, что несколько связанных параметров изменились одновременно, и предупредит о возможной перегрузке. Без этого сигнала при наплыве покупателей часть платежей может не пройти, поэтому бизнес понесет финансовые потери.
Но здесь кроется обратная проблема — если производительность ухудшается очень медленно, система способна постепенно принять это за новую норму. Поэтому динамические модели дополняют жесткими ограничениями. Например, свободное место на диске не должно опускаться ниже установленного уровня независимо от того, насколько плавно оно сокращается.
Кому и зачем нужен AIOps
В погоне за автоматизацией и модными ИИ-решениями надо помнить, что AIOps полезен далеко не каждой компании. Небольшому сайту с несколькими серверами обычно достаточно понятных правил, надежного мониторинга и удобной панели с ключевыми показателями. Внедрение сложной аналитической платформы обойдется в копеечку и потребует больше ресурсов, чем сэкономит.
Технология становится оправданной, когда компания использует десятки или сотни связанных сервисов, сочетает собственное оборудование с несколькими облаками, часто выпускает обновления и должна работать круглосуточно. В такой среде один сбой быстро затрагивает несколько команд, а количество технических событий растет быстрее, чем их успевают разбирать люди.
Главный признак того, что мониторинга не хватает — перегрузка инженеров уведомлениями. Если дежурный получает сотни повторяющихся сообщений и дольше собирает информацию, чем устраняет причину, прежнего подхода уже недостаточно. Еще один сигнал — ситуации, когда разные команды видят отдельные последствия одного отказа, но никто не обладает полной картиной.
Как внедрить AIOps
Увы, но AIOps нельзя просто подключить к слабому мониторингу и сразу начать получать точные диагнозы. Система анализирует только те сведения, которые в нее поступают, поэтому потерянные логи, неверные часы на сервере или устаревшая схема зависимостей в любом случае приведут к ошибочным выводам.
До внедрения технологии нужно подготовить основу:
собрать ключевые показатели и технические записи со всех важных компонентов, привести данные к единому и понятному формату, описать, какие приложения, серверы и базы данных зависят друг от друга, назначить владельца каждого критичного сервиса, сохранить историю инцидентов и инструкции по их устранению.
Не менее важен порядок реагирования. Компания должна заранее определить, кто получает уведомление, в какой момент подключается руководитель и какие действия требуют дополнительного согласования. Иначе AIOps заметит проблему и даже правильно определит ее источник, но сообщение останется без ответственного.
Качество данных придется поддерживать постоянно. В любой крупной компании инфраструктура меняется, например появляются новые сервисы, старые отключаются, команды переезжают в другие облака. Но если карта зависимостей не обновляется вместе с системой, точность рекомендаций постепенно будет снижаться.
Какие ограничения есть у AIOps
AIOps способен не только предупреждать инженеров, но и выполнять заранее заданные действия. Например, перезапустить зависшее приложение, временно добавить вычислительные ресурсы, исключить неисправный сервер из обработки запросов или автоматически создать заявку для нужной команды.
Полностью автоматизируют прежде всего типовые, хорошо проверенные и обратимые операции, поскольку перезапуск отдельного процесса обычно несет меньше риска, чем изменение прав доступа, удаление данных или вмешательство в платежную систему. Действия с серьезными последствиями бизнес по старинке проводит с подтверждением человека.
Есть как минимум четыре причины, по которым AIOps пока нельзя считать полноценной заменой живому специалисту:
Система видит только собранные данные. Если часть логов потеряна, а схема связей устарела, вывод может оказаться убедительным, но неверным. Не каждое отклонение означает поломку. Рост нагрузки может быть вызван ошибкой, рекламной кампанией, тестированием или внезапным интересом покупателей. Технические показатели будут похожими, а решения потребуются разные. Автоматическое действие способно усилить сбой. Перезапуск сервиса может восстановить его работу, а может оборвать важную операцию и увеличить нагрузку на соседние компоненты. Инженер должен оценивать последствия для всей системы. За надежность отвечает команда. После восстановления работы надо не закрыть инцидент и выдохнуть, а понять, почему он произошел, изменить архитектуру или процесс разработки и не допустить повторения.
Ровно поэтому полезнее воспринимать AIOps не как автопилот, а как диспетчера. Он непрерывно просматривает данные, убирает повторы, собирает разрозненные симптомы в одну картину и подсказывает, где искать причину. Инженер же пусть проверяет эту версию, оценивает риск и самостоятельно принимает решение. Человеку нужен человек, системе — тоже.
➤ Подписывайтесь на телеграм-канал «РБК Трендов» — будьте в курсе последних тенденций в науке, бизнесе, обществе и технологиях.