Konfiguration von Amazon CloudWatch Logs für Run Command - AWS Systems Manager

• Das AWS Systems Manager CloudWatch Dashboard wird nach dem 30. April 2026 nicht mehr verfügbar sein. Kunden können weiterhin die CloudWatch Amazon-Konsole verwenden, um ihre CloudWatch Amazon-Dashboards anzusehen, zu erstellen und zu verwalten, so wie sie es heute tun. Weitere Informationen finden Sie in der Amazon CloudWatch Dashboard-Dokumentation.

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.

Konfiguration von Amazon CloudWatch Logs für Run Command

Wenn Sie einen Befehl mithilfe Run Command eines Tools in senden AWS Systems Manager, können Sie angeben, wohin Sie die Befehlsausgabe senden möchten. Standardmäßig gibt Systems Manager nur die ersten 24 000 Zeichen der Befehlsausgabe zurück. Wenn Sie alle Details der Befehlsausgabe anzeigen möchten, können Sie einen Amazon Simple Storage Service (Amazon S3)-Bucket angeben. Oder Sie können Amazon CloudWatch Logs angeben. Wenn Sie CloudWatch Logs angeben, Run Command werden in regelmäßigen Abständen alle Befehlsausgaben und CloudWatch Fehlerprotokolle an Logs gesendet. Sie können Ausgabeprotokolle nahezu in Echtzeit überwachen, nach bestimmten Ausdrücken, Werten oder Mustern suchen und Alarme basierend auf der Suche erstellen.

Wenn Sie Ihren verwalteten Knoten für die Verwendung der AWS Identity and Access Management (IAM) verwalteten Richtlinien AmazonSSMManagedInstanceCore und konfiguriert habenCloudWatchAgentServerPolicy, benötigt Ihr Knoten keine zusätzliche Konfiguration, um die Ausgabe an CloudWatch Logs zu senden. Wählen Sie diese Option, wenn Sie Befehle von der Konsole aus senden, oder fügen Sie den cloud-watch-output-config Abschnitt und den CloudWatchOutputEnabled Parameter hinzu, wenn Sie die AWS Command Line Interface (AWS CLI) AWS Tools for Windows PowerShell, oder eine API-Operation verwenden. Der cloud-watch-output-config-Abschnitt und der CloudWatchOutputEnabled-Parameter sind später in diesem Thema noch ausführlicher beschrieben.

Informationen zum Hinzufügen von Richtlinien zu einem Instance-Profil für EC2-Instances finden Sie unter Konfigurieren von erfordlichen Instance-Berechtigungen für Systems Manager. Informationen zum Hinzufügen von Richtlinien zu einer Servicerolle für On-Premises-Server und virtuelle Maschinen, die Sie als verwaltete Knoten verwenden möchten, finden Sie unter Erstellen der für Systems Manager in Hybrid- und Multi-Cloud-Umgebungen erforderlichen IAM-Servicerolle.

Wenn Sie auf Ihren Knoten eine benutzerdefinierte Richtlinie verwenden, aktualisieren Sie die Richtlinie auf jedem Knoten, damit Systems Manager Ausgaben und CloudWatch Protokolle an Logs senden kann. Fügen Sie Ihrer benutzerdefinierten Richtlinie die folgenden Richtlinienobjekte hinzu. Weitere Informationen zum Aktualisieren einer IAM-Richtlinie finden Sie unter Editing IAM policies (Bearbeiten von IAM-Richtlinien) im IAM-Benutzerhandbuch.

{ "Effect": "Allow", "Action": "logs:DescribeLogGroups", "Resource": "*" }, { "Effect":"Allow", "Action":[ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource":"arn:aws:logs:*:*:log-group:/aws/ssm/*" },

CloudWatch Logs angeben, wenn Sie Befehle senden

Um CloudWatch Logs als Ausgabe anzugeben, wenn Sie einen Befehl aus dem senden AWS-Managementkonsole, wählen Sie im Abschnitt CloudWatch Ausgabeoptionen die Option Ausgabe aus. Optional können Sie den Namen der CloudWatch Protokollgruppe angeben, an die Sie die Befehlsausgabe senden möchten. Wenn Sie keinen Gruppennamen angeben, erstellt Systems Manager automatisch eine Protokollgruppe für Sie. Die Protokollgruppe verwendet das folgende Bezeichnungsformat: /aws/ssm/SystemsManagerDocumentName

Wenn Sie Befehle mithilfe von ausführen AWS CLI, geben Sie den cloud-watch-output-config Abschnitt in Ihrem Befehl an. Dieser Abschnitt ermöglicht Ihnen, den CloudWatchOutputEnabled-Parameter und optional den CloudWatchLogGroupName-Parameter anzugeben. Ein Beispiel.

Linux & macOS
aws ssm send-command \ --instance-ids "instance ID" \ --document-name "AWS-RunShellScript" \ --parameters "commands=echo helloWorld" \ --cloud-watch-output-config "CloudWatchOutputEnabled=true,CloudWatchLogGroupName=log group name"
Windows
aws ssm send-command ^ --document-name "AWS-RunPowerShellScript" ^ --parameters commands=["echo helloWorld"] ^ --targets "Key=instanceids,Values=an instance ID” ^ --cloud-watch-output-config '{"CloudWatchLogGroupName":"log group name","CloudWatchOutputEnabled":true}'

Befehlsausgabe in CloudWatch Logs anzeigen

Sobald der Befehl ausgeführt wird, sendet Systems Manager die Ausgabe nahezu in Echtzeit an CloudWatch Logs. Die Ausgabe in CloudWatch Logs verwendet das folgende Format:

CommandID/InstanceID/PluginID/stdout

CommandID/InstanceID/PluginID/stderr

Die Ausgabe der Ausführung wird alle 30 Sekunden hochgeladen, oder wenn der Puffer mehr als 200 KB umfasst (je nachdem, was eher eintritt).

Anmerkung

Log Streams werden nur erstellt, wenn Ausgabedaten verfügbar sind. Wenn es beispielsweise keine Fehlerdaten für eine Ausführung gibt, wird der stderr-Stream nicht erstellt.

Hier ist ein Beispiel für die Befehlsausgabe, wie sie in CloudWatch Logs angezeigt wird.

Group - /aws/ssm/AWS-RunShellScript
Streams – 
1234-567-8910/i-abcd-efg-hijk/AWS-RunPowerShellScript/stdout
24/1234-567-8910/i-abcd-efg-hijk/AWS-RunPowerShellScript/stderr