Создание и проверка пользовательского файла конфигурации для метрик Prometheus в Azure Monitor
В дополнение к целевым объектам по умолчанию, которые агент Azure Monitor Prometheus ломает по умолчанию, используйте следующие действия, чтобы предоставить агенту больше конфигурации с помощью конфигурации конфигурации. Агент Azure Monitor Prometheus не понимает или обрабатывает CRD оператора обработки для конфигурации слома, но вместо этого использует собственную конфигурацию Prometheus, как определено в конфигурации Prometheus.
Ниже приведены три конфигурации, которые можно использовать для обработки пользовательских целевых объектов.
- ama-metrics-prometheus-config (рекомендуется) — при создании конфигурации с этим именем задания слома, определенные в нем, выполняются из метрик Azure Monitor реплика pod, запущенных в кластере.
- 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
пространстве имен. Метрики Azure Monitor реплика pod перезапускается в 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 pod для журналов ama-metrics-prometheus-config-node configmap) с помощью журналов kubectl и убедитесь, что в разделе "Start Merging Default" и Custom Prometheus Config нет ошибок с префиксом 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']
Следующие шаги
- Дополнительные сведения о сборе метрик Prometheus.