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.
Dieses Thema enthält die folgenden Abschnitte:
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.
In diesem Abschnitt werden folgende Themen behandelt:
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 -CreateApplication
Aktion 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 -AddApplicationCloudWatchLoggingOption
Aktion 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 -UpdateApplication
Aktion 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 -DeleteApplicationCloudWatchLoggingOption
Aktion 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:
-
Anwendung: Metriken beziehen sich auf die gesamte Anwendung.
-
Aufgabe: Metriken beziehen sich auf jede Aufgabe. Weitere Informationen zu Aufgaben finden Sie unter Anwendungsskalierung in Managed Service für Apache Flink.
-
Operator: Metriken sind auf jeden Operator beschränkt. Weitere Informationen zu Operatoren finden Sie unter Transformieren von Daten mithilfe von Operatoren in Managed Service für Apache Flink mit der DataStream-API.
-
Parallelität: Metriken sind auf Anwendungsparallelität beschränkt. Sie können diese Metrikebene nur mit dem - MonitoringConfigurationUpdateParameter der UpdateApplication-API festlegen. Diese Metrikebene kann nicht mithilfe der Konsole festgelegt werden. Informationen zur Parallelität finden Sie unter 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.
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:
-
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 Berechtigungen zum Schreiben in den CloudWatch Protokollstream.
-
Überprüfen Sie, dass Ihre Anwendung ausgeführt wird. Um den Status Ihrer Anwendung zu überprüfen, zeigen Sie die Seite Ihrer Anwendung in der Konsole an oder verwenden Sie die ListApplications Aktionen DescribeApplication oder .
-
Überwachen Sie CloudWatch Metriken wie
downtime
, um andere Anwendungsprobleme zu diagnostizieren. Weitere Informationen zum Lesen von CloudWatch Metriken finden Sie unter Metriken 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.