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:
-
Anwendung: Metriken beziehen sich auf die gesamte Anwendung.
-
Aufgabe: Metriken beziehen sich auf jede Aufgabe. Weitere Informationen zu Aufgaben finden Sie unter Implementieren Sie die Anwendungsskalierung in Managed Service für Apache Flink.
-
Operator: Metriken sind auf jeden Operator beschränkt. Weitere Informationen zu Operatoren finden Sie unter Transformieren Sie Daten mithilfe von Operatoren in Managed Service für Apache Flink mit dem DataStream API.
-
Parallelität: Metriken sind auf Anwendungsparallelität beschränkt. Sie können diese Metrikebene nur mit dem MonitoringConfigurationUpdateParameter von festlegen UpdateApplicationAPI. Diese Metrikebene kann nicht mithilfe der Konsole festgelegt werden. Informationen zur Parallelität finden Sie unter Implementieren Sie die Anwendungsskalierung in Managed Service für Apache Flink.
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 Messwerte
downtime
, 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.