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_interval
souboru , scrape_timeout
a 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-node
ama-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']