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


Azure Monitor и Prometheus

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

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

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

Это важно

Использование 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.

Замечание

Управляемый 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.

Хранилище данных

Метрики 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

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

Интеграция Grafana

Визуализация метрик 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".

Ограничения

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

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

Конфиденциальность регистра

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

Замечание

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

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

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

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

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

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

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

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

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

Недвижимость Лимит
Длина имени метки Меньше или равно 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

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