Protokolle abrufen und aufbewahren - AWS ParallelCluster

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.

Protokolle abrufen und aufbewahren

AWS ParallelCluster erstellt Amazon EC2-Metriken für HeadNode und berechnet Instances und Speicher. Sie können die Metriken in der CloudWatch Konsole Custom Dashboards einsehen. AWS ParallelCluster erstellt auch CloudWatch Cluster-Protokollstreams in Protokollgruppen. Sie können diese Protokolle in der CloudWatch Konsole „Benutzerdefinierte Dashboards“ oder „Protokollgruppen“ anzeigen. Im Abschnitt Konfiguration des Monitoring-Clusters wird beschrieben, wie Sie die CloudWatch Clusterprotokolle und das Dashboard ändern können. Weitere Informationen finden Sie unter Integration mit Amazon CloudWatch Logs und CloudWatch Amazon-Dashboard.

Protokolle sind eine nützliche Ressource zur Behebung von Problemen. Wenn Sie beispielsweise einen ausgefallenen Cluster löschen möchten, kann es nützlich sein, zunächst ein Archiv der Clusterprotokolle zu erstellen. Folgen Sie den Schritten unterProtokolle archivieren, um ein Archiv zu erstellen.

Cluster-Protokolle sind in nicht verfügbar CloudWatch

Wenn Clusterprotokolle in nicht verfügbar sind CloudWatch, stellen Sie sicher, dass Sie die AWS ParallelCluster CloudWatch Protokollkonfiguration nicht überschrieben haben, wenn Sie der Konfiguration benutzerdefinierte Protokolle hinzufügen.

Um der CloudWatch Konfiguration benutzerdefinierte Protokolle hinzuzufügen, stellen Sie sicher, dass Sie sie an die Konfiguration anhängen, anstatt sie abzurufen und zu überschreiben. Weitere Informationen zu fetch-config und finden Sie append-config unter Mehrere CloudWatch Agent-Konfigurationsdateien im CloudWatch Benutzerhandbuch.

Um die AWS ParallelCluster CloudWatch Protokollkonfiguration wiederherzustellen, können Sie die folgenden Befehle innerhalb eines AWS ParallelCluster Knotens ausführen:

$ PLATFORM="$(ohai platform | jq -r ".[]")" LOG_GROUP_NAME="$(cat /etc/chef/dna.json | jq -r ".cluster.log_group_name")" SCHEDULER="$(cat /etc/chef/dna.json | jq -r ".cluster.scheduler")" NODE_ROLE="$(cat /etc/chef/dna.json | jq -r ".cluster.node_type")" CONFIG_DATA_PATH="/usr/local/etc/cloudwatch_agent_config.json" /opt/parallelcluster/pyenv/versions/cookbook_virtualenv/bin/python /usr/local/bin/write_cloudwatch_agent_json.py --platform $PLATFORM --config $CONFIG_DATA_PATH --log-group $LOG_GROUP_NAME --scheduler $SCHEDULER --node-role $NODE_ROLE /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s

Protokolle archivieren

Sie können die Protokolle in Amazon S3 oder in einer lokalen Datei archivieren (abhängig vom --output-file Parameter).

Anmerkung

Fügen Sie der Amazon S3 S3-Bucket-Richtlinie Berechtigungen hinzu, um CloudWatch Zugriff zu gewähren. Weitere Informationen finden Sie unter Berechtigungen für einen Amazon S3 S3-Bucket festlegen im CloudWatch Logs-Benutzerhandbuch.

$ pcluster export-cluster-logs --cluster-name mycluster --region eu-west-1 \ --bucket bucketname --bucket-prefix logs { "url": "https://bucketname.s3.eu-west-1.amazonaws.com/export-log/mycluster-logs-202109071136.tar.gz?..." } # use the --output-file parameter to save the logs locally $ pcluster export-cluster-logs --cluster-name mycluster --region eu-west-1 \ --bucket bucketname --bucket-prefix logs --output-file /tmp/archive.tar.gz { "path": "/tmp/archive.tar.gz" }

Das Archiv enthält die Amazon CloudWatch Logs-Streams und AWS CloudFormation Stack-Ereignisse vom Hauptknoten und den Rechenknoten der letzten 14 Tage, sofern nicht ausdrücklich in der Konfiguration oder in den Parametern für den export-cluster-logs Befehl angegeben. Wie lange es dauert, bis der Befehl abgeschlossen ist, hängt von der Anzahl der Knoten im Cluster und der Anzahl der in CloudWatch Logs verfügbaren Protokollstreams ab. Weitere Hinweise zu den verfügbaren Protokollstreams finden Sie unterIntegration mit Amazon CloudWatch Logs.

Konservierte Protokolle

Behält seit Version 3.0.0 standardmäßig CloudWatch Protokolle bei, AWS ParallelCluster wenn ein Cluster gelöscht wird. Wenn Sie einen Cluster löschen und seine Protokolle beibehalten möchten, stellen Sie sicher, dass Monitoring//LogsCloudWatch/Deletein der Clusterkonfiguration DeletionPolicynicht auf eingestellt ist. Ändern Sie andernfalls den Wert für dieses Feld in Retain und führen Sie den pcluster update-cluster Befehl aus. Führen Sie dann den Befehl aus, pcluster delete-cluster --cluster-name <cluster_name> um den Cluster zu löschen, aber die in Amazon gespeicherte Protokollgruppe beizubehalten CloudWatch.

Protokolle zu beendeten Knoten

Wenn ein statischer Rechenknoten unerwartet beendet wird und CloudWatch keine Protokolle dafür vorliegen, überprüfen Sie, ob die Konsolenausgabe für diesen Rechenknoten auf dem Hauptknoten im /var/log/parallelcluster/compute_console_output Protokoll aufgezeichnet AWS ParallelCluster wurde. Weitere Informationen finden Sie unter Wichtige Protokolle für das Debuggen.

Wenn das /var/log/parallelcluster/compute_console_output Protokoll nicht verfügbar ist oder die Ausgabe für den Knoten nicht enthält, verwenden Sie den, AWS CLI um die Konsolenausgabe vom ausgefallenen Knoten abzurufen. Melden Sie sich beim Cluster-Hauptknoten an und rufen Sie den ausgefallenen Knoten instance-id aus der /var/log/parallelcluster/slurm_resume.log Datei ab.

Rufen Sie die Konsolenausgabe ab, indem Sie den folgenden Befehl mit dem folgenden Befehl aufrufeninstance-id:

$ aws ec2 get-console-output --instance-id i-abcdef01234567890

Wenn sich ein dynamischer Rechenknoten nach dem Start selbst CloudWatch beendet und keine Protokolle dafür vorliegen, reichen Sie einen Job ein, der eine Cluster-Skalierungsaktion aktiviert. Warten Sie, bis die Instanz ausfällt, und rufen Sie das Protokoll der Instanzkonsole ab.

Melden Sie sich beim Cluster-Hauptknoten an und rufen Sie den Rechenknoten instance-id aus der /var/log/parallelcluster/slurm_resume.log Datei ab.

Rufen Sie das Protokoll der Instanzkonsole mit dem folgenden Befehl ab:

$ aws ec2 get-console-output --instance-id i-abcdef01234567890

Das Konsolenausgabeprotokoll kann Ihnen helfen, die Hauptursache für einen Ausfall eines Compute-Knotens zu debuggen, wenn das Compute-Knoten-Protokoll nicht verfügbar ist.