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.
Überwachen AWS PCS-Instanzen, die Amazon verwenden CloudWatch
AWS PCS startet Amazon EC2-Instances nach Bedarf, um die in Ihren PCS-Rechenknotengruppen definierten Skalierungsanforderungen zu erfüllen. Sie können diese Instances mit Amazon CloudWatch überwachen, während sie ausgeführt werden. Sie können die Protokolle laufender Instances überprüfen, 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 wird. Instance-Logs werden in der Regel zusammen mit den EBS-Volumes gelöscht, auf denen die Instance basiert. Um Metriken oder Logging-Daten der von PCS gestarteten Instances auch 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 -Protokolle.
Überwachung laufender Instanzen
Suche nach AWS PCS-Instanzen
Um von PCS gestartete Instanzen 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 Instance die Abschnitte Status und Alarme sowie Monitoring. Wenn der Anmeldezugriff für diese Instances konfiguriert ist, können Sie eine Verbindung zu ihnen herstellen und verschiedene Protokolldateien auf den Instances überprüfen. Weitere Informationen zur Identifizierung der Instanzen, die von PCS verwaltet werden, finden Sie unterSuchen nach Rechenknotengruppeninstanzen in AWS PCS.
Aktivierung detaillierter Metriken
Standardmäßig werden Instance-Metriken 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 der Compute-Node-Gruppe. Weitere Informationen finden Sie unter Aktivieren Sie die detaillierte CloudWatch Überwachung.
Konfiguration persistenter Instanz-Metriken und -Protokolle
Sie können die Metriken und Protokolle Ihrer Instances beibehalten, 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 Agentensoftware installiert, Ihre Konfiguration abruft und den CloudWatch Agenten mithilfe der Konfiguration startet.
Weitere Informationen finden Sie im CloudWatch Amazon-Benutzerhandbuch unter Erfassung von Metriken, Protokollen und Ablaufverfolgungen mit dem CloudWatch Agenten und. Verwenden von Amazon EC2 EC2-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, in der die zu erfassenden Metriken, Logs und Traces angegeben sind. 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 mit dem Namen config.json mit den folgenden Inhalten. 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 2023. Wenn Ihre Instances ein anderes Basisbetriebssystem verwenden, ändern Sie die Pfade entsprechend.
-
Um andere Logs zu erfassen, fügen Sie zusätzliche Einträge unter hinzu
collect_list. -
Die Werte in
{brackets}sind als Vorlage dienende Variablen. Eine 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, die bei der Diagnose von Fehlern in den Bereichen Bootstrapping, Authentifizierung und Anmeldung sowie in anderen Bereichen zur Problembehandlung hilfreich sein können. 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-specific Vorgängen, die während der Instanzkonfiguration ausgeführt werden -
/var/log/slurmd.log— Ausgabe des Daemons slurmd des Slurm-Workload-Managers -
/var/log/messages— Systemnachrichten aus dem Kernel, den Systemdiensten und den 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 /PCSLogs/instances gesendet. Die Log-Streams sind eine Kombination aus der Instanz-ID und dem Basisnamen der Logdatei. Die Protokollgruppe hat eine Aufbewahrungszeit von 30 Tagen.
Darüber hinaus weist die Datei den CloudWatch Agenten an, mehrere gängige Metriken zu sammeln und sie nach Instanz-ID zu aggregieren.
Speichern Sie die Konfiguration
Die CloudWatch Agentenkonfigurationsdatei muss an einem Ort gespeichert werden, an dem PCS-Rechenknoteninstanzen darauf zugreifen können. Dafür gibt es zwei gängige Methoden. Sie können es in einen Amazon S3-Bucket hochladen, auf den Ihre Compute-Knotengruppen-Instances über ihr Instance-Profil Zugriff haben. Alternativ können Sie ihn als SSM-Parameter im Amazon Systems Manager Parameter Store speichern.
Laden Sie es in einen S3-Bucket hoch
Verwenden Sie die folgenden AWS-CLI-Befehle, um Ihre Datei in S3 zu speichern. Bevor Sie den Befehl ausführen, nehmen Sie die folgenden Ersetzungen vor:
-
Ersetzen Sie ihn
amzn-s3-demo-bucketdurch Ihren eigenen S3-Bucket-Namen
Erstellen Sie zunächst (dies ist optional, wenn Sie einen vorhandenen Bucket haben) einen Bucket für Ihre Konfigurationsdatei (en).
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. Bevor Sie den Befehl ausführen, nehmen Sie die folgenden Ersetzungen vor:
-
region-codeErsetzen Sie es 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, dem SSM-Parameter in Ihrem Knotengruppen-Instanzprofil ausdrücklich Lesezugriff gewähren 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 Daten:
-
amzn-s3-demo-bucket— Der Name eines S3-Buckets, aus dem Ihr Konto lesen kann -
/config.json— Pfad relativ zum S3-Bucket-Stamm, 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. Im obigen Benutzerdatenskript finden Sie ein Beispiel für eine IAM-Richtlinie für den Bucket.
Beachten Sie auch, dass die Instances ausgehenden Datenverkehr zum S3 und CloudWatch zu den Endpunkten zulassen müssen. Dies kann je nach 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 Daten:
-
(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 die CloudWatchAgentServerPolicy angehängt sein.
Wenn Ihr Parametername nicht mit beginnt, müssen AmazonCloudWatch- Sie dem SSM-Parameter in Ihrem Knotengruppen-Instanzprofil ausdrücklich Lesezugriff gewähren. Hier ist ein Beispiel für eine IAM-Richtlinie, die dies für das Präfix veranschaulicht. DOC-EXAMPLE-PREFIX
Beachten Sie auch, dass die Instances ausgehenden Datenverkehr zum SSM und zu den Endpunkten zulassen müssen. CloudWatch Dies kann je nach Clusterarchitektur mithilfe von Sicherheitsgruppen oder VPC-Endpunkten erreicht werden.