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


Создание и проверка пользовательского файла конфигурации для метрик Prometheus в Azure Monitor

В дополнение к целевым объектам по умолчанию, которые агент Azure Monitor Prometheus ломает по умолчанию, используйте следующие действия, чтобы предоставить агенту больше конфигурации с помощью конфигурации конфигурации. Агент Azure Monitor Prometheus не понимает или обрабатывает CRD оператора обработки для конфигурации слома, но вместо этого использует собственную конфигурацию Prometheus, как определено в конфигурации Prometheus.

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

  • ama-metrics-prometheus-config (рекомендуется) — при создании конфигурации с этим именем задания слома, определенные в нем, выполняются из модуля pod реплики метрик Azure Monitor, запущенного в кластере.
  • ama-metrics-prometheus-config-node (Advanced) — при создании конфигурации с этим именем задания слома, определенные в нем, выполняются из каждого модуля Pod Linux DaemonSet, работающего в кластере. Дополнительные сведения см. в разделе "Расширенная настройка".
  • ama-metrics-prometheus-config-node-windows (Дополнительно) — при создании конфигурации с этим именем задания скребков, определенных в нем, выполняются из каждого окна DaemonSet. Дополнительные сведения см. в разделе "Расширенная настройка".

Создание файла конфигурации Prometheus

Один из простых способов создания заданий конфигурации Prometheus:

  • Шаг 1. Использование файла конфигурации (yaml) для создания и определения заданий слома
  • Шаг 2. Проверка файла конфигурации слома с помощью настраиваемого средства (как указано в этой статье) и преобразование этого файла конфигурации в configmap
  • Шаг 3. Развертывание файла конфигурации слома в виде карты конфигурации в кластерах.

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

Создайте файл конфигурации prometheus scrape с именем prometheus-config. Дополнительные сведения см . в советах по настройке и примерах , которые содержат дополнительные сведения о настройке конфигурации для Prometheus. Вы также можете ссылаться на Prometheus.io справочник по конфигурации слома. Файл конфигурации перечисляет конфигурации слома в разделе раздела scrape_configs и может при необходимости использовать глобальный раздел для настройки глобального scrape_interval, scrape_timeoutа также external_labels.

Совет

Изменения в глобальном разделе влияют на конфигурации по умолчанию и настраиваемую конфигурацию.

Ниже приведен пример файла конфигурации Prometheus:

global:
  scrape_interval: 30s
scrape_configs:
- job_name: my_static_config
  scrape_interval: 60s
  static_configs:
    - targets: ['my-static-service.svc.cluster.local:1234']

- job_name: prometheus_example_app
  scheme: http
  kubernetes_sd_configs:
    - role: service
  relabel_configs:
    - source_labels: [__meta_kubernetes_service_name]
      action: keep
      regex: "prometheus-example-service"

Проверка файла конфигурации скребка

Агент использует настраиваемое promconfigvalidator средство для проверки конфигурации Prometheus, предоставленной ему с помощью карты конфигурации. Если конфигурация недействительна, пользовательская конфигурация, заданная, отклоняется агентом надстройки. После получения файла конфигурации Prometheus можно дополнительно использовать promconfigvalidator средство для проверки конфигурации перед созданием конфигурации, используемой агентом.

Средство promconfigvalidator поставляется внутри надстройки надстроек метрик Azure Monitor. Вы можете использовать любой из ama-metrics-node-* модулей pod в пространстве имен в kube-system кластере, чтобы скачать средство для проверки. Используется kubectl cp для скачивания средства и его конфигурации:

for podname in $(kubectl get pods -l rsName=ama-metrics -n=kube-system -o json | jq -r '.items[].metadata.name'); do kubectl cp -n=kube-system "${podname}":/opt/promconfigvalidator ./promconfigvalidator;  kubectl cp -n=kube-system "${podname}":/opt/microsoft/otelcollector/collector-config-template.yml ./collector-config-template.yml; chmod 500 promconfigvalidator; done

После копирования исполняемого файла и yaml найдите путь к созданному файлу конфигурации Prometheus. Затем замените <config path> команду и запустите проверяющий элемент командой:

./promconfigvalidator/promconfigvalidator --config "<config path>" --otelTemplate "./promconfigvalidator/collector-config-template.yml"

При выполнении проверяющего элемента создается объединенный файл merged-otel-config.yaml конфигурации, если путь не указан с необязательным output параметром. Не используйте этот автоматически созданный объединенный файл в качестве конфигурации для агента сборщика метрик, так как он используется только для проверки и отладки инструментов.

Развертывание файла конфигурации в виде конфигурации

Пользовательский файл конфигурации Prometheus используется в качестве поля, именуемого prometheus-config kube-system внутри метрик addon configmap(или) ama-metrics-prometheus-config (или) ama-metrics-prometheus-config-node ama-metrics-prometheus-config-node-windows в пространстве имен. Вы можете создать карту конфигурации из файла конфигурации, созданного выше, переназначив файл prometheus-config конфигурации Prometheus (без расширения) и выполнив одну или несколько следующих команд в зависимости от конфигурации настраиваемой конфигурации конфигурации.

Ex;: создание конфигурации для использования с помощью набора replicsset

kubectl create configmap ama-metrics-prometheus-config --from-file=prometheus-config -n kube-system

При этом создается карта конфигурации с именем ama-metrics-prometheus-config в kube-system пространстве имен. Модуль pod реплики метрик Azure Monitor перезапускается в 30–60 с, чтобы применить новую конфигурацию. Чтобы узнать, возникли ли проблемы с проверкой конфигурации, обработкой или слиянием, можно просмотреть ama-metrics модули pod реплики.

Ex;— создание конфигурации для использования Linux DaemonSet

kubectl create configmap ama-metrics-prometheus-config-node --from-file=prometheus-config -n kube-system

При этом создается карта конфигурации с именем ama-metrics-prometheus-config-node в kube-system пространстве имен. Каждая метрика Linux DaemonSet метрики Azure Monitor перезапускается в 30–60 с, чтобы применить новую конфигурацию. Чтобы узнать, возникли ли проблемы с проверкой конфигурации, обработкой или слиянием, можно просмотреть ama-metrics-node модули pod deamonset для Linux.

Ex;— создание конфигурации для использования windows DaemonSet

kubectl create configmap ama-metrics-prometheus-config-node-windows --from-file=prometheus-config -n kube-system

При этом создается карта конфигурации с именем ama-metrics-prometheus-config-node-windows в kube-system пространстве имен. Каждая метрика Windows DaemonSet метрики Azure Monitor перезапускается в 30–60 с, чтобы применить новую конфигурацию. Чтобы узнать, возникли ли проблемы с проверкой конфигурации, обработкой или слиянием, можно просмотреть ama-metrics-win-node модули pod deamonset для Windows.

Убедитесь, что файл конфигурации Prometheus называется prometheus-config перед выполнением следующей команды, так как имя файла используется в качестве имени параметра конфигурации.

При этом создается карта конфигурации с именем ama-metrics-prometheus-config в kube-system пространстве имен. Модуль pod метрик Azure Monitor перезапускается, чтобы применить новую конфигурацию. Чтобы узнать, возникли ли проблемы с проверкой конфигурации, обработкой или слиянием, можно просмотреть ama-metrics модули pod.

Ниже приведен пример конфигурацииama-metrics-prometheus-config.

Устранение неполадок

Если вы успешно создали карту конфигурации (ama-metrics-prometheus-config или ama-metrics-prometheus-config-node) в пространстве имен kube-system и по-прежнему не отображают пользовательские целевые объекты, которые удаляются, Проверьте наличие ошибок в журналах pod ama-metrics-prometheus-config configmap или daemonSet для журналов ama-metrics-prometheus-config-node configmap) с помощью журналов kubectl и убедитесь, что в журналах kubectl нет ошибок.Начало слияния по умолчанию и настраиваемой конфигурации Prometheus с префиксом prometheus-config-слиянием

Примечание.

Расширенная настройка. Настройка пользовательских заданий скребка Prometheus для DaemonSet

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

Конфигурация ama-metrics-prometheus-config-node аналогична конфигурации набора реплик и может быть создана для создания статических конфигураций скребков на каждом узле. Конфигурация скребка должна быть нацелена только на один узел и не должна использовать заметки службы обнаружения и pod. В противном случае каждый узел пытается сломать все целевые объекты и выполняет много вызовов к серверу API Kubernetes.

Пользовательские целевые объекты очистки могут соответствовать одному и тому же формату, используя целевые объекты и используя static_configs $NODE_IP переменную среды и указывая порт для слома. Каждый модуль pod daemonSet принимает конфигурацию, удаляет метрики и отправляет их для этого узла.

Пример. Следующая node-exporter конфигурация является одной из целевых объектов по умолчанию для модулей pod DaemonSet. Она использует $NODE_IP переменную среды, которая уже задана для каждого ama-metrics контейнера надстроек для назначения определенного порта на узле.

- job_name: nodesample
  scrape_interval: 30s
  scheme: http
  metrics_path: /metrics
  relabel_configs:
  - source_labels: [__metrics_path__]
    regex: (.*)
    target_label: metrics_path
  - source_labels: [__address__]
    replacement: '$NODE_NAME'
    target_label: instance
  static_configs:
  - targets: ['$NODE_IP:9100']

Следующие шаги