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.
Überwachung von AWS PCS-Instances mithilfe von Amazon CloudWatch
AWS PCS startet EC2 Amazon-Instances nach Bedarf, um die in Ihren PCS-Rechenknotengruppen definierten Skalierungsanforderungen zu erfüllen. Sie können diese Instances mit Amazon überwachen, während sie ausgeführt werden CloudWatch. Sie können die Protokolle laufender Instances einsehen, indem Sie sich bei ihnen anmelden und interaktive Befehlszeilentools verwenden. Standardmäßig werden CloudWatch Metrikdaten jedoch nur für einen begrenzten Zeitraum aufbewahrt, sobald eine Instance beendet wurde. Instance-Protokolle werden normalerweise zusammen mit den EBS-Volumes gelöscht, die die Instance unterstützen. Um Metriken oder Protokolldaten der von PCS gestarteten Instances nach deren Beendigung beizubehalten, können Sie den CloudWatch Agenten auf Ihren Instances mit einer EC2 Startvorlage konfigurieren. Dieses Thema bietet einen Überblick über die Überwachung laufender Instances und enthält Beispiele für die Konfiguration persistenter Instance-Metriken und Logs.
Überwachung laufender Instanzen
Suchen nach AWS-PCS-Instanzen
Um von PCS gestartete Instances zu überwachen, suchen Sie nach den laufenden Instances, die einem Cluster oder einer Rechenknotengruppe zugeordnet sind. Überprüfen Sie dann in der EC2 Konsole für eine bestimmte Instanz die Abschnitte Status und Alarme sowie Überwachung. Wenn der Anmeldezugriff für diese Instances konfiguriert ist, können Sie eine Verbindung zu ihnen herstellen und verschiedene Protokolldateien auf den Instances einsehen. Weitere Informationen zur Identifizierung der Instanzen, die von PCS verwaltet werden, finden Sie unterSuchen nach Compute-Knotengruppeninstanzen in AWS PCS.
Aktivierung detaillierter Metriken
Standardmäßig werden Instanzmetriken in Intervallen von 5 Minuten erfasst. Um Metriken in Intervallen von einer Minute zu erfassen, aktivieren Sie die detaillierte CloudWatch Überwachung in Ihrer Vorlage für den Start von Compute-Knotengruppen. Weitere Informationen finden Sie unter Schalten Sie die detaillierte CloudWatch Überwachung ein.
Konfiguration persistenter Instanzmetriken und -protokolle
Sie können die Metriken und Protokolle Ihrer Instances behalten, indem Sie den CloudWatch Amazon-Agenten auf ihnen installieren und konfigurieren. Dies besteht aus drei Hauptschritten:
-
Erstellen Sie eine CloudWatch Agentenkonfiguration.
-
Speichern Sie die Konfiguration dort, wo sie von PCS-Instanzen abgerufen werden kann.
-
Schreiben Sie eine EC2 Startvorlage, die die CloudWatch Agentsoftware installiert, Ihre Konfiguration abruft und den CloudWatch Agenten anhand der Konfiguration startet.
Weitere Informationen finden Sie unter Erfassung von Metriken, Protokollen und Traces mit dem CloudWatch Agenten im CloudWatch Amazon-Benutzerhandbuch undVerwenden von EC2 Amazon-Startvorlagen mit AWS PCS.
Erstellen Sie eine CloudWatch Agentenkonfiguration
Bevor Sie den CloudWatch Agenten auf Ihren Instances bereitstellen, müssen Sie eine JSON-Konfigurationsdatei generieren, die die zu erfassenden Metriken, Logs und Traces spezifiziert. Konfigurationsdateien können mit einem Assistenten oder manuell mit einem Texteditor erstellt werden. Die Konfigurationsdatei wird für diese Demonstration manuell erstellt.
Erstellen Sie auf einem Computer, auf dem die AWS-CLI installiert ist, eine CloudWatch Konfigurationsdatei namens config.json mit dem folgenden Inhalt. Sie können auch die folgende URL verwenden, um eine Kopie der Datei herunterzuladen.
https://aws-hpc-recipes.s3.amazonaws.com/main/recipes/pcs/cloudwatch/assets/config.json
Hinweise
-
Die Protokollpfade in der Beispieldatei beziehen sich auf Amazon Linux 2. Wenn Ihre Instances ein anderes Basisbetriebssystem verwenden, ändern Sie die Pfade entsprechend.
-
Um andere Logs zu erfassen, fügen Sie weitere Einträge unter hinzu
collect_list. -
Bei den Werten in
{brackets}handelt es sich um Vorlagenvariablen. Die vollständige Liste der unterstützten Variablen finden Sie unter Manuelles Erstellen oder Bearbeiten der CloudWatch Agentenkonfigurationsdatei im CloudWatch Amazon-Benutzerhandbuch. -
Sie können wählen,
metricsob Sie diese Informationstypen weglassenlogsoder nicht sammeln möchten.
{ "agent": { "metrics_collection_interval": 60 }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/cloud-init.log", "log_group_class": "STANDARD", "log_group_name": "/PCSLogs/instances", "log_stream_name": "{instance_id}.cloud-init.log", "retention_in_days": 30 }, { "file_path": "/var/log/cloud-init-output.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.cloud-init-output.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/amazon/pcs/bootstrap.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.bootstrap.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/slurmd.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.slurmd.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/messages", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.messages", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/secure", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.secure", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 } ] } } }, "metrics": { "aggregation_dimensions": [ [ "InstanceId" ] ], "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "cpu": { "measurement": [ "cpu_usage_idle", "cpu_usage_iowait", "cpu_usage_user", "cpu_usage_system" ], "metrics_collection_interval": 60, "resources": [ "*" ], "totalcpu": false }, "disk": { "measurement": [ "used_percent", "inodes_free" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "diskio": { "measurement": [ "io_time" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 }, "swap": { "measurement": [ "swap_used_percent" ], "metrics_collection_interval": 60 } } } }
Diese Datei weist den CloudWatch Agenten an, mehrere Dateien zu überwachen, was bei der Diagnose von Fehlern bei Instance-Bootstrapping, Authentifizierung und Anmeldung sowie bei anderen Problembehandlungsdomänen hilfreich sein kann. Dazu zählen:
-
/var/log/cloud-init.log— Ausgabe aus der Anfangsphase der Instanzkonfiguration -
/var/log/cloud-init-output.log— Ausgabe von Befehlen, die während der Instanzkonfiguration ausgeführt werden -
/var/log/amazon/pcs/bootstrap.log— Ausgabe von PCS-spezifischen Vorgängen, die während der Instanzkonfiguration ausgeführt werden -
/var/log/slurmd.log— Ausgabe vom Daemon slurmd des Slurm-Workload-Managers -
/var/log/messages— Systemnachrichten vom Kernel, von Systemdiensten und Anwendungen -
/var/log/secure— Protokolle im Zusammenhang mit Authentifizierungsversuchen wie SSH, Sudo und anderen Sicherheitsereignissen
Die Protokolldateien werden an eine CloudWatch Protokollgruppe mit dem Namen gesendet. /PCSLogs/instances Die Protokollstreams sind eine Kombination aus der Instanz-ID und dem Basisnamen der Protokolldatei. Die Protokollgruppe hat eine Aufbewahrungszeit von 30 Tagen.
Darüber hinaus weist die Datei den CloudWatch Agenten an, mehrere allgemeine Messwerte zu sammeln und sie nach Instanz-ID zu aggregieren.
Speichern Sie die Konfiguration
Die CloudWatch Agenten-Konfigurationsdatei muss an einem Ort gespeichert werden, auf den PCS-Compute-Knoteninstanzen zugegriffen werden kann. Es gibt zwei gängige Methoden, dies zu tun. Sie können es in einen Amazon S3 S3-Bucket hochladen, auf den Ihre Compute-Knotengruppen-Instances über ihr Instance-Profil Zugriff haben. Alternativ können Sie es als SSM-Parameter im Amazon Systems Manager Parameter Store speichern.
In einen S3-Bucket hochladen
Verwenden Sie die folgenden AWS-CLI-Befehle, um Ihre Datei in S3 zu speichern. Nehmen Sie vor der Ausführung des Befehls die folgenden Ersetzungen vor:
-
Ersetzen Sie es
amzn-s3-demo-bucketdurch Ihren eigenen S3-Bucket-Namen
Erstellen Sie zunächst (dies ist optional, wenn Sie über einen vorhandenen Bucket verfügen) einen Bucket, der Ihre Konfigurationsdatei (en) enthält.
aws s3 mb s3://amzn-s3-demo-bucket
Laden Sie als Nächstes die Datei in den Bucket hoch.
aws s3 cp ./config.json s3://amzn-s3-demo-bucket/
Als SSM-Parameter speichern
Verwenden Sie den folgenden Befehl, um Ihre Datei als SSM-Parameter zu speichern. Nehmen Sie vor der Ausführung des Befehls die folgenden Ersetzungen vor:
-
region-codeErsetzen Sie durch die AWS-Region, in der Sie mit AWS PCS arbeiten. -
(Optional)
AmazonCloudWatch-PCSErsetzen Sie den Parameter durch Ihren eigenen Namen. Beachten Sie, dass Sie, wenn Sie das Präfix des Namens vonAmazonCloudWatch-ändern, ausdrücklich Lesezugriff auf den SSM-Parameter in Ihrem Knotengruppen-Instanzprofil hinzufügen müssen.
aws ssm put-parameter \ --regionregion-code\ --name "AmazonCloudWatch-PCS" \ --type String \ --value file://config.json
Schreiben Sie eine EC2 Startvorlage
Die spezifischen Details für die Startvorlage hängen davon ab, ob Ihre Konfigurationsdatei in S3 oder SSM gespeichert ist.
Verwenden Sie eine in S3 gespeicherte Konfiguration
Dieses Skript installiert den CloudWatch Agenten, importiert eine Konfigurationsdatei aus einem S3-Bucket und startet den CloudWatch Agenten damit. Ersetzen Sie die folgenden Werte in diesem Skript durch Ihre eigenen Details:
-
amzn-s3-demo-bucket— Der Name eines S3-Buckets, aus dem Ihr Konto lesen kann -
/config.json— Pfad relativ zum S3-Bucket-Root, in dem die Konfiguration gespeichert ist
MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-cloudwatch-agent runcmd: - aws s3 cp s3://amzn-s3-demo-bucket/config.json/etc/s3-cw-config.json - /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file://etc/s3-cw-config.json --==MYBOUNDARY==--
Das IAM-Instanzprofil für die Knotengruppe muss Zugriff auf den Bucket haben. Hier ist ein Beispiel für eine IAM-Richtlinie für den Bucket im obigen Benutzerdatenskript.
Beachten Sie außerdem, dass die Instances ausgehenden Datenverkehr zum S3 und CloudWatch zu den Endpunkten zulassen müssen. Dies kann je nach Ihrer Clusterarchitektur mithilfe von Sicherheitsgruppen oder VPC-Endpunkten erreicht werden.
Verwenden Sie eine in SSM gespeicherte Konfiguration
Dieses Skript installiert den CloudWatch Agenten, importiert eine Konfigurationsdatei aus einem SSM-Parameter und startet den CloudWatch Agenten damit. Ersetzen Sie die folgenden Werte in diesem Skript durch Ihre eigenen Details:
-
(Optional)
AmazonCloudWatch-PCSErsetzen Sie den Parameter durch Ihren eigenen Namen.
MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-cloudwatch-agent runcmd: - /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:AmazonCloudWatch-PCS--==MYBOUNDARY==--
Der IAM-Instanzrichtlinie für die Knotengruppe muss das CloudWatchAgentServerPolicyangehängt sein.
Wenn Ihr Parametername nicht mit beginnt, müssen AmazonCloudWatch- Sie ausdrücklich Lesezugriff auf den SSM-Parameter in Ihrem Knotengruppen-Instanzprofil hinzufügen. Hier ist ein Beispiel für eine IAM-Richtlinie, die dies für das Präfix veranschaulicht. DOC-EXAMPLE-PREFIX
Beachten Sie außerdem, dass die Instances ausgehenden Datenverkehr zum SSM und zu den Endpunkten zulassen müssen. CloudWatch Dies kann je nach Ihrer Clusterarchitektur mithilfe von Sicherheitsgruppen oder VPC-Endpunkten erreicht werden.