Anwendungsprotokollierung einrichten - Managed Service für Apache Flink

Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.

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.

Anwendungsprotokollierung einrichten

Indem Sie Ihrer Managed Service for Apache Flink-Anwendung eine CloudWatch Amazon-Protokollierungsoption hinzufügen, können Sie Anwendungsereignisse oder Konfigurationsprobleme überwachen.

In diesem Thema wird beschrieben, wie Sie Ihre Anwendung so konfigurieren, dass Anwendungsereignisse in einen CloudWatch Logs-Stream geschrieben werden. Eine CloudWatch Protokollierungsoption ist eine Sammlung von Anwendungseinstellungen und Berechtigungen, mit denen Ihre Anwendung konfiguriert, wie Anwendungsereignisse in CloudWatch Protokolle geschrieben werden. Sie können eine CloudWatch Protokollierungsoption entweder mit dem AWS Management Console oder dem AWS Command Line Interface (AWS CLI) hinzufügen und konfigurieren.

Beachten Sie beim Hinzufügen einer CloudWatch Protokollierungsoption zu Ihrer Anwendung Folgendes:

  • Wenn Sie mithilfe der Konsole eine CloudWatch Protokollierungsoption hinzufügen, erstellt Managed Service for Apache Flink die CloudWatch Protokollgruppe und den Protokollstream für Sie und fügt die Berechtigungen hinzu, die Ihre Anwendung zum Schreiben in den Protokollstream benötigt.

  • Wenn Sie mithilfe der API eine CloudWatch Protokollierungsoption hinzufügen, müssen Sie auch die Protokollgruppe und den Protokollstream der Anwendung erstellen und die Berechtigungen hinzufügen, die Ihre Anwendung zum Schreiben in den Protokollstream benötigt.

Die CloudWatch Protokollierung mithilfe der Konsole einrichten

Wenn Sie die CloudWatch Protokollierung für Ihre Anwendung in der Konsole aktivieren, werden eine CloudWatch Protokollgruppe und ein Protokollstream für Sie erstellt. Außerdem wird die Berechtigungsrichtlinie Ihrer Anwendung mit den Berechtigungen zum Schreiben in den Stream aktualisiert.

Managed Service for Apache Flink erstellt eine Protokollgruppe, die nach der folgenden Konvention benannt ApplicationNamewird, wobei der Name Ihrer Anwendung verwendet wird.

/AWS/KinesisAnalytics/ApplicationName

Managed Service für Apache Flink erstellt einen Protokollstream in der neuen Protokollgruppe mit dem folgenden Namen.

kinesis-analytics-log-stream

Sie legen die Ebene der Anwendungsüberwachungsmetriken und die Protokollebene mit dem Abschnitt Überwachung der Protokollebene der Seite Anwendung konfigurieren fest. Hinweise zu den Protokollebenen von Anwendungen finden Sie unter Ebenen der Anwendungsüberwachung.

CloudWatch Logging mit der CLI einrichten

Gehen Sie wie folgt vor AWS CLI, um eine CloudWatch Protokollierungsoption mithilfe von hinzuzufügen:

  • Erstellen Sie eine CloudWatch Protokollgruppe und einen Protokollstream.

  • Fügen Sie eine Protokollierungsoption hinzu, wenn Sie mithilfe der CreateApplicationAktion eine Anwendung erstellen, oder fügen Sie mithilfe der AddApplicationCloudWatchLoggingOptionAktion einer vorhandenen Anwendung eine Protokollierungsoption hinzu.

  • Fügen Sie der Richtlinie Ihrer Anwendung Berechtigungen zum Schreiben in die Protokolle hinzu.

Eine CloudWatch Protokollgruppe und einen Protokollstream erstellen

Sie erstellen eine CloudWatch Protokollgruppe und streamen entweder mit der CloudWatch Logs-Konsole oder der API. Informationen zum Erstellen einer CloudWatch Protokollgruppe und eines Protokollstreams finden Sie unter Arbeiten mit Protokollgruppen und Protokollströmen.

Arbeiten mit den Optionen für die CloudWatch Anwendungsprotokollierung

Verwenden Sie die folgenden API-Aktionen, um einer neuen oder vorhandenen Anwendung eine CloudWatch Protokolloption hinzuzufügen oder eine Protokolloption für eine bestehende Anwendung zu ändern. Weitere Informationen zur Verwendung einer JSON-Datei für die Eingabe einer API-Aktion finden Sie unter Beispielcode für Managed Service für Apache Flink API.

Hinzufügen einer CloudWatch Protokolloption beim Erstellen einer Anwendung

Das folgende Beispiel zeigt, wie Sie die CreateApplication Aktion verwenden, um beim Erstellen einer Anwendung eine CloudWatch Protokolloption hinzuzufügen. Ersetzen Sie in diesem Beispiel den Amazon-Ressourcennamen (ARN) des CloudWatch Log-Streams, der der neuen Anwendung hinzugefügt werden soll, durch Ihre eigenen Informationen. Weitere Informationen zur Aktion finden Sie unter CreateApplication.

{ "ApplicationName": "test", "ApplicationDescription": "test-application-description", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation":{ "BucketARN": "arn:aws:s3:::mybucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>" }] }

Hinzufügen einer CloudWatch Protokolloption zu einer vorhandenen Anwendung

Das folgende Beispiel zeigt, wie die AddApplicationCloudWatchLoggingOption Aktion verwendet wird, um einer vorhandenen Anwendung eine CloudWatch Protokolloption hinzuzufügen. Ersetzen Sie im Beispiel jeden Platzhalter für Benutzereingaben durch Ihre eigenen Informationen. Weitere Informationen zur Aktion finden Sie unter AddApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of the application to add the log option to>", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>" }, "CurrentApplicationVersionId": <Version of the application to add the log to> }

Aktualisierung einer vorhandenen CloudWatch Protokolloption

Das folgende Beispiel zeigt, wie die UpdateApplication Aktion verwendet wird, um eine bestehende CloudWatch Protokolloption zu ändern. Ersetzen Sie im Beispiel jeden Platzhalter für Benutzereingaben durch Ihre eigenen Informationen. Weitere Informationen zur Aktion finden Sie unter UpdateApplication.

{ "ApplicationName": "<Name of the application to update the log option for>", "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>", "LogStreamARNUpdate": "<ARN of the new log stream to use>" } ], "CurrentApplicationVersionId": <ID of the application version to modify> }

Löschen einer CloudWatch Protokolloption aus einer Anwendung

Das folgende Beispiel zeigt, wie die DeleteApplicationCloudWatchLoggingOption Aktion zum Löschen einer vorhandenen CloudWatch Protokolloption verwendet wird. Ersetzen Sie im Beispiel jeden Platzhalter für Benutzereingaben durch Ihre eigenen Informationen. Weitere Informationen zur Aktion finden Sie unter DeleteApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of application to delete log option from>", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>", "CurrentApplicationVersionId": <Version of the application to delete the log option from> }

Einstellung der Anwendungsprotokollierungsebene

Um die Ebene der Anwendungsprotokollierung festzulegen, verwenden Sie den MonitoringConfiguration-Parameter der CreateApplication-Aktion oder den MonitoringConfigurationUpdate-Parameter der UpdateApplication-Aktion.

Hinweise zu den Protokollebenen von Anwendungen finden Sie unter Ebenen der Anwendungsüberwachung.

Legen Sie die Anwendungsprotokollierungsebene fest, wenn Sie eine Anwendung erstellen

In der folgenden Beispielanforderung für die CreateApplication-Aktion wird die Protokollebene der Anwendung auf INFO festgelegt.

{ "ApplicationName": "MyApplication", "ApplicationDescription": "My Application Description", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": "MonitoringConfiguration": { "ConfigurationType": "CUSTOM", "LogLevel": "INFO" } }, "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole" }
Aktualisieren Sie die Protokollierungsebene der Anwendung

In der folgenden Beispielanforderung für die UpdateApplication-Aktion wird die Protokollebene der Anwendung auf INFO festgelegt.

{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "LogLevelUpdate": "INFO" } } } }

Hinzufügen von Schreibberechtigungen für den CloudWatch Protokollstream

Managed Service for Apache Flink benötigt Berechtigungen zum Schreiben von Fehlern bei Fehlkonfigurationen. CloudWatch Sie können diese Berechtigungen der AWS Identity and Access Management (IAM-) Rolle hinzufügen, die Managed Service for Apache Flink annimmt.

Weitere Informationen zur Verwendung einer IAM-Rolle für Managed Service für Apache Flink finden Sie unter. Identity and Access Management für Amazon Managed Service für Apache Flink

Vertrauensrichtlinie

Zum Erteilen von Managed Service für Apache Flink-Berechtigungen, um eine IAM-Rolle anzunehmen, können Sie an die Serviceausführungs-Rolle die folgende Vertrauensrichtlinie anhängen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanlaytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Berechtigungsrichtlinie

Um einer Anwendung Berechtigungen zum Schreiben von Protokollereignissen CloudWatch aus einer Managed Service for Apache Flink-Ressource zu erteilen, können Sie die folgende IAM-Berechtigungsrichtlinie verwenden. Geben Sie die richtigen Amazon-Ressourcennamen (ARNs) für Ihre Protokollgruppe und Ihren Stream an.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789000", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*", "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:*", "arn:aws:logs:us-east-1:123456789012:log-group:*", ] } ] }

Ebenen der Anwendungsüberwachung

Sie steuern die Generierung von Anwendungsprotokollmeldungen mithilfe von Überwachung der Metrikebene und Überwachung der Protokollebene der Anwendung.

Die Überwachung der Metrikebene der Anwendung steuert die Granularität der Protokollnachrichten. Die Überwachung der Metrikebenen sind wie folgt definiert:

Die Überwachung der Protokollebene der Anwendung steuert die Ausführlichkeit des Anwendungsprotokolls. Die Überwachung der Protokollebene ist wie folgt definiert:

  • Fehler: Mögliche katastrophale Ereignisse der Anwendung.

  • Warnung: Potenziell schädliche Situationen der Anwendung.

  • Info: Informative und vorübergehende Ausfälle der Anwendung. Wir empfehlen die Verwendung dieser Protokollierungsebene.

  • Debug: Detaillierte Informationsereignisse, die für das Debuggen einer Anwendung am nützlichsten sind. Hinweis: Verwenden Sie diese Ebene nur für temporäre Debugging-Zwecke.

Bewährte Methoden der Protokollierung

Wir empfehlen, dass Ihre Anwendung die Protokollierungsebene Info verwendet. Wir empfehlen diese Stufe, um sicherzustellen, dass Sie Apache Flink-Fehler sehen, die auf der Informations-Ebene und nicht auf der Fehler-Ebene protokolliert werden.

Wir empfehlen, die Debug-Ebene nur vorübergehend zu verwenden, um Anwendungsprobleme zu untersuchen. Wechseln Sie zurück zur Informations-Ebene, wenn das Problem behoben ist. Die Verwendung der Debug-Protokollierungsebene wirkt sich erheblich auf die Leistung Ihrer Anwendung aus.

Eine übermäßige Protokollierung kann sich auch erheblich auf die Anwendungsleistung auswirken. Wir empfehlen beispielsweise, nicht für jeden verarbeiteten Datensatz einen Protokolleintrag zu schreiben. Eine übermäßige Protokollierung kann zu schwerwiegenden Engpässen bei der Datenverarbeitung und zu einem Gegendruck beim Lesen von Daten aus den Quellen führen.

Fehlerbehebung bei der Protokollierung

Wenn Anwendungsprotokolle nicht in den Protokollstream geschrieben werden, überprüfen Sie Folgendes:

  • Stellen Sie sicher, dass die IAM-Rolle und die Richtlinien Ihrer Anwendung korrekt sind. Die Richtlinie Ihrer Anwendung benötigt die folgenden Berechtigungen, um auf Ihren Protokollstream zugreifen zu können:

    • logs:PutLogEvents

    • logs:DescribeLogGroups

    • logs:DescribeLogStreams

    Weitere Informationen finden Sie unter Hinzufügen von Schreibberechtigungen für den CloudWatch Protokollstream.

  • Überprüfen Sie, dass Ihre Anwendung ausgeführt wird. Um den Status Ihrer Anwendung zu überprüfen, rufen Sie die Seite Ihrer Anwendung in der Konsole auf oder verwenden Sie die ListApplicationsAktionen DescribeApplicationoder.

  • Überwachen Sie CloudWatch Messwertedowntime, um beispielsweise andere Anwendungsprobleme zu diagnostizieren. Informationen zum Lesen von CloudWatch Metriken finden Sie unterMetriken und Dimensionen in Managed Service für Apache Flink.

Nächster Schritt

Nachdem Sie die CloudWatch Protokollierung in Ihrer Anwendung aktiviert haben, können Sie CloudWatch Logs Insights verwenden, um Ihre Anwendungsprotokolle zu analysieren. Weitere Informationen finden Sie unter Analysieren von Protokollen mit CloudWatch Logs Insights.