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

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 senden, indem Sie Run Command, mit einer Fähigkeit von AWS Systems Manager, können Sie angeben, wohin die Befehlsausgabe gesendet werden soll. 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 sendet regelmäßig alle Befehlsausgaben und CloudWatch Fehlerprotokolle an Logs. 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 Operation 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 Instanzprofil für EC2 Instanzen finden Sie unter Konfigurieren der für Systems Manager erforderlichen Instanzberechtigungen. Informationen zum Hinzufügen von Richtlinien zu einer Servicerolle für lokale Server und virtuelle Maschinen, die Sie als verwaltete Knoten verwenden möchten, finden Sie unter Erstellen der für Systems Manager erforderlichen IAM Servicerolle in Hybrid- und Multicloud-Umgebungen.

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 im IAMBenutzerhandbuch unter IAMRichtlinien bearbeiten.

{ "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/*" },

Beim Senden von Befehlen CloudWatch Protokolle angeben

Um CloudWatch Logs als Ausgabe anzugeben, wenn Sie einen Befehl aus dem senden AWS Management Console, 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