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à.
Tutorial per aggiungere un nuovo target di scrape Prometheus: Redis OSS sui cluster Amazon EKS e Kubernetes
Questo tutorial fornisce un'introduzione pratica per analizzare i parametri Prometheus di un'applicazione Redis OSS di esempio su Amazon EKS e Kubernetes. Redis OSS (https://redis.io/) è un archivio di strutture dati in memoria open source (con licenza BSD), utilizzato come database, cache e broker di messaggi. Per ulteriori informazioni, consulta la pagina redis
redis_exporter (con licenza MIT) viene utilizzato per esporre le metriche Redis OSS Prometheus sulla porta specificata (impostazione predefinita: 0.0.0. 0:9121). Per ulteriori informazioni, consulta la pagina redis_exporter
In questa esercitazione vengono utilizzate le immagini Docker nei due repository Docker Hub seguenti:
Per installare un esempio di carico di lavoro Redis OSS che espone le metriche di Prometheus
-
Imposta lo spazio dei nomi per il carico di lavoro Redis OSS di esempio.
REDIS_NAMESPACE=redis-sample -
Se utilizzi Redis OSS su un cluster con il tipo di avvio Fargate, devi configurare un profilo Fargate. Per impostare il profilo, inserisci il comando seguente. Sostituisci
MyClustercon il nome del cluster.eksctl create fargateprofile --clusterMyCluster\ --namespace $REDIS_NAMESPACE --name $REDIS_NAMESPACE -
Immettete il comando seguente per installare il carico di lavoro Redis OSS di esempio.
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_traffic/redis/redis-traffic-sample.yaml \ | sed "s/{{namespace}}/$REDIS_NAMESPACE/g" \ | kubectl apply -f - -
L'installazione include un servizio denominato
my-redis-metricsche espone la metrica Redis OSS Prometheus sulla porta 9121. Immettere il seguente comando per ottenere i dettagli del servizio:kubectl describe service/my-redis-metrics -n $REDIS_NAMESPACENella
Annotationssezione dei risultati, vedrai due annotazioni che corrispondono alla configurazione dello scrape Prometheus dell'agente, in modo che possa rilevare automaticamente CloudWatch i carichi di lavoro:prometheus.io/port: 9121 prometheus.io/scrape: trueLa configurazione di scraping di Prometheus correlata è disponibile nella sezione
- job_name: kubernetes-service-endpointsdikubernetes-eks.yamlokubernetes-k8s.yaml.
Per iniziare a raccogliere le metriche di Redis OSS Prometheus in CloudWatch
-
Scaricare la versione più recente del file
kubernetes-eks.yamlokubernetes-k8s.yamlimmettendo uno dei seguenti comandi. Per un cluster Amazon EKS con il tipo di EC2 avvio, inserisci questo comando.curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yamlPer un cluster Amazon EKS con tipo di avvio Fargate, inserisci questo comando.
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yamlPer un cluster Kubernetes in esecuzione su un' EC2 istanza Amazon, inserisci questo comando.
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml -
Apri il file con un editor di testo e trova la sezione
cwagentconfig.json. Aggiungi la seguente sottosezione e salva le modifiche. Assicurati che il rientro segua il modello esistente.{ "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName"]], "metric_selectors": [ "^redis_net_(in|out)put_bytes_total$", "^redis_(expired|evicted)_keys_total$", "^redis_keyspace_(hits|misses)_total$", "^redis_memory_used_bytes$", "^redis_connected_clients$" ] }, { "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName","cmd"]], "metric_selectors": [ "^redis_commands_total$" ] }, { "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName","db"]], "metric_selectors": [ "^redis_db_keys$" ] },La sezione che hai aggiunto inserisce le metriche Redis OSS nell'elenco degli agenti consentiti. CloudWatch Per l'elenco di questi parametri, consulta la sezione seguente.
-
Se l' CloudWatch agente con supporto Prometheus è già distribuito in questo cluster, è necessario eliminarlo immettendo il seguente comando.
kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch -
Distribuisci l' CloudWatch agente con la configurazione aggiornata immettendo uno dei seguenti comandi. Sostituisci
MyClustereregionabbina le tue impostazioni.Per un cluster Amazon EKS con il tipo di EC2 avvio, inserisci questo comando.
kubectl apply -f prometheus-eks.yamlPer un cluster Amazon EKS con tipo di avvio Fargate, inserisci questo comando.
cat prometheus-eks-fargate.yaml \ | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \ | kubectl apply -f -Per un cluster Kubernetes, inserisci il seguente comando.
cat prometheus-k8s.yaml \ | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \ | kubectl apply -f -
Visualizzazione delle metriche Redis OSS Prometheus
Questo tutorial invia le seguenti metriche allo spazio dei nomi ContainerInsights/Prometheus in. CloudWatch Puoi usare la CloudWatch console per visualizzare le metriche in quel namespace.
| Nome parametro | Dimensioni |
|---|---|
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, cmd |
|
|
ClusterName, |
Nota
Il valore della dimensione cmd può essere append, client, command, config, dbsize, flushall, get, incr, info, latency o slowlog.
Il valore della dimensione db può essere da db0 a db15.
Puoi anche creare una CloudWatch dashboard per le metriche di Redis OSS Prometheus.
Per creare una dashboard per le metriche Redis OSS Prometheus
-
Crea variabili di ambiente, sostituendo i valori sotto in modo che corrispondano all'implementazione.
DASHBOARD_NAME=your_cw_dashboard_nameREGION_NAME=your_metric_region_such_as_us-east-1CLUSTER_NAME=your_k8s_cluster_name_hereNAMESPACE=your_redis_service_namespace_here -
Inserisci il seguente comando per creare il pannello di controllo.
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/redis/cw_dashboard_redis.json \ | sed "s/{{YOUR_AWS_REGION}}/${REGION_NAME}/g" \ | sed "s/{{YOUR_CLUSTER_NAME}}/${CLUSTER_NAME}/g" \ | sed "s/{{YOUR_NAMESPACE}}/${NAMESPACE}/g" \