Поделиться через


Azure Monitor и Prometheus

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

Для сбора метрик можно использовать Prometheus как управляемую Azure службу или в качестве самостоятельной службы. Метрики Prometheus можно собирать из кластеров Azure Kubernetes Service (AKS), кластеров Kubernetes с поддержкой Azure Arc, виртуальных машин и масштабируемых наборов виртуальных машин.

Метрики Prometheus хранятся в рабочей области Azure Monitor. Вы можете анализировать и визуализировать данные в рабочей области с помощью обозревателя метрик с помощью языка запросов Prometheus (PromQL) и Управляемой Grafana Azure.

Important

Использование Azure Monitor для управления и размещения Prometheus предназначено для хранения сведений о работоспособности служб клиентских компьютеров и приложений. Он не предназначен для хранения персональных данных. Настоятельно рекомендуется не отправлять конфиденциальную информацию (например, имена пользователей и номера кредитных карт) в поля, размещенные в Azure Monitor Prometheus, такие как имена метрик, имена меток или значения меток.

Управляемая служба Azure Monitor для Prometheus

Управляемая служба Azure Monitor для Prometheus — это компонент метрик Azure Monitor, который предоставляет полностью управляемую и масштабируемую среду для запуска Prometheus. Это упрощает развертывание, управление и масштабирование Prometheus в AKS и Kubernetes с поддержкой Azure Arc, чтобы сосредоточиться на мониторинге приложений и инфраструктуры.

Azure Monitor как полностью управляемая служба для Prometheus автоматически развертывает Prometheus в AKS или Kubernetes с поддержкой Azure Arc. Служба обеспечивает высокий уровень доступности, гарантии соглашения об уровне обслуживания и автоматическое обновление программного обеспечения. Он предоставляет хранилище метрик с высокой степенью масштабирования, которое сохраняет данные до 18 месяцев.

Управляемая служба Azure Monitor для Prometheus предоставляет предварительно настроенные оповещения, правила и панели мониторинга. С помощью рекомендуемых панелей мониторинга из сообщества Prometheus и собственной интеграции Grafana вы можете немедленно выполнить комплексный мониторинг. Управляемая служба Azure Monitor для Prometheus интегрируется с Azure Managed Grafana, а также работает с самостоятельно управляемой Grafana.

Ценообразование основано на вводе данных и запросах, без дополнительных затрат на хранение. Дополнительные сведения см. на вкладке "Метрики" в ценах Azure Monitor.

Note

Управляемый Prometheus от Azure поддерживает горизонтальное автоматическое масштабирование pods для ReplicaSet в кластерах Kubernetes AKS. Дополнительные сведения см. в статье "Автомасштабирование ".

Включение управляемой службы Azure Monitor для Prometheus

Управляемая служба Azure Monitor для Prometheus собирает данные из AKS и Kubernetes с поддержкой Azure Arc.

Чтобы включить управляемую службу Azure Monitor для Prometheus, необходимо создать рабочую область Azure Monitor для хранения метрик. Затем можно подключить службы, которые собирают метрики Prometheus:

Чтобы включить управляемый сервис Prometheus для изолированных облаков Microsoft Azure, обратитесь в службу поддержки.

Самостоятельно управляемый Prometheus, размещенный в Azure

Кроме управляемой службы Prometheus, вы можете установить и управлять своим собственным экземпляром Prometheus, а также использовать удаленную запись для хранения метрик в рабочей области Azure Monitor.

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

  • Виртуальные машины Azure
  • Масштабируемые наборы виртуальных машин Azure
  • Серверы с поддержкой Azure Arc
  • Управляемые пользователем кластеры Kubernetes, размещенные в Azure или с поддержкой Azure Arc

Самоуправляемые службы Kubernetes

Отправляйте метрики из самостоятельно управляемого Prometheus в кластерах Kubernetes. Дополнительные сведения о удаленной записи в рабочие области Azure Monitor для служб Kubernetes см. в следующих статьях:

Виртуальные машины и масштабируемые наборы виртуальных машин

Отправка данных из самостоятельно управляемого Prometheus на виртуальных машинах и наборах виртуальных машин с масштабированием. Виртуальные машины могут находиться в управляемой Azure среде или локальной среде. Дополнительные сведения см. в статье "Отправка метрик Prometheus" из виртуальных машин, масштабируемых наборов или кластеров Kubernetes в рабочую область Azure Monitor.

Data storage

Метрики Prometheus хранятся в рабочей области Azure Monitor. Данные хранятся в базе данных временных рядов, которую можно запрашивать с помощью PromQL. Данные из нескольких источников данных Prometheus можно хранить в одной рабочей области Azure Monitor. Дополнительные сведения см. в статье об архитектуре рабочей области Azure Monitor.

Рабочие области Azure Monitor хранят данные в течение 18 месяцев.

Запросы и анализирование метрик Prometheus

Данные Prometheus извлекаются с помощью PromQL. Вы можете написать собственные запросы, использовать запросы из сообщества с открытым кодом и использовать панели мониторинга Grafana, включающие запросы PromQL. Дополнительные сведения см. в разделе "Запрос Prometheus" на веб-сайте Prometheus .

Следующие службы Azure поддерживают запросы метрик Prometheus из рабочей области Azure Monitor:

Обозреватель метрик Azure Monitor с помощью PromQL

Используйте обозреватель метрик с PromQL (предварительная версия) для анализа и визуализации платформы и метрик Prometheus. Обозреватель метрик с PromQL доступен в области метрик в рабочей области Azure Monitor, где хранятся метрики Prometheus. Дополнительные сведения см. в обозревателе метрик Azure Monitor с помощью PromQL.

Снимок экрана: запрос PromQL в обозревателе метрик Azure Monitor.

Azure workbooks

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

Grafana integration

Визуализация метрик Prometheus с помощью Grafana, управляемой Azure. Подключите рабочую область Azure Monitor к рабочей области Grafana, чтобы ее можно было использовать в качестве источника данных на панели мониторинга Grafana. Затем у вас есть доступ к нескольким предварительно созданным панелям мониторинга, которые используют метрики Prometheus. Вы также можете создавать любое количество пользовательских панелей мониторинга. Дополнительные сведения см. в статье "Связывание рабочей области Grafana".

API запросов Prometheus

Используйте PromQL через REST API для запроса метрик Prometheus, хранящихся в рабочей области Azure Monitor. Дополнительные сведения см. в разделе "Метрики запроса Prometheus" с помощью API и PromQL.

Правила и оповещения

Prometheus поддерживает правила записи и правила генерации оповещений с помощью запросов PromQL. Управляемая служба Azure Monitor для Prometheus автоматически развертывает правила и оповещения. Метрики, которые фиксируются правилами регистрации, хранятся в рабочей области Azure Monitor. Панели мониторинга или другие правила могут запрашивать метрики.

Правила генерации оповещений и правила записи можно создавать и управлять ими с помощью управляемой службы Azure Monitor для групп правил Prometheus. Для кластера AKS набор предопределенных правил генерации оповещений Prometheus и правил записи помогает быстро приступить к работе.

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

Ограничения и квоты служб

У управляемой службы Azure Monitor для Prometheus есть ограничения и квоты по умолчанию для приема. Когда вы достигнете пределов приема данных, может произойти ограничение скорости. Вы можете запросить увеличение этих ограничений. Дополнительные сведения см. в статье Ограничения службы Azure Monitor.

Чтобы отслеживать метрики приема и получать уведомления о них, см. статью "Мониторинг приема метрик рабочей области Azure Monitor".

Limitations

Следующие ограничения применяются к управляемой службе Azure Monitor для Prometheus:

  • Минимальная частота для очистки и хранения метрик составляет 1 секунду.
  • Во время обновления узлов могут возникать пробелы продолжительностью от 1 до 2 минут в некоторых сборках метрик от сборщика на уровне кластера. Этот временной разрыв связан с обычно выполняемым действием службы Azure Kubernetes по обновлению узлов в вашем кластере. Это поведение не влияет на рекомендуемые правила генерации оповещений.
  • Управляемый Prometheus для узлов Windows не включается автоматически. Для включения мониторинга узлов и pod'ов Windows в ваших кластерах, см. "Включение коллекции метрик Windows (предварительный просмотр)".

Case sensitivity

Управляемая служба Azure Monitor для Prometheus является системой, в которой не различаются регистры. Он обрабатывает строки (например, имена метрик, имена меток или значения меток) как те же временные ряды, если они отличаются от других временных рядов только в случае строки.

Note

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

В управляемой службе Prometheus следующие временные ряды считаются одинаковыми:

diskSize(cluster="eastus", node="node1", filesystem="usr_mnt")
diskSize(cluster="eastus", node="node1", filesystem="usr_MNT")

Приведенные выше примеры представляют собой один временный ряд в базе данных временных рядов. Действуют следующие ограничения:

  • Любые образцы, которые загружаются против них, хранятся так же, как если бы они были собраны или загружены для единой временной серии.
  • Если предыдущие примеры принимаются с той же временной меткой, один из них может быть случайно удалён.
  • Регистр текста, хранящийся в базе данных временных рядов и возвращаемый запросом, не является предсказуемым. Один и тот же временный ряд может возвращать разные регистры в разное время.
  • Любое имя метрики или совпадение имени метки/значения, присутствующие в запросе, извлекаются из базы данных временных рядов путем сравнения без учета регистра. Если в запросе используется механизм сопоставления с учетом регистра, он автоматически обрабатывается как нечувствительный при сравнении строк.

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

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

Предотвращение дублирования временных рядов

Prometheus не поддерживает повторяющиеся временные ряды. Azure Managed Prometheus демонстрирует пользователям их как 422 ошибки, а не молча удаляет повторяющиеся временные ряды. Пользователи, сталкивающиеся с этими ошибками, должны принять меры, чтобы избежать дублирования временных рядов.

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

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

Имена метрик, имена меток и значения меток

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

Property Limit
Длина имени метки Меньше или равно 511 символам. Если это ограничение превышается для любого временного ряда в задании, всё задание сканирования терпит неудачу, и метрики удаляются из этого задания перед приёмом. Вы можете увидеть up=0 для этого задания, а также целевой Ux показывает причину up=0.
Длина значения метки Меньше или равно 1023 символам. Если это ограничение превышается для любого временного ряда в задании, весь процесс сбора данных завершается ошибкой, и метрики удаляются из этого задания до обработки. Вы можете увидеть up=0 для этого задания, а также целевой Ux показывает причину up=0.
Количество меток на временные ряды Меньше или равно 63. Если это ограничение превышается для любого временного ряда в задании, всё задание сканирования терпит неудачу, и метрики удаляются из этого задания перед приёмом. Вы можете увидеть up=0 для этого задания, а также целевой Ux показывает причину up=0.
Длина имени метрики Меньше или равно 511 символам. Если это ограничение превышается для всех временных рядов в задании, удаляются только определенные ряды. MetricextensionConsoleDebugLog содержит трассировки для удаленной метрики.
Имена ярлыков с различными регистрами Две метки в одном и том же образце метрик, при разных регистрах обрабатываются как наличие повторяющихся меток и удаляются при приеме. Например, временные ряды my_metric{ExampleLabel="label_value_0", examplelabel="label_value_1} удаляются из-за повторяющихся меток, так как ExampleLabel и examplelabel рассматриваются как одно и то же имя метки.

Prometheus references

Ниже приведены ссылки на документацию Prometheus: