Interroga utilizzando Grafana in esecuzione in un cluster Amazon EKS - Amazon Managed Service per Prometheus

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à.

Interroga utilizzando Grafana in esecuzione in un cluster Amazon EKS

Il servizio gestito da Amazon per Prometheus supporta l'uso di Grafana versione 7.3.5 e successive per interrogare i parametri in un'area di lavoro del servizio gestito da Amazon per Prometheus. Le versioni 7.3.5 e successive includono il supporto per l'autenticazione Signature Version 4 (SigV4). AWS

Per configurare Grafana in modo che funzioni con Amazon Managed Service for Prometheus, devi accedere a un account con la policy o le AmazonPrometheusQueryAccessautorizzazioni,, e. aps:QueryMetrics aps:GetMetricMetadata aps:GetSeries aps:GetLabels Per ulteriori informazioni, consulta Autorizzazioni e policy IAM.

AWS Configura SigV4

Grafana ha aggiunto una nuova funzionalità per supportare l'autenticazione AWS Signature Version 4 (SigV4). Per ulteriori informazioni, consulta Processo di firma di Signature versione 4. Questa funzionalità non è abilitata in Grafana per impostazione predefinita. Le seguenti istruzioni per abilitare questa funzionalità presuppongono che tu stia utilizzando Helm per distribuire Grafana su un cluster Kubernetes.

Per abilitare SigV4 sul tuo server Grafana 7.3.5 o una versione successiva
  1. Crea un nuovo file di aggiornamento per sovrascrivere la configurazione Grafana e assegnagli un nome amp_query_override_values.yaml.

  2. Incolla il seguente contenuto nel file e salva il file. Replace (Sostituisci) account-id con l'ID AWS dell'account su cui è in esecuzione il server Grafana.

    serviceAccount: name: "amp-iamproxy-query-service-account" annotations: eks.amazonaws.com/role-arn: "arn:aws:iam::account-id:role/amp-iamproxy-query-role" grafana.ini: auth: sigv4_auth_enabled: true

    In quel contenuto YAML del file, amp-iamproxy-query-role c'è il nome del ruolo che verrà creato nella sezione successiva,Configura IAM i ruoli per gli account di servizio. Puoi sostituire questo ruolo con il tuo nome se hai già creato un ruolo per interrogare la tua area di lavoro.

Utilizzerai questo file più tardi, in Aggiorna il server Grafana utilizzando Helm.

Configura IAM i ruoli per gli account di servizio

Se utilizzi un server Grafana in un EKS cluster Amazon, ti consigliamo di utilizzare i IAM ruoli per gli account di servizio, noti anche come ruoli di servizio, per il controllo degli accessi. Quando esegui questa operazione per associare un IAM ruolo a un account di servizio Kubernetes, l'account di servizio può quindi fornire AWS le autorizzazioni ai contenitori in qualsiasi pod che utilizza quell'account di servizio. Per ulteriori informazioni, consulta IAMruoli per gli account di servizio.

Se non hai già impostato questi ruoli di servizio per l'interrogazione, segui le istruzioni riportate Imposta ruoli IAM per gli account di servizio per le domande delle metriche per configurare i ruoli.

È quindi necessario aggiungere l'account del servizio Grafana nelle condizioni del rapporto di fiducia.

Come aggiungere l'account del servizio Grafana nelle condizioni del rapporto di fiducia
  1. Da una finestra del terminale, determina il namespace e il nome dell'account del servizio per il tuo server Grafana. Ad esempio, puoi utilizzare il seguente comando.

    kubectl get serviceaccounts -n grafana_namespace
  2. Nella EKS console Amazon, apri il IAM ruolo per gli account di servizio associati al EKS cluster.

  3. Seleziona Modifica relazione di attendibilità.

  4. Aggiorna la Condizione per includere il namespace Grafana e il nome dell'account del servizio Grafana che hai trovato nell'output del comando nella fase 1. Di seguito è riportato un esempio.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::account-id:oidc-provider/oidc.eks.aws_region.amazonaws.com/id/openid" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region.amazonaws.com/id/openid:sub": [ "system:serviceaccount:aws-amp:amp-iamproxy-query-service-account", "system:serviceaccount:grafana-namespace:grafana-service-account-name" ] } } } ] }
  5. Scegliere Update trust Policy (Aggiorna policy di attendibilità).

Aggiorna il server Grafana utilizzando Helm

Questo passaggio aggiorna il server Grafana per utilizzare le voci aggiunte al file amp_query_override_values.yaml nella sezione precedente.

Esegui i comandi seguenti. Per ulteriori informazioni sui grafici Helm per Grafana, consulta Grafici Helm Grafana Community Kubernetes.

helm repo add grafana https://grafana.github.io/helm-charts
helm upgrade --install grafana grafana/grafana -n grafana_namespace -f ./amp_query_override_values.yaml

Aggiungi l'origine dati Prometheus a Grafana

I passaggi seguenti spiegano come configurare l'origine dati Prometheus a Grafana per interrogare i parametri del servizio gestito da Amazon per Prometheus.

Come aggiungere l'origine dati Prometheus nel server Grafana
  1. Apri la console Grafana.

  2. In Configurazioni, scegli Origini dati.

  3. Scegli Aggiungi origine dati

  4. Scegli Prometheus.

  5. Per la HTTPURL, specifica la query Endpoint URL visualizzata nella pagina dei dettagli dell'area di lavoro nella console Amazon Managed Service for Prometheus.

  6. In HTTP URL quello che hai appena specificato, rimuovi la /api/v1/query stringa aggiunta aURL, perché l'origine dati Prometheus la aggiungerà automaticamente.

  7. In Autenticazione, seleziona l'interruttore per l'autenticazione SigV4 per abilitarlo.

    Lascia vuoti i campi Assume ruolo ARN e ID esterno. Quindi, per Regione predefinita, seleziona la regione in cui si trova l'area di lavoro del servizio gestito da Amazon per Prometheus.

  8. Seleziona Salva ed esegui test.

    Apri il messaggio seguente: l'origine dati funziona

  9. Prova un'interrogazione PromQL sulla nuova origine dati:

    1. Scegli Esplora.

    2. Esegui un'interrogazione PromQL di esempio come:

      prometheus_tsdb_head_series