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
MyClustermit dem Namen Ihres Clusters.eksctl create fargateprofile --clusterMyCluster\ --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_NAMESPACEIm
AnnotationsBereich 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: trueDie zugehörige Prometheus-Scrape-Konfiguration finden Sie im
- job_name: kubernetes-service-endpoints-Abschnitt vonkubernetes-eks.yamloderkubernetes-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.yamlGeben 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.yamlGeben 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
MyClusterund passenregionSie ihn Ihren Einstellungen an.Geben Sie für einen Amazon EKS-Cluster mit dem EC2 Starttyp diesen Befehl ein.
kubectl apply -f prometheus-eks.yamlGeben 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_nameREGION_NAME=your_metric_region_such_as_us-east-1CLUSTER_NAME=your_k8s_cluster_name_hereNAMESPACE=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" \