Risoluzione dei problemi relativi alle metriche di Prometheus sui cluster Amazon e Kubernetes EKS - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi alle metriche di Prometheus sui cluster Amazon e Kubernetes EKS

Questa sezione fornisce assistenza per la risoluzione dei problemi di configurazione delle metriche Prometheus sui cluster Amazon e Kubernetes. EKS

Procedure generali di risoluzione dei problemi su Amazon EKS

Per confermare che l' CloudWatch agente è in esecuzione, inserisci il seguente comando.

kubectl get pod -n amazon-cloudwatch

L'output dovrebbe includere una riga con cwagent-prometheus-id nella colonna NAME e Running nel campo STATUS column.

Per visualizzare i dettagli sul pod in esecuzione, immetti il seguente comando. Replace (Sostituisci) pod-name con il nome completo del pod il cui nome inizia concw-agent-prometheus.

kubectl describe pod pod-name -n amazon-cloudwatch

Se hai installato CloudWatch Container Insights, puoi utilizzare CloudWatch Logs Insights per interrogare i log dell' CloudWatch agente che raccoglie le metriche di Prometheus.

Per eseguire query sui log delle applicazioni
  1. https://console.aws.amazon.com/cloudwatch/Apri la console all'indirizzo. CloudWatch

  2. Nel riquadro di navigazione, scegli CloudWatch Logs Insights.

  3. Seleziona il gruppo di log per i log dell'applicazione, /aws/containerinsights/ cluster-name/applicazione

  4. Sostituisci l'espressione di query di ricerca con la query seguente e scegli Esegui query

    fields ispresent(kubernetes.pod_name) as haskubernetes_pod_name, stream, kubernetes.pod_name, log | filter haskubernetes_pod_name and kubernetes.pod_name like /cwagent-prometheus

Puoi anche confermare che le metriche e i metadati di Prometheus vengano inseriti come eventi di log. CloudWatch

Per confermare che i dati di Prometheus vengano ingeriti
  1. Apri CloudWatch https://console.aws.amazon.com/cloudwatch/la console all'indirizzo.

  2. Nel riquadro di navigazione, scegli CloudWatch Logs Insights.

  3. Seleziona /aws/containerinsights/cluster-name/prometeo

  4. Sostituisci l'espressione di query di ricerca con la query seguente e scegli Esegui query

    fields @timestamp, @message | sort @timestamp desc | limit 20

Registrazione dei parametri Prometheus eliminati

Questa versione non raccoglie i parametri Prometheus di tipo istogramma. Puoi utilizzare l' CloudWatch agente per verificare se alcune metriche di Prometheus vengono eliminate perché si tratta di metriche di istogrammi. Puoi anche registrare un elenco delle prime 500 metriche di Prometheus che vengono eliminate e non CloudWatch inviate a nessuno perché si tratta di metriche di istogrammi.

Per verificare se vengono eliminate le metriche, immetti il seguente comando:

kubectl logs -l "app=cwagent-prometheus" -n amazon-cloudwatch --tail=-1

Se vengono eliminate delle metriche, nel file /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log verranno visualizzate le seguenti righe.

I! Drop Prometheus metrics with unsupported types. Only Gauge, Counter and Summary are supported. I! Please enable CWAgent debug mode to view the first 500 dropped metrics

Se vedi queste righe e vuoi sapere quali metriche vengono eliminate, segui la procedura seguente.

Per registrare un elenco delle parametri di Prometheus eliminati
  1. Imposta l' CloudWatch agente in modalità debug aggiungendo le seguenti righe in grassetto al file prometheus-eks.yaml or prometheus-k8s.yaml e salva il file.

    { "agent": { "debug": true },

    Questa sezione del file dovrebbe quindi assomigliare a questa:

    cwagentconfig.json: | { "agent": { "debug": true }, "logs": { "metrics_collected": {
  2. Reinstalla l' CloudWatch agente per abilitare la modalità di debug inserendo i seguenti comandi:

    kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch kubectl apply -f prometheus.yaml

    Le metriche eliminate vengono registrate nel pod dell'agente. CloudWatch

  3. Per recuperare i log dal contenitore dell' CloudWatch agente, immettete il seguente comando:

    kubectl logs -l "app=cwagent-prometheus" -n amazon-cloudwatch --tail=-1

    Oppure, se hai installato la registrazione di Container Insights Fluentd, i log vengono salvati anche nel gruppo di log Logs /aws/containerinsights/ CloudWatch cluster_name/applicazione.

    Per eseguire una query su questi registri, è possibile seguire la procedura per eseguire query sui log dell'applicazione in Procedure generali di risoluzione dei problemi su Amazon EKS.

Dove vengono inserite le metriche di Prometheus come eventi di log log? CloudWatch

L' CloudWatch agente crea un flusso di log per ogni configurazione dello scrape job di Prometheus. Ad esempio, nei file prometheus-eks.yaml e prometheus-k8s.yaml, la riga job_name: 'kubernetes-pod-appmesh-envoy' recupera i parametri App Mesh. Il target di Prometheus è definito come kubernetes-pod-appmesh-envoy. Quindi tutte le metriche di App Mesh Prometheus vengono inserite come eventi di log nel flusso di log nel gruppo di log CloudWatch denominato/. kubernetes-pod-appmesh-envoyaws/containerinsights/cluster-name/Prometheus

Non vedo le metriche di Amazon EKS o Kubernetes Prometheus nelle metriche CloudWatch

Innanzitutto, assicurati che le metriche di Prometheus vengano inserite come eventi di registro nel gruppo di log/. aws/containerinsights/cluster-name/Prometheus Utilizzare le informazioni in Dove vengono inserite le metriche di Prometheus come eventi di log log? CloudWatch per controllare il flusso di log di destinazione. Se il flusso di log non viene creato o non ci sono nuovi eventi di log nel flusso di log, verificare quanto segue:

  • Verificare che gli endpoint di esportazione delle metriche Prometheus siano impostati correttamente

  • Verifica che le configurazioni di scraping di Prometheus nella config map: cwagent-prometheus sezione del file agente siano corrette. CloudWatch YAML La configurazione dovrebbe essere la stessa di un file di configurazione di Prometheus. Per ulteriori informazioni, vedere <scrape_config> nella documentazione di Prometheus.

Se le metriche di Prometheus vengono inserite correttamente come eventi di registro, verifica che le impostazioni del formato metrico incorporato vengano aggiunte agli eventi di registro per generare le metriche. CloudWatch

"CloudWatchMetrics":[ { "Metrics":[ { "Name":"envoy_http_downstream_cx_destroy_remote_active_rq" } ], "Dimensions":[ [ "ClusterName", "Namespace" ] ], "Namespace":"ContainerInsights/Prometheus" } ],

Per ulteriori informazioni sul formato della metrica incorporata, vedere Specifica: Embedded Metric Format.

Se non è presente un formato metrico incorporato negli eventi di registro, verifica che la metric_declaration sezione sia configurata correttamente nella sezione del file di installazione dell'agente. config map: prometheus-cwagentconfig CloudWatch YAML Per ulteriori informazioni, consulta Tutorial per aggiungere un nuovo target di scrape Prometheus: Prometheus Server metrics API.