Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si abilita la raccolta di metriche Prometheus dal cluster Kubernetes, viene usata una raccolta predefinita per determinare le metriche da raccogliere. Questo articolo descrive come personalizzare questa raccolta per soddisfare i requisiti di monitoraggio specifici.
ConfigMap
L'oggetto ConfigMap seguente viene usato per configurare la configurazione di scrape e altre impostazioni per il componente aggiuntivo per le metriche. Questo ConfigMap non esiste per impostazione predefinita nel cluster quando è abilitato Prometheus gestito.
| ConfigMap | Descrizione |
|---|---|
ama-metrics-settings-configmap |
Include le impostazioni di base seguenti. - Alias del cluster. Modifica il valore dell'etichetta cluster in ogni metrica inserita dal cluster.- Abilitare/disabilitare le destinazioni di scrape predefinite. - Abilitare lo scorporo basato sull'annotazione dei pod per spazio dei nomi. - Elenchi di metriche da conservare. Controlla le metriche consentite da ogni destinazione predefinita. - Intervalli di estrazione per gli obiettivi predefiniti. - Modalità di debug per identificare i problemi di metrica mancanti. Vedere risoluzione dei problemi. |
Modificare le impostazioni in ConfigMap in base alle indicazioni seguenti e quindi applicarle usando il comando seguente. AMA-Metrics pod li rileveranno e verranno riavviati in 2-3 minuti per applicare le impostazioni di configurazione specificate.
kubectl apply -f .\ama-metrics-settings-configmap.yaml
Abilitare e disabilitare le destinazioni predefinite
La configurazione predefinita delle metriche di Prometheus in Monitoraggio di Azure elenca le destinazioni e le metriche predefinite raccolte per impostazione predefinita dal cluster Kubernetes. Per abilitare/disabilitare lo scraping di una di queste destinazioni, aggiornare l'impostazione per la destinazione nella default-scrape-settings-enabled sezione di ConfigMap su true o false.
Ad esempio, per abilitare lo scraping di coredns che è disabilitato per impostazione predefinita, aggiornare le impostazioni come segue:
default-scrape-settings-enabled: |-
kubelet = true
coredns = true
cadvisor = true
kubeproxy = false
...
Impostazioni dell'intervallo di scorporo
L'intervallo di scrape predefinito per tutte le destinazioni predefinite è di 30 secondi. Per modificare questo intervallo per qualsiasi destinazione, è possibile aggiornare l'impostazione nella default-targets-scrape-interval-settings sezione di ConfigMap.
Ad esempio, per modificare l'intervallo di scrape per kubelet a 60 secondi, aggiornare l'impostazione come segue:
default-targets-scrape-interval-settings: |-
kubelet = "60s"
coredns = "30s"
cadvisor = "30s"
...
Abilitare lo scorporo basato sulle annotazioni dei pod
Aggiungere annotazioni ai pod del cluster per scorporare i pod dell'applicazione senza creare una configurazione di Prometheus personalizzata. Per abilitare lo scorporo dei pod con annotazioni specifiche, aggiungere l'espressione regolare per lo spazio dei nomi dei pod con le annotazioni che si desidera scorporare podannotationnamespaceregex nella sezione podannotationnamespaceregex della ConfigMap.
Ad esempio, l'impostazione seguente scorpora i pod con annotazioni solo negli spazi dei nomi kube-system e my-namespace:
pod-annotation-based-scraping: |-
podannotationnamespaceregex = "kube-system|my-namespace"
Aggiungere annotazioni alla metadata sezione di ConfigMap.
prometheus.io/scrape: "true" è necessario per la raccolta dei dati dal pod, mentre prometheus.io/path e prometheus.io/port indicano il percorso e la porta dove le metriche sono ospitate nel pod. L'esempio seguente definisce le annotazioni per un pod che ospita le metriche in <pod IP>:8080/metrics.
metadata:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/metrics'
prometheus.io/port: '8080'
Avviso
L'analisi delle annotazioni dei pod da molti spazi dei nomi può generare un volume molto elevato di metriche a seconda del numero di pod con annotazioni.
Personalizzare le metriche raccolte dalle destinazioni predefinite
Per le destinazioni predefinite vengono raccolte solo metriche minime, come descritto in Profilo di inserimento minimo per le metriche di Prometheus in Monitoraggio di Azure. Per raccogliere tutte le metriche dalle destinazioni predefinite, impostare minimalingestionprofile su false nella sezione default-targets-metrics-keep-list della ConfigMap.
minimalingestionprofile = false
In alternativa, è possibile aggiungere metriche da raccogliere per qualsiasi destinazione predefinita aggiornando le keep-lists sotto default-targets-metrics-keep-list.
Ad esempio, kubelet è l'impostazione di filtraggio delle metriche per il kubelet di destinazione predefinito. Usare lo script seguente per filtrare le metriche raccolte per le destinazioni predefinite usando il filtro basato su regex.
kubelet = "metricX|metricY"
apiserver = "mymetric.*"
Nota
Se si usano le virgolette o le barre rovesciate nell'espressione regolare, è necessario eseguirne l'escape usando una barra rovesciata come gli esempi "test\'smetric\"s\"" e testbackslash\\*.
Se si desidera personalizzare ulteriormente le destinazioni predefinite per modificare le proprietà, ad esempio la frequenza di raccolta o le etichette, disabilitare tale destinazione impostandone il valore su false. Creare, quindi, un processo personalizzato per la destinazione come descritto in Personalizzare lo scorporo delle metriche di Prometheus in Monitoraggio di Azure.
Alias del cluster
L'ultima parte dell'ID risorsa del cluster viene aggiunta a ogni serie temporale per identificare in modo univoco i dati. Ad esempio, se l'ID risorsa è /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-name/providers/Microsoft.ContainerService/managedClusters/myclustername, l'etichetta del cluster è myclustername. Per sostituire questa etichetta del cluster, aggiornare l'impostazione cluster_alias sotto prometheus-collector-settings.
Nota
Sono consentiti solo caratteri alfanumerici. Tutti gli altri caratteri vengono sostituiti con _.
Se si abilitano le regole di registrazione e avvisi, assicurarsi di usare il nome dell'alias del cluster nel parametro del nome del cluster del modello di adozione delle regole affinché le regole funzionino correttamente.
prometheus-collector-settings: |-
cluster_alias = ""
Modalità di debug
Per visualizzare ogni metrica che viene raccolta a scopo di debug, l'agente del componente aggiuntivo per le metriche può essere configurato per funzionare in modalità debug aggiornando l'impostazione enabled su true all'interno della configurazione debug-mode.
Avviso
Questa modalità può influire sulle prestazioni e deve essere abilitata solo per un breve periodo di tempo a scopo di debug.
Kube-state-metrics
Per eseguire l'override dei parametri di avvio predefiniti (resources, metric-labels-allowlist e metric-annotations-allowlist) della distribuzione kube-state-metrics (ama-metrics-ksm) installata come parte dell'abilitazione di Managed Prometheus, usare ama-metrics-settings-configmap.
Le impostazioni nella mappa di configurazione per labels_allow_list e annotations_allow_list sostituiscono i parametri impostati durante l'onboarding per ksm-metrics-labels-allow-list e ksm-metrics-annotations-allow-list
Le impostazioni nella mappa di configurazione per le risorse sostituiscono gli agenti di raccolta predefiniti impostati per la distribuzione ama-metrics-ksm
Si noti che di seguito è riportata una configurazione yaml:
ksm-config: |-
resources:
secrets: {}
configmaps: {}
labels_allow_list: # object name and label names
pods:
- app8
annotations_allow_list: # object name and annotation names
namespaces:
- kube-system
- default
Nota
La personalizzazione di questi valori può influire sui dati predefiniti raccolti come parte del processo kube-state-metrics e può comportare la mancata caricamento di dati da parte di determinati dashboard.
L'eliminazione dell'intera sezione (ksm-config) nell'impostazione configmap richiede la ricreazione della distribuzione ama-metrics-ksm. Questa operazione può essere eseguita eliminando il pod ama-metrics-ksm o eseguendo le operazioni di kubectl rollout restart deployment/ama-metrics -n kube-system
Consiglio di personalizzare solo questi 3 parametri quando necessario, l'impostazione di parametri aggiuntivi come override è uno scenario non supportato, se possibile, deve essere usato con cautela
Documentazione OSS per gli argomenti CLI di kube-state-metrics
Passaggi successivi
Configurare gli avvisi nelle metriche di Prometheus
Eseguire query sulle metriche di Prometheus
Altre informazioni sulla raccolta di metriche di Prometheus