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 Anwendung Managed Service für Apache Flink eine Amazon- CloudWatch Protokollierungsoption hinzufügen, können Sie auf 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, die Ihre Anwendung verwendet, um die Art und Weise zu konfigurieren, wie sie Anwendungsereignisse in CloudWatch Protokolle schreibt. Sie können eine CloudWatch Protokollierungsoption entweder über die AWS Management Console oder die AWS Command Line Interface () hinzufügen und konfigurierenAWS CLI.

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

  • Wenn Sie eine CloudWatch Protokollierungsoption über die Konsole hinzufügen, erstellt Managed Service für 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 eine CloudWatch Protokollierungsoption mithilfe der API 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.

Einrichten der CloudWatch Protokollierung mit der Konsole

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 für Apache Flink erstellt eine Protokollgruppe mit dem Namen unter Verwendung der folgenden Konvention, wobei der Name Ihrer Anwendung ApplicationName ist.

/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 Anwendungsüberwachungsebenen.

Einrichten der CloudWatch Protokollierung mit der CLI

Gehen Sie wie folgt vorAWS CLI, um eine CloudWatch Protokollierungsoption mithilfe der hinzuzufügen:

  • Erstellen Sie eine CloudWatch Protokollgruppe und einen Protokollstream.

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

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

Erstellen einer CloudWatch Protokollgruppe und eines Protokollstreams

Sie erstellen eine CloudWatch Protokollgruppe und streamen entweder über die CloudWatch Logs-Konsole oder die API. Informationen zum Erstellen einer CloudWatch Protokollgruppe und eines Protokollstreams finden Sie unter Arbeiten mit Protokollgruppen und Protokollstreams.

Arbeiten mit CloudWatch Anwendungsprotokollierungsoptionen

Verwenden Sie die folgenden API-Aktionen, um einer neuen oder vorhandenen Anwendung eine CloudWatch Protokolloption hinzuzufügen oder eine Protokolloption für eine vorhandene 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.

Hinzufügen einer CloudWatch Protokolloption beim Erstellen einer Anwendung

Das folgende Beispiel zeigt, wie Sie die -CreateApplicationAktion verwenden, um eine CloudWatch Protokolloption hinzuzufügen, wenn Sie eine Anwendung erstellen. Ersetzen Sie im Beispiel den Amazon-Ressourcennamen (ARN) des CloudWatch Protokollstreams, um ihn der neuen Anwendung durch Ihre eigenen Informationen hinzuzufügen. 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 Sie mit der -AddApplicationCloudWatchLoggingOptionAktion eine CloudWatch Protokolloption zu einer vorhandenen Anwendung hinzufü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> }

Aktualisieren einer vorhandenen CloudWatch Protokolloption

Das folgende Beispiel zeigt, wie Sie die -UpdateApplicationAktion verwenden, um eine vorhandene 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 Sie die -DeleteApplicationCloudWatchLoggingOptionAktion verwenden, um eine vorhandene CloudWatch Protokolloption zu löschen. 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 Anwendungsüberwachungsebenen.

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 der Anwendungsprotokollierungsebene

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 Berechtigungen zum Schreiben in den CloudWatch Protokollstream

Managed Service für Apache Flink benötigt Berechtigungen, um Fehlkonfigurationsfehler in zu schreiben CloudWatch. Sie können diese Berechtigungen der AWS Identity and Access Management (IAM)-Rolle hinzufügen, die Managed Service für 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 in CloudWatch von einer Managed Service für 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:*", ] } ] }

Anwendungsüberwachungsebenen

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.

Protokollierung von Problemlösungen

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

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.