Installieren Sie den CloudWatch-Agenten mit der Prometheus-Metrikensammlung auf Amazon-EKS- und Kubernetes-Clustern - Amazon CloudWatch

Installieren Sie den CloudWatch-Agenten mit der Prometheus-Metrikensammlung auf Amazon-EKS- und Kubernetes-Clustern

In diesem Abschnitt wird erklärt, wie Sie den CloudWatch-Agenten mit Prometheus-Überwachung in einem Cluster einrichten können, auf dem Amazon EKS oder Kubernetes ausgeführt wird. Danach scrapt und importiert der Agent automatisch Metriken für die folgenden Workloads, die in diesem Cluster ausgeführt werden.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/JMX

  • HAProxy

  • Fluent Bit

Sie können den Agenten auch so konfigurieren, dass er aus weiteren Prometheus-Workloads und -Quellen importiert.

Bevor Sie die folgenden Schritte ausführen, um den CloudWatch-Agenten für die Prometheus-Metrikerfassung zu installieren, muss ein Cluster auf Amazon EKS oder ein Kubernetes-Cluster auf einer Amazon-EC2-Instance ausgeführt werden.

Anforderungen an VPC-Sicherheitsgruppen

Die Eingangsregeln der Sicherheitsgruppen für die Prometheus-Workloads müssen die Prometheus-Ports für den CloudWatch-Agent öffnen, um die Prometheus-Metriken nach der privaten IP zu scrapen.

Die Ausstiegsregeln der Sicherheitsgruppe für den CloudWatch-Agent müssen es dem CloudWatch-Agenten ermöglichen, über private IP eine Verbindung zum Prometheus-Workload-Port herzustellen.

Installieren Sie den CloudWatch-Agenten mit der Prometheus-Metrikensammlung auf Amazon-EKS- und Kubernetes-Clustern

In diesem Abschnitt wird erklärt, wie Sie den CloudWatch-Agenten mit Prometheus-Überwachung in einem Cluster einrichten können, auf dem Amazon EKS oder Kubernetes ausgeführt wird. Danach scrapt und importiert der Agent automatisch Metriken für die folgenden Workloads, die in diesem Cluster ausgeführt werden.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/JMX

  • HAProxy

  • Fluent Bit

Sie können den Agenten auch so konfigurieren, dass er aus weiteren Prometheus-Workloads und -Quellen importiert.

Bevor Sie die folgenden Schritte ausführen, um den CloudWatch-Agenten für die Prometheus-Metrikerfassung zu installieren, muss ein Cluster auf Amazon EKS oder ein Kubernetes-Cluster auf einer Amazon-EC2-Instance ausgeführt werden.

Anforderungen an VPC-Sicherheitsgruppen

Die Eingangsregeln der Sicherheitsgruppen für die Prometheus-Workloads müssen die Prometheus-Ports für den CloudWatch-Agent öffnen, um die Prometheus-Metriken nach der privaten IP zu scrapen.

Die Ausstiegsregeln der Sicherheitsgruppe für den CloudWatch-Agent müssen es dem CloudWatch-Agenten ermöglichen, über private IP eine Verbindung zum Prometheus-Workload-Port herzustellen.

Einrichten von IAM-Rollen

Der erste Schritt besteht darin, die erforderliche IAM-Richtlinie in dem Cluster einzurichten. Es gibt zwei Methoden:

  • Richten Sie eine IAM-Rolle für ein Servicekonto ein, die auch als Servicerolle bezeichnet wird. Diese Methode funktioniert sowohl für den EC2-Starttyp als auch für den Fargate-Starttyp.

  • Fügen Sie der IAM-Rolle eine IAM-Richtlinie hinzu, die für den Cluster verwendet wird. Dies funktioniert nur für den Starttyp EC2.

Einrichten einer Servicerolle (EC2-Starttyp und Fargate-Starttyp)

Geben Sie zum Einrichten einer Service-Rolle den folgenden Befehl ein. Ersetzen Sie MyCluster durch den Namen des Clusters.

eksctl create iamserviceaccount \ --name cwagent-prometheus \ --namespace amazon-cloudwatch \ --cluster MyCluster \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --approve \ --override-existing-serviceaccounts

Hinzufügen einer Richtlinie zur IAM-Rolle der Knotengruppe (nur EC2-Starttyp)

So richten Sie die IAM-Richtlinie in einer Knotengruppe für die Prometheus-Unterstützung ein:
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Instances aus.

  3. Sie müssen das Präfix des IAM-Rollennamens für den Cluster finden. Markieren Sie dazu das Kontrollkästchen neben dem Namen einer Instance, die sich im Cluster befindet, und wählen Sie Aktionen, Sicherheit, IAM-Rolle ändern. Kopieren Sie dann das Präfix der IAM-Rolle, z. B. eksctl-dev303-workshop-nodegroup.

  4. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  5. Wählen Sie im Navigationsbereich Rollen.

  6. Verwenden Sie das Suchfeld, um das Präfix zu finden, das Sie zuvor in diesem Verfahren kopiert haben, und wählen Sie diese Rolle aus.

  7. Wählen Sie Richtlinien anfügen.

  8. Verwenden Sie das Suchfeld, um CloudWatchAgentServerPolicyzu suchen. Markieren Sie das Kontrollkästchen neben CloudWatchAgentServerPolicy und wählen Sie Attach policy (Richtlinie anfügen).

Installieren des CloudWatch-Agenten zum Erfassen von Prometheus-Metriken

Sie müssen den CloudWatch-Agenten in dem Cluster installieren, um die Metriken zu erfassen. Die Installation des Agenten unterscheidet sich für Amazon-EKS-Cluster und Kubernetes-Cluster.

Löschen Sie frühere Versionen des CloudWatch-Agenten mit Prometheus-Unterstützung

Wenn Sie bereits eine Version des CloudWatch-Agenten mit Prometheus-Unterstützung in Ihrem Cluster installiert haben, müssen Sie diese Version löschen, indem Sie den folgenden Befehl eingeben. Dies ist nur für frühere Versionen des Agenten mit Prometheus-Unterstützung erforderlich. Sie müssen den CloudWatch-Agenten, der Container Insights ohne Prometheus-Unterstützung aktiviert, nicht löschen.

kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch

Installieren des CloudWatch-Agents auf Amazon-EKS-Clustern mit dem EC2-Starttyp

Gehen Sie folgendermaßen vor, um den CloudWatch-Agenten mit Prometheus-Unterstützung auf einem Amazon-EKS-Cluster zu installieren.

So installieren Sie den CloudWatch-Agenten mit Prometheus-Unterstützung auf einem Amazon-EKS-Cluster
  1. Geben Sie den folgenden Befehl ein, um zu prüfen, ob der amazon-cloudwatch-Namespace bereits erstellt wurde:

    kubectl get namespace
  2. Wenn amazon-cloudwatch nicht in den Ergebnissen angezeigt wird, erstellen Sie ihn, indem Sie den folgenden Befehl eingeben:

    kubectl create namespace amazon-cloudwatch
  3. Geben Sie den folgenden Befehl ein, um den Agenten mit der Standardkonfiguration bereitzustellen und Daten an die AWS-Region zu senden, in der er installiert ist:

    kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml

    Gehen Sie folgendermaßen vor, damit der Agent stattdessen Daten an eine andere Region sendet:

    1. Laden Sie die YAML-Datei für den Agenten herunter, indem Sie den folgenden Befehl eingeben:

      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
    2. Öffnen Sie die Datei mit einem Texteditor und suchen Sie nach dem cwagentconfig.json-Block der Datei.

    3. Fügen Sie die markierten Zeilen hinzu und geben Sie die gewünschte Region an:

      cwagentconfig.json: | { "agent": { "region": "us-east-2" }, "logs": { ...
    4. Speichern Sie die Datei und stellen Sie den Agenten mithilfe der aktualisierten Datei bereit.

      kubectl apply -f prometheus-eks.yaml

Installieren des CloudWatch-Agents auf Amazon-EKS-Clustern mit dem Fargate-Starttyp

Gehen Sie folgendermaßen vor, um den CloudWatch-Agenten mit Prometheus-Unterstützung auf einem Amazon-EKS-Cluster mit dem Starttyp Fargate zu installieren.

So installieren Sie den CloudWatch-Agenten mit Prometheus-Unterstützung auf einem Amazon-EKS-Cluster mit dem Starttyp Fargate
  1. Geben Sie den folgenden Befehl ein, um ein Fargate-Profil für den CloudWatch-Agenten zu erstellen, damit er innerhalb des Clusters ausgeführt werden kann. Ersetzen Sie MyCluster durch den Namen des Clusters.

    eksctl create fargateprofile --cluster MyCluster \ --name amazon-cloudwatch \ --namespace amazon-cloudwatch
  2. Geben Sie den folgenden Befehl ein, um den CloudWatch-Agenten zu installieren. Ersetzen Sie MyCluster durch den Namen des Clusters. Dieser Name wird im Protokollgruppennamen, in dem die vom Agenten erfassten Protokollereignisse gespeichert werden, und auch als Dimension für die vom Agenten erfassten Metriken verwendet.

    Ersetzen Sie die Region durch den Namen der Region, in die die Metriken gesendet werden sollen. Beispiel, us-west-1.

    curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Installieren des CloudWatch-Agenten auf einem Kubernetes-Cluster

Um den CloudWatch-Agenten mit Prometheus-Unterstützung auf einem Cluster mit Kubernetes zu installieren, geben Sie den folgenden Befehl ein:

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Ersetzen Sie MyCluster durch den Namen des Clusters. Dieser Name wird im Protokollgruppennamen, in dem die vom Agenten erfassten Protokollereignisse gespeichert werden, und auch als Dimension für die vom Agenten erfassten Metriken verwendet.

Ersetzen Sie die Region durch den Namen der AWS-Region, in die die Metriken gesendet werden sollen. Beispiel, us-west-1.

Überprüfen, ob der Agent ausgeführt wird

Auf Amazon-EKS- und Kubernetes-Clustern können Sie den folgenden Befehl eingeben, um zu prüfen, ob der Agent ausgeführt wird.

kubectl get pod -l "app=cwagent-prometheus" -n amazon-cloudwatch

Wenn die Ergebnisse einen einzelnen CloudWatch-Agenten-Pod im Status Running enthalten, wird der Agent ausgeführt und erfasst Prometheus-Metriken. Standardmäßig erfasst der CloudWatch-Agent jede Minute Metriken für App Mesh, NGINX, Memcached, Java/JMX und HAProxy. Weitere Informationen zu diesen Metriken finden Sie unter Vom CloudWatch-Agenten erfasste Prometheus-Metriken. Anweisungen zum Anzeigen Ihrer Prometheus-Metriken in CloudWatch finden Sie unter Anzeigen Ihrer Prometheus-Metriken .

Sie können den CloudWatch-Agenten auch so konfigurieren, dass er Metriken von anderen Prometheus-Exporteuren erfasst. Weitere Informationen finden Sie unter Scraping zusätzlicher Prometheus-Quellen und Importieren dieser Metriken.