Anwendungsprotokollierung in Managed Service für Apache Flink 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 in Managed Service für Apache Flink 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 von eine CloudWatch Protokollierungsoption hinzufügenAPI, 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.

Richten Sie die CloudWatch Protokollierung mithilfe der Konsole ein

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 wird: ApplicationName ist der Name Ihrer Anwendung.

/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 Steuern Sie die Ebenen der Anwendungsüberwachung.

Richten Sie die CloudWatch Protokollierung mit dem ein CLI

Um eine CloudWatch Protokollierungsoption mit dem hinzuzufügen AWS CLI, gehen Sie wie folgt vor:

  • 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.

Erstellen Sie eine CloudWatch Protokollgruppe und einen Protokollstream

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

Arbeiten Sie 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. Hinweise zur Verwendung einer JSON Datei als Eingabe für eine API Aktion finden Sie unterAPIBeispielcode für Managed Service für Apache Flink.

Fügen Sie beim Erstellen einer Anwendung eine CloudWatch Protokolloption hinzu

Das folgende Beispiel zeigt, wie Sie die CreateApplication Aktion verwenden, um beim Erstellen einer Anwendung eine CloudWatch Protokolloption hinzuzufügen. Ersetzen Sie im Beispiel Amazon Resource Name (ARN) of the CloudWatch Log stream to add to the new application mit Ihren 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:::amzn-s3-demo-bucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>" }] }

Fügen Sie einer vorhandenen Anwendung eine CloudWatch Protokolloption hinzu

Das folgende Beispiel zeigt, wie die AddApplicationCloudWatchLoggingOption Aktion verwendet wird, um einer vorhandenen Anwendung eine CloudWatch Protokolloption hinzuzufügen. Ersetzen Sie im Beispiel jede user input placeholder mit Ihren 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 Sie eine bestehende CloudWatch Protokolloption

Das folgende Beispiel zeigt, wie die UpdateApplication Aktion verwendet wird, um eine bestehende CloudWatch Protokolloption zu ändern. Ersetzen Sie im Beispiel jede user input placeholder mit Ihren 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 Sie eine 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 jede user input placeholder mit Ihren 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> }

Stellen Sie die Protokollierungsebene der Anwendung ein

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 Steuern Sie die 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:::amzn-s3-demo-bucket", "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" } } } }

Fügen Sie Berechtigungen hinzu, um in den CloudWatch Protokollstream zu schreiben

Managed Service for Apache Flink benötigt Berechtigungen zum Schreiben von Fehlern bei Fehlkonfigurationen. CloudWatch Sie können diese Berechtigungen der Rolle AWS Identity and Access Management (IAM) 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

Um Managed Service for Apache Flink die Berechtigung zur Übernahme einer IAM Rolle zu gewähren, können Sie der Dienstausführungsrolle die folgende Vertrauensrichtlinie zuordnen.

{ "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 ein.

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

Steuern Sie die 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.

Wenden Sie bewährte Methoden für die Protokollierung an

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.

Führen Sie eine Fehlerbehebung bei der Protokol

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 Fügen Sie Berechtigungen hinzu, um in den CloudWatch Protokollstream zu schreiben.

  • Überprüfen Sie, dass Ihre Anwendung ausgeführt wird. Um den Status Ihrer Bewerbung zu überprüfen, rufen Sie die Seite Ihrer Bewerbung 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 unter.

Verwenden Sie CloudWatch Logs Insights

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 Sie Logs mit CloudWatch Logs Insights.