Bereitstellen der AWS Distro for OpenTelemetry zum Sammeln von EC2-Metriken auf Instance-Ebene in Amazon-ECS-Clustern - Amazon CloudWatch

Bereitstellen der AWS Distro for OpenTelemetry zum Sammeln von EC2-Metriken auf Instance-Ebene in Amazon-ECS-Clustern

Verwenden Sie die Schritte in diesem Abschnitt, um mit AWS Distro for OpenTelemetry Metriken auf EC2-Instance-Ebene in einem Amazon-ECS-Cluster zu sammeln. Weitere Informationen zu AWS Distro for OpenTelemetry finden Sie unter AWS Distro for OpenTelemetry.

Bei diesen Schritten wird davon ausgegangen, dass Sie bereits über einen Cluster verfügen, auf dem Amazon ECS ausgeführt wird. Dieser Cluster muss mit dem EC2-Starttyp bereitgestellt werden. Weitere Informationen zur Verwendung von AWS Distro for Open Telemetry mit Amazon ECS und zum Einrichten eines Amazon-ECS-Clusters zu diesem Zweck finden Sie unter Einrichten von AWS Distro for OpenTelemetry Collector in Amazon Elastic Container Service für Metriken auf ECS-EC2-Instance-Ebene.

Schnelleinrichtung mithilfe von CloudFormation

Laden Sie die CloudFormation-Vorlagendatei für die Installation des AWS Distro for OpenTelemetry-Kollektors für Amazon ECS auf EC2 herunter. Führen Sie den folgenden Curl-Befehl aus.

curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/ecs/aws-otel-ec2-instance-metrics-daemon-deployment-cfn.yaml

Nachdem Sie die Vorlagendatei heruntergeladen haben, öffnen Sie sie und ersetzen Sie PATH_TO_CloudFormation_TEMPLATE durch den Pfad, in dem Sie die Vorlagendatei gespeichert haben. Exportieren Sie dann die folgenden Parameter und führen Sie den CloudFormation-Befehl aus, wie im folgenden Befehl gezeigt.

  • Clustername – Name des Amazon-ECS-Clusters

  • AWS_REGION – Die Region, in die die Daten gesendet werden

  • Pfad_zu_CloudFormation_Template – Der Pfad, in dem Sie die CloudFormation-Vorlagendatei gespeichert haben.

  • Befehl – Damit der AWS Distro for OpenTelemetry-Kollektor die Metriken auf Instance-Ebene für Amazon ECS auf Amazon EC2 erfassen kann, müssen Sie --config=/etc/ecs/otel-instance-metrics-config.yaml für diesen Parameter angeben.

ClusterName=Cluster_Name Region=AWS_Region command=--config=/etc/ecs/otel-instance-metrics-config.yaml aws cloudformation create-stack --stack-name AOCECS-${ClusterName}-${Region} \ --template-body file://PATH_TO_CloudFormation_TEMPLATE \ --parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \ ParameterKey=CreateIAMRoles,ParameterValue=True \ ParameterKey=command,ParameterValue=${command} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${Region}

Nachdem Sie diesen Befehl ausgeführt haben, verwenden Sie die Amazon-ECS-Konsole, um festzustellen, ob die Aufgabe ausgeführt wird.

Fehlerbehebung bei der Schnelleinrichtung

Um den Status des CloudFormation-Stacks zu überprüfen, geben Sie den folgenden Befehl ein.

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region

Wenn der Wert von StackStatus nicht CREATE_COMPLETE oder CREATE_IN_PROGRESS ist, überprüfen Sie die Stack-Ereignisse, um den Fehler zu finden. Geben Sie den folgenden Befehl ein.

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region

Um den Status des AOCECS-Daemon-Services zu überprüfen, geben Sie den folgenden Befehl ein. In der Ausgabe sollten Sie sehen, dass die runningCount gleich der desiredCount im Abschnitt Bereitstellung ist. Wenn sie nicht gleich ist, überprüfen Sie den Abschnitt Verletzungen in der Ausgabe.

ClusterName=cluster-name Region=cluster-region aws ecs describe-services --services AOCECS-daemon-service --cluster $ClusterName --region $Region

Sie können auch die CloudWatch-Logs-Konsole verwenden, um das Agentenprotokoll zu überprüfen. Suchen Sie nach der Protokollgruppe /aws/ecs/containerinsights/{ClusterName}/performance.

Manuelle und benutzerdefinierte Einrichtung

Befolgen Sie die Schritte in diesem Abschnitt, um AWS Distro for OpenTelemetry manuell bereitzustellen, um Metriken auf Instance-Ebene von Ihren Amazon-ECS-Clustern zu sammeln, die auf Amazon-EC2-Instances gehostet werden.

Schritt 1: Erforderliche Rollen und Richtlinien

Zwei IAM-Rollen sind erforderlich. Sie müssen sie erstellen, wenn sie noch nicht vorhanden sind. Weitere Informationen zu diesen Rollen finden Sie unter IAM-Richtlinie erstellen und IAM-Rolle erstellen.

Schritt 2: Erstellen einer Aufgabendefinition

Erstellen Sie eine Aufgabendefinition und verwenden Sie sie, um die AWS Distro for OpenTelemetry als Daemon-Service zu starten.

Um die Aufgabendefinitionsvorlage zum Erstellen der Aufgabendefinition zu verwenden, befolgen Sie die Anweisungen unter Erstellen einer ECS-EC2-Aufgabendefinition für eine EC2-Instance mit AWS OTel Collector.

Um die Amazon-ECS-Konsole zum Erstellen der Aufgabendefinition zu verwenden, befolgen Sie die Anweisungen in Installieren von AWS OTel Collector durch Erstellen einer Aufgabendefinition über die AWS Konsole für Amazon-ECS-EC2-Instance-Metriken.

Schritt 3: Starten des Daemon-Services

Um die AWS Distro for OpenTelemetry als Daemon-Service zu starten, befolgen Sie die Anweisungen unter Ausführen Ihrer Aufgabe im Amazon Elastic Container Service (Amazon ECS) mit dem Daemon-Service.

(Optional) Erweiterte Konfiguration

Optional können Sie SSM verwenden, um andere Konfigurationsoptionen für die AWS Distro for OpenTelemetry in Ihren Amazon-ECS-Clustern anzugeben, die auf Amazon-EC2-Instances gehostet werden. Weitere Informationen zum Erstellen einer Konfigurationsdatei finden Sie unter Benutzerdefinierte OpenTelemetry-Konfiguration. Weitere Informationen zu den Optionen, die Sie in der Konfigurationsdatei verwenden können, finden Sie unter AWS Container Insights Receiver.