Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Tutorial zum Hinzufügen eines neuen Prometheus-Scrape-Ziels: Redis OSS auf Amazon EKS- und Kubernetes-Clustern
Dieses Tutorial bietet eine praktische Einführung in das Scrapen der Prometheus-Metriken einer Redis OSS-Beispielanwendung auf Amazon EKS und Kubernetes. Redis OSS (https://redis.io/) ist ein Open-Source-Datenstrukturspeicher (BSD-lizenziert), der im Speicher gespeichert ist und als Datenbank, Cache und Nachrichtenbroker verwendet wird. Weitere Informationen finden Sie unter redis
redis_exporter (MIT-Lizenz lizenziert) wird verwendet, um die Redis OSS Prometheus-Metriken auf dem angegebenen Port verfügbar zu machen (Standard: 0.0.0. 0:9121). Weitere Informationen finden Sie unter redis_exporter
Die Docker-Images in den folgenden zwei Docker Hub-Repositories werden in diesem Tutorial verwendet:
Um einen Redis OSS-Beispiel-Workload zu installieren, der Prometheus-Metriken bereitstellt
-
Legen Sie den Namespace für den Redis OSS-Beispiel-Workload fest.
REDIS_NAMESPACE=redis-sample
-
Wenn Sie Redis OSS auf einem Cluster mit dem Starttyp Fargate ausführen, müssen Sie ein Fargate-Profil einrichten. Geben Sie zum Einrichten des Profils den folgenden Befehl ein. Ersetzen Sie
MyCluster
mit dem Namen Ihres Clusters.eksctl create fargateprofile --cluster
MyCluster
\ --namespace $REDIS_NAMESPACE --name $REDIS_NAMESPACE -
Geben Sie den folgenden Befehl ein, um den Redis OSS-Beispiel-Workload zu installieren.
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 -
-
Die Installation umfasst einen Dienst mit dem Namen
my-redis-metrics
, der die Redis OSS Prometheus-Metrik auf Port 9121 verfügbar macht. Geben Sie den folgenden Befehl ein, um die Details des Dienstes abzurufen:kubectl describe service/my-redis-metrics -n $REDIS_NAMESPACE
Im
Annotations
Bereich der Ergebnisse sehen Sie zwei Anmerkungen, die der Prometheus-Scrape-Konfiguration des CloudWatch Agenten entsprechen, sodass er die Workloads automatisch erkennen kann:prometheus.io/port: 9121 prometheus.io/scrape: true
Die zugehörige Prometheus-Scrape-Konfiguration finden Sie im
- job_name: kubernetes-service-endpoints
-Abschnitt vonkubernetes-eks.yaml
oderkubernetes-k8s.yaml
.
Um mit der Erfassung von Redis OSS Prometheus-Metriken zu beginnen in CloudWatch
-
Laden Sie die aktuelle Version der
kubernetes-eks.yaml
- oderkubernetes-k8s.yaml
-Datei herunter, indem Sie einen der folgenden Befehle eingeben. Geben Sie für einen Amazon EKS-Cluster mit dem EC2 Starttyp diesen Befehl ein.curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
Geben Sie diesen Befehl für einen Amazon-EKS-Cluster mit dem Fargate-Starttyp ein.
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.yaml
Geben Sie für einen Kubernetes-Cluster, der auf einer EC2 Amazon-Instance ausgeführt wird, diesen Befehl ein.
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
-
Öffnen Sie die Datei mit einem Texteditor und suchen Sie den Abschnitt
cwagentconfig.json
. Fügen Sie den folgenden Unterabschnitt hinzu und speichern Sie die Änderungen. Stellen Sie sicher, dass die Einrückung dem vorhandenen Muster folgt.{ "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$" ] },
In dem von Ihnen hinzugefügten Abschnitt werden die Redis OSS-Metriken in die Zulassungsliste für CloudWatch Agenten aufgenommen. Eine Liste dieser Metriken finden Sie im folgenden Abschnitt.
-
Wenn Sie den CloudWatch Agenten mit Prometheus-Unterstützung bereits in diesem Cluster bereitgestellt haben, müssen Sie ihn löschen, indem Sie den folgenden Befehl eingeben.
kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch
-
Stellen Sie den CloudWatch Agenten mit Ihrer aktualisierten Konfiguration bereit, indem Sie einen der folgenden Befehle eingeben. Ersetzen Sie ihn
MyCluster
und passenregion
Sie ihn Ihren Einstellungen an.Geben Sie für einen Amazon EKS-Cluster mit dem EC2 Starttyp diesen Befehl ein.
kubectl apply -f prometheus-eks.yaml
Geben Sie diesen Befehl für einen Amazon-EKS-Cluster mit dem Fargate-Starttyp ein.
cat prometheus-eks-fargate.yaml \ | sed "s/{{cluster_name}}/
MyCluster
/;s/{{region_name}}/region
/" \ | kubectl apply -f -Geben Sie für einen Kubernetes-Cluster folgenden Befehl ein.
cat prometheus-k8s.yaml \ | sed "s/{{cluster_name}}/
MyCluster
/;s/{{region_name}}/region
/" \ | kubectl apply -f -
Ihre Redis OSS Prometheus-Metriken anzeigen
Dieses Tutorial sendet die folgenden Metriken an den ContainerInsights/Prometheus-Namespace in. CloudWatch Sie können die CloudWatch Konsole verwenden, um die Metriken in diesem Namespace zu sehen.
Metrikname | Dimensionen |
---|---|
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName,, |
|
ClusterName, |
Anmerkung
Die Werte der cmd-Dimension können append
, client
, command
, config
, dbsize
, flushall
, get
, incr
, info
, latency
oder slowlog
sein.
Die Werte der Db-Dimension können db0
oder db15
sein.
Sie können auch ein CloudWatch Dashboard für Ihre Redis OSS Prometheus-Metriken erstellen.
Um ein Dashboard für Redis OSS Prometheus-Metriken zu erstellen
-
Erstellen Sie Umgebungsvariablen und ersetzen Sie die folgenden Werte entsprechend Ihrer Bereitstellung.
DASHBOARD_NAME=
your_cw_dashboard_name
REGION_NAME=your_metric_region_such_as_us-east-1
CLUSTER_NAME=your_k8s_cluster_name_here
NAMESPACE=your_redis_service_namespace_here
-
Verwenden Sie den folgenden Befehl, um das Dashboard zu erstellen.
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" \