Астра Мониторинг: платформа наблюдаемости всех слоев ИТ-инфраструктуры

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

Для эксплуатации таких сред применяется подход observability - наблюдаемость. Он предполагает анализ нескольких видов телеметрии одновременно: метрик, журналов, трассировок и событий. Это позволяет не только фиксировать факт превышения заранее заданного порога, но и исследовать причины поведения системы.

"Астра Мониторинг" - российская программная платформа для мониторинга и наблюдаемости ИТ-инфраструктуры. Она предназначена для сбора и анализа данных о физических и виртуальных узлах, приложениях, сервисах, базах данных, контейнерной и сетевой инфраструктуре. Актуальная документация платформы выделяет основные направления работы с данными: метрики, логи, события и распределенные трассировки.

От мониторинга к наблюдаемости

Классический мониторинг отвечает главным образом на заранее известные вопросы: работает ли сервер, сколько занято оперативной памяти, не заканчивается ли место на диске, доступен ли определенный порт. Такой подход остается необходимым, однако в распределенной системе его недостаточно.

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

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

Архитектура платформы

Архитектура "Астра Мониторинг" разделена на слой сбора данных и центральную часть их обработки. Объектами мониторинга могут быть физические и виртуальные серверы, устройства и контейнеры. На узлах используется агент, который организует сбор диагностической информации и ее передачу в центральную систему.

Агент управляет экспортерами, собирает метрики и журналы, обрабатывает сигналы и может выполнять прокси-функции. В документации предусмотрена каскадная прокси-архитектура. Она может применяться в распределенных сетях и изолированных сегментах, где не каждый контролируемый узел должен напрямую обращаться к центральному серверу. Агент также поддерживает локальную буферизацию при временной недоступности backend-компонентов.

Для разных источников используются различные интерфейсы. Prometheus-экспортеры передают метрики по HTTP, сетевые устройства могут опрашиваться по SNMP или отправлять SNMP traps, состояние серверного оборудования контролируется через IPMI, а собственные приложения могут подключаться через программные интерфейсы.

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

Метрики и совместимость с Prometheus

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

"Астра Мониторинг" построен с учетом экосистемы Prometheus. Актуальная документация указывает использование Prometheus exposition format для метрик и PromQL для запросов. Передача от агента на серверную часть может осуществляться через vmagent и механизм remote_write.

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

Количество временных рядов при этом необходимо контролировать: высокая кардинальность labels увеличивает объем хранилища и вычислительную нагрузку. Поэтому при проектировании мониторинга следует определять не только то, какие показатели нужны, но и набор меток, по которым они будут детализироваться.

Централизованный сбор и анализ логов

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

"Астра Мониторинг" позволяет централизованно собирать логи, выполнять их предварительную обработку, добавлять метаданные, искать и фильтровать записи. Журналы могут использоваться и как источник для правил мониторинга. Например, событие может формироваться при появлении определенного типа ошибок или других заданных условий. Возможность алертинга на основе логов развивается в актуальной линейке платформы.

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

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

Трассировки и APM

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

Для этого используется распределенный трейсинг. Trace описывает путь одной транзакции, а spans - отдельные этапы ее выполнения. "Астра Мониторинг" позволяет просматривать дерево спанов, длительность операций и статусы запросов.

В документации описаны два основных подхода к получению трассировок: автоматический сбор с использованием eBPF и инструментирование приложения с помощью OpenTelemetry SDK. Первый вариант позволяет собирать часть информации без изменения кода приложения. Второй дает разработчику больше контроля над структурой спанов, дополнительными атрибутами и передачей бизнес-контекста. Данные передаются с использованием OpenTelemetry-протоколов, а для хранения трассировок применяется ClickHouse.

В версии 1.5 предусмотрен мониторинг бизнес-транзакций с RED-показателями Rate, Errors и Duration, а также дальнейшее развитие карты сервисов. Эти средства позволяют анализировать уже не отдельный сервер, а последовательность компонентов, участвующих в обработке запроса.

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

Наблюдаемость Kubernetes и контейнерной среды

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

В "Астра Мониторинг" предусмотрен специализированный сценарий для Kubernetes. Платформа позволяет контролировать кластеры, ноды, пространства имен, Deployments, DaemonSets, StatefulSets, CronJobs, сервисы и pod. Расширенный раздел мониторинга Kubernetes вошел в версию 1.4 и развивается в последующих выпусках.

Для диагностики контейнерной среды полезно анализировать не только потребление CPU и памяти нод, но и состояние объектов оркестратора, рестарты pod, доступность сервисов и ошибки выполнения рабочих нагрузок. Дополнительный контекст могут дать логи контейнеров и распределенные трассировки приложений.

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

Наблюдение за базами данных

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

Документация "Астра Мониторинг" содержит сценарии для PostgreSQL, MongoDB, Microsoft SQL Server, MySQL, MariaDB, ClickHouse и Redis. В зависимости от конкретной СУБД применяются встроенные Prometheus-совместимые метрики или внешние экспортеры.

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

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

Сетевое и серверное оборудование

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

Для сетевых устройств "Астра Мониторинг" поддерживает SNMP polling и прием SNMP traps. Опрос используется для регулярного получения показателей, а trap позволяет оборудованию самостоятельно передать сигнал о событии. Для аппаратного контроля серверов предусмотрен IPMI.

Глубина такого контроля зависит от конкретного оборудования, доступных MIB и настроек интерфейсов управления. Само наличие поддержки SNMP не означает, что каждое устройство будет предоставлять одинаковый набор данных.

Мониторы, алерты и обнаружение аномалий

Собрать телеметрию недостаточно - необходимо определить условия, которые требуют реакции. В "Астра Мониторинг" для этого используются мониторы. Актуальная версия позволяет создавать правила на основе метрик, логов, трейсов и SNMP-трапов.

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

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

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

Оповещения, эскалации и управление инцидентами

Когда монитор обнаруживает проблему, информация должна попасть к специалисту, который отвечает за соответствующий сервис. В документации "Астра Мониторинг" предусмотрены уведомления через email, Telegram, Mattermost и webhook.

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

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

Настройка алертинга требует дисциплины. Если дежурный получает сотни незначимых уведомлений, возникает эффект alert fatigue: критичный сигнал становится сложнее заметить среди информационного шума. Поэтому каждое аварийное правило должно иметь понятный смысл, владельца и ожидаемое действие.

Работа с инцидентами и поиск причины проблемы

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

Объединение разных типов телеметрии сокращает количество переключений между отдельными инструментами. Например, расследование может начинаться с превышения времени ответа приложения. Затем специалист проверяет инфраструктурные метрики, переходит к трассам медленных запросов и анализирует логи проблемного микросервиса.

Для распределенных систем полезна карта сервисов, позволяющая увидеть зависимости между компонентами. Если один сервис вызывает несколько других, такая схема упрощает поиск участка, на котором возрастает задержка или количество ошибок. В версии 1.5 возможности фильтрации карты сервисов были расширены.

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

Развертывание и масштабирование

Нагрузка на платформу наблюдаемости определяется не только числом серверов. Существенное влияние имеют частота сбора метрик, количество временных рядов, объем логов, интенсивность трассировок и срок хранения информации.

Актуальная документация предусматривает несколько вариантов топологии. Конфигурация S размещается на одном сервере, в варианте M сервер платформы и база данных разделены, а вариант L рассчитан на кластер из трех и более узлов.

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

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

Что учитывать перед внедрением

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

Затем проектируется схема сбора: где нужны агенты, какие системы используют экспортеры, где необходимы SNMP и IPMI, какие приложения будут инструментированы OpenTelemetry и требуется ли прокси для изолированных сегментов.

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

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

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

Ограничения платформ наблюдаемости

"Астра Мониторинг", как и другие observability-платформы, не обеспечивает отказоустойчивость приложения автоматически. Система может обнаружить недоступность сервера или рост количества ошибок, однако для продолжения работы нужны резервные экземпляры, кластеризация, репликация или другие механизмы восстановления.

Качество диагностики напрямую зависит от телеметрии. Если приложение не передает значимые метрики, пишет малоинформативные логи, а трассировка обрывается между микросервисами, платформа не сможет самостоятельно получить отсутствующий контекст.

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

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

Заключение

"Астра Мониторинг" представляет собой российскую платформу наблюдаемости ит-инфраструктуры, предназначенную для контроля физических и виртуальных серверов, контейнерных сред, сетевого и серверного оборудования, баз данных, приложений и сервисов. Она объединяет метрики, централизованные журналы, распределенные трассировки и события, а также предоставляет механизмы мониторов, оповещений и эскалаций.

Архитектура платформы использует распределенный сбор данных через агентов и экспортеры, совместима с подходами Prometheus и OpenTelemetry, поддерживает SNMP и IPMI. Отдельные сценарии предусмотрены для Kubernetes, баз данных и продуктов экосистемы "Группы Астра".

Главная практическая задача observability-платформы состоит не в отображении большого количества графиков, а в связывании сигналов разных уровней. Метрика помогает увидеть отклонение, лог - найти сообщение об ошибке, трассировка - определить проблемный участок цепочки, а карта сервисов - понять зависимости между компонентами.

При этом эффективность "Астра Мониторинг" определяется не только возможностями программного продукта. Необходимо правильно выбрать источники телеметрии, настроить пороги и эскалации, рассчитать хранение, ограничить избыточный сбор данных и сформировать процессы реагирования. Поэтому платформу следует рассматривать как инструмент диагностики и наблюдаемости ИТ-инфраструктуры, который работает в составе общей системы эксплуатации, а не как самостоятельное средство обеспечения отказоустойчивости.

Похожие записи: