Sdílet prostřednictvím


Vytvoření a ověření vlastního konfiguračního souboru pro metriky Prometheus ve službě Azure Monitor

Kromě výchozích cílů výstřižků, které agent Azure Monitor Prometheus ve výchozím nastavení šrotuje, použijte následující kroky k zajištění další konfigurace výstřižků pro agenta pomocí mapy configmap. Agent Azure Monitor Prometheus nerozumí crd operátoru procesu pro konfiguraci výstřižku, ale místo toho používá nativní konfiguraci Prometheus definovanou v konfiguraci Prometheus.

Tři mapy konfigurace, které lze použít pro vlastní výstřižky cílů, jsou :

  • ama-metrics-prometheus-config (doporučeno) – Když se vytvoří mapa konfigurace s tímto názvem, spustí se úlohy, které jsou v něm definované, z podu repliky metrik služby Azure Monitor spuštěný v clusteru.
  • ama-metrics-prometheus-config-node (Advanced) – Když se vytvoří mapa konfigurace s tímto názvem, spustí se úlohy výstřižky definované v něm z každého podu démona Linuxu spuštěného v clusteru. Další informace naleznete v tématu Rozšířené nastavení.
  • ama-metrics-prometheus-config-node-windows (Upřesnit) – Když se vytvoří mapa konfigurace s tímto názvem, spustí se úlohy výstřižky definované v ní z každé sady démon windows . Další informace naleznete v tématu Rozšířené nastavení.

Vytvoření konfiguračního souboru Prometheus

Jedním ze jednodušších způsobů, jak vytvořit úlohy konfigurace Prometheus:

  • Krok:1 Použití konfiguračního souboru (yaml) k vytvoření nebo definování úloh výstřižků
  • Krok:2 Ověřte konfigurační soubor výstřižku pomocí vlastního nástroje (jak je uvedeno v tomto článku) a pak tento konfigurační soubor převeďte na configmap.
  • Krok:3 Nasaďte konfigurační soubor výstřižku jako konfigurační mapu do clusterů.

Tímto způsobem je jednodušší vytvořit konfiguraci yaml (což je extrémně citlivé na místo) a nepřidávejte nezamýšlené mezery přímo vytvořením konfigurace výstřižků uvnitř mapy konfigurace.

Vytvořte konfigurační soubor Prometheus scrape s názvem prometheus-config. Další informace najdete v tipech konfigurace a příkladech , které poskytují další podrobnosti o konfiguraci výstřižků pro Prometheus. Můžete také odkazovat na Prometheus.io referenční informace o konfiguraci výstřižků. Konfigurační soubor obsahuje seznam konfigurací výstřižků v oddílu oddílu scrape_configs a může volitelně použít globální oddíl pro nastavení globálního scrape_intervalsouboru , scrape_timeouta external_labels.

Tip

Změny globálního oddílu ovlivní výchozí konfigurace a vlastní konfiguraci.

Tady je ukázkový konfigurační soubor Prometheus scrape:

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"

Ověření konfiguračního souboru pro výstřižky

Agent pomocí vlastního promconfigvalidator nástroje ověří konfiguraci Prometheus, která je jí předána prostřednictvím mapy konfigurace. Pokud konfigurace není platná, pak se vlastní konfigurace zamítne agentem doplňku. Jakmile máte konfigurační soubor Prometheus, můžete nástroj volitelně použít promconfigvalidator k ověření konfigurace před vytvořením mapy konfigurace, kterou agent využívá.

Tento promconfigvalidator nástroj se dodává do doplňků metrik služby Azure Monitor. Ke stažení nástroje pro ověření můžete použít libovolný z ama-metrics-node-* podů v kube-system oboru názvů ve vašem clusteru. Slouží kubectl cp ke stažení nástroje a jeho konfigurace:

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

Po zkopírování spustitelného souboru a yaml vyhledejte cestu ke konfiguračnímu souboru Prometheus, který jste vytvořili. Potom nahraďte <config path> příkazem a spusťte validátor příkazem:

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

Spuštění validátoru vygeneruje sloučený konfigurační soubor merged-otel-config.yaml , pokud není k dispozici žádná cesta s volitelným output parametrem. Nepoužívejte tento automaticky vygenerovaný sloučený soubor jako konfiguraci agenta kolektoru metrik, protože se používá jenom pro účely ověřování a ladění nástrojů.

Nasazení konfiguračního souboru jako mapy konfigurace

Váš vlastní konfigurační soubor Prometheus se používá jako pole pojmenované prometheus-config uvnitř objektů configmap (nebo) ama-metrics-prometheus-config (nebo) ama-metrics-prometheus-config-nodeama-metrics-prometheus-config-node-windows v kube-system oboru názvů. Konfigurační mapu můžete vytvořit z konfiguračního souboru výstřižku, který jste vytvořili výše, přejmenováním konfiguračního souboru Prometheus na prometheus-config (bez přípony souboru) a spuštěním jednoho nebo několika následujících příkazů v závislosti na tom, kterou konfigurační mapu chcete vytvořit pro vlastní konfiguraci úloh výstřižků.

Příklad; – vytvoření mapy konfigurace, kterou bude používat sada odpovědí

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

Tím se vytvoří mapa konfigurace pojmenovaná ama-metrics-prometheus-config v kube-system oboru názvů. Pod repliky metrik Azure Monitoru se restartuje v 30 až 60 sekundách, aby se použila nová konfigurace. Pokud chcete zjistit, jestli nedošlo k problémům s ověřováním konfigurace, zpracováním nebo sloučením, můžete se podívat na ama-metrics pody repliky.

Příklad; – vytvoření konfigurační mapy, kterou bude používat daemonSet linuxu

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

Tím se vytvoří mapa konfigurace pojmenovaná ama-metrics-prometheus-config-node v kube-system oboru názvů. Aby se nová konfigurace použila, restartuje se každý pod Služby démon Azure Monitor pro Linux v 30 až 60 sekundách. Pokud chcete zjistit, jestli nedošlo k problémům s ověřováním konfigurace, zpracováním nebo sloučením, můžete se podívat na pody linuxového deamonsetu ama-metrics-node .

Příklad;- vytvoření konfigurační mapy, která se má používat v daemonSet systému Windows

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

Tím se vytvoří mapa konfigurace pojmenovaná ama-metrics-prometheus-config-node-windows v kube-system oboru názvů. Každá metrika služby Azure Monitor restartuje pod daemonSet pro Windows v 30 až 60 sekundách, aby se použila nová konfigurace. Pokud chcete zjistit, jestli nedošlo k problémům s ověřováním, zpracováním nebo slučováním konfigurace, můžete se podívat na ama-metrics-win-node pody windows deamonset.

Před spuštěním následujícího příkazu se ujistěte, že je konfigurační soubor Prometheus pojmenován prometheus-config , protože název souboru se používá jako název nastavení konfigurační mapy.

Tím se vytvoří mapa konfigurace pojmenovaná ama-metrics-prometheus-config v kube-system oboru názvů. Pod metriky Azure Monitoru se restartuje, aby se použila nová konfigurace. Pokud chcete zjistit, jestli nedošlo k problémům s ověřováním, zpracováním nebo sloučením konfigurace, můžete se podívat na ama-metrics pody.

Tady je ukázka ama-metrics-prometheus-config mapy konfigurace.

Řešení problému

Pokud jste úspěšně vytvořili mapu konfigurace (ama-metrics-prometheus-config nebo ama-metrics-prometheus-config-node) v oboru názvů kube-system a stále se nezobrazují vlastní cíle, které se šrotují, Zkontrolujte chyby v protokolech podu repliky pro protokoly konfigurace ama-metrics-prometheus-configmap nebo v protokolech podů DaemonSet pro ama-metrics-prometheus-config-node configmap) pomocí protokolů kubectl a ujistěte se, že v protokolu kubectl nejsou žádné chyby.Zahájení sloučení výchozího a vlastního konfiguračního oddílu Prometheus s předponou prometheus-config-merger

Poznámka:

Pokročilé nastavení: Konfigurace vlastních úloh výstřižků Prometheus pro daemonSet

Pod ama-metrics repliky využívá vlastní konfiguraci Prometheus a sešrotuje zadané cíle. U clusteru s velkým počtem uzlů a podů a velkým objemem metrik, které se dají sešrotovat, je možné některé z použitelných vlastních cílů výstřižků načíst z podu jedné ama-metrics repliky do podu ama-metrics Démonset.

Konfigurační mapa ama-metrics-prometheus-config-node je podobná konfigurační mapě sady replik a je možné ji vytvořit tak, aby měla na každém uzlu statické výstřižky. Konfigurace výstřižků by měla cílit pouze na jeden uzel a neměla by používat poznámky ke zjišťování služeb nebo podům. V opačném případě se každý uzel pokusí ztlumit všechny cíle a provede mnoho volání na server rozhraní API Kubernetes.

Vlastní cíle výstřižků můžou sledovat stejný formát pomocí static_configs cílů a pomocí $NODE_IP proměnné prostředí a zadáním portu, který se má sešrotovat. Každý pod daemonSet převezme konfiguraci, zlikviduje metriky a odešle je pro tento uzel.

Příklad:- Následující node-exporter konfigurace je jedním z výchozích cílů pro pody daemonSet. Používá proměnnou $NODE_IP prostředí, která je již nastavená pro každý ama-metrics kontejner doplňků, aby cílila na konkrétní port v uzlu.

- 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']

Další kroky