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.
Amazon Athena Athena-Anschluss CloudWatch
Der Amazon CloudWatch Athena-Connector ermöglicht Amazon Athena die Kommunikation mit, CloudWatch sodass Sie Ihre Protokolldaten mit SQL abfragen können.
Der Konnektor ordnet Ihre LogGroups AS-Schemas und jedes Schema LogStream als Tabelle zu. Der Konnektor ordnet auch eine spezielle all_log_streams
Ansicht zu, die alles LogStreams in der LogGroup enthält. In dieser Ansicht können Sie alle Protokolle in einem LogGroup auf einmal abfragen, anstatt sie LogStream einzeln zu durchsuchen.
Voraussetzungen
Stellen Sie den Konnektor für Ihr AWS-Konto mithilfe der Athena-Konsole oder AWS Serverless Application Repository bereit. Weitere Informationen finden Sie unter Stellen Sie einen Datenquellenconnector bereit oder Verwenden Sie den AWS Serverless Application Repository , um einen Datenquellenconnector bereitzustellen.
Parameter
Verwenden Sie die Lambda-Umgebungsvariablen in diesem Abschnitt, um den CloudWatch Konnektor zu konfigurieren.
-
spill_bucket – Gibt den Amazon S3-Bucket für Daten an, die die Lambda-Funktionsgrenzen überschreiten.
-
spill_prefix – (Optional) Ist standardmäßig ein Unterordner im angegebenen
spill_bucket
genanntathena-federation-spill
. Wir empfehlen Ihnen, einen Amazon-S3-Speicher-Lebenszyklus an dieser Stelle zu konfigurieren, um die Überlaufe zu löschen, die älter als eine festgelegte Anzahl von Tagen oder Stunden sind. -
spill_put_request_headers – (Optional) Eine JSON-codierte Zuordnung von Anforderungsheadern und Werten für die Amazon-S3-
putObject
-Anforderung, die für den Überlauf verwendet wird (z. B.{"x-amz-server-side-encryption" : "AES256"}
). Weitere mögliche Header finden Sie PutObjectin der Amazon Simple Storage Service API-Referenz. -
kms_key_id – (Optional) Standardmäßig werden alle Daten, die an Amazon S3 gesendet werden, mit dem AES-GCM-authentifizierten Verschlüsselungsmodus und einem zufällig generierten Schlüssel verschlüsselt. Damit Ihre Lambda-Funktion stärkere Verschlüsselungsschlüssel verwendet, die von KMS generiert werden, wie
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
, können Sie eine ID einer Verschlüsselung angeben. -
disable_spill_encryption – (Optional) Bei Einstellung auf
True
, wird die Spill-Verschlüsselung deaktiviert. Die Standardeinstellung istFalse
, sodass Daten, die an S3 übertrragen werden, mit AES-GCM verschlüsselt werden - entweder mit einem zufällig generierten Schlüssel oder mit KMS zum Generieren von Schlüsseln. Das Deaktivieren der Überlauf-Verschlüsselung kann die Leistung verbessern, insbesondere wenn Ihr Überlauf-Standort eine serverseitige Verschlüsselung verwendet.
Der Connector unterstützt auch AIMD-ÜberlastungskontrolleThrottlingInvoker
Sie können das Standarddrosselungsverhalten optimieren, indem Sie eine der folgenden optionalen Umgebungsvariablen festlegen:
-
throttle_initial_delay_ms – Die erste Aufrufverzögerung, die nach dem ersten Stauereignis angewendet wurde. Der Standardwert beträgt 10 Millisekunden.
-
throttle_max_delay_ms – Die maximale Verzögerung zwischen Aufrufen. Sie können TPS ableiten, indem Sie es in 1000 ms teilen. Der Standardwert beträgt 1 000 Millisekunden.
-
throttle_decrease_factor – Der Faktor, um den Athena die Aufrufrate reduziert. Der Standardwert ist 0,5.
-
throttle_increase_ms – Die Geschwindigkeit, mit der Athena die Aufrufverzögerung verringert. Der Standardwert beträgt 10 Millisekunden.
Datenbanken und Tabellen
Der CloudWatch Athena-Konnektor ordnet Ihre LogGroups AS-Schemas (d. h. Datenbanken) und jeweils LogStream als Tabelle zu. Der Konnektor ordnet auch eine spezielle all_log_streams
Ansicht zu, die alles LogStreams in der enthält. LogGroup In dieser Ansicht können Sie alle Protokolle in einem LogGroup auf einmal abfragen, anstatt sie LogStream einzeln zu durchsuchen.
Jede vom CloudWatch Athena-Konnektor zugeordnete Tabelle hat das folgende Schema. Dieses Schema entspricht den Feldern, die von Logs bereitgestellt CloudWatch werden.
-
log_stream — Ein Wert
VARCHAR
, der den Namen des Objekts enthält, aus dem LogStream die Zeile stammt. -
Zeit – Ein
INT64
, das die Epochenzeit enthält, zu der die Protokollzeile generiert wurde. -
Botschaft – Ein
VARCHAR
, das die Protokollnachricht enthält.
Beispiele
Das folgende Beispiel zeigt, wie eine SELECT
Abfrage für ein bestimmtes Objekt ausgeführt wird. LogStream
SELECT * FROM "lambda:
cloudwatch_connector_lambda_name
"."log_group_path
"."log_stream_name
" LIMIT 100
Das folgende Beispiel zeigt, wie die all_log_streams
Ansicht verwendet wird, um eine Abfrage für alle LogStreams in einem bestimmten Bereich durchzuführen LogGroup.
SELECT * FROM "lambda:
cloudwatch_connector_lambda_name
"."log_group_path
"."all_log_streams" LIMIT 100
Erforderliche Berechtigungen
Ausführliche Informationen zu den für diesen Konnektor erforderlichen IAM-Richtlinien finden Sie im Policies
-Abschnitt der athena-cloudwatch.yaml
-
Amazon-S3-Schreibzugriff – Der Konnektor benötigt Schreibzugriff auf einen Speicherort in Amazon S3, um Ergebnisse aus großen Abfragen zu übertragen.
-
Athena GetQueryExecution — Der Konnektor verwendet diese Berechtigung, um einen Fast-Fail auszuführen, wenn die Upstream-Athena-Abfrage beendet wurde.
-
CloudWatch Lesen/Schreiben von Protokollen — Der Connector verwendet diese Berechtigung, um Ihre Protokolldaten zu lesen und seine Diagnoseprotokolle zu schreiben.
Leistung
Der CloudWatch Athena-Konnektor versucht, Abfragen zu optimieren, CloudWatch indem er Scans der für Ihre Abfrage erforderlichen Protokollstreams parallelisiert. Für bestimmte Zeitraumfilter wird der Prädikat-Pushdown sowohl innerhalb der Lambda-Funktion als auch innerhalb von Logs ausgeführt. CloudWatch
Verwenden Sie für Ihre Protokollgruppennamen und Protokollstreamnamen nur Kleinbuchstaben, um eine optimale Leistung zu erzielen. Bei der Verwendung gemischter Groß- und Kleinschreibung führt der Konnektor eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durch, die rechenintensiver ist.
Passthrough-Abfragen
Der CloudWatch Connector unterstützt Passthrough-Abfragen, die die CloudWatch Logs Insights-Abfragesyntax verwenden. Weitere Informationen zu CloudWatch Logs Insights finden Sie unter Analysieren von Protokolldaten mit CloudWatch Logs Insights im Amazon CloudWatch Logs-Benutzerhandbuch.
Verwenden Sie die folgende Syntax CloudWatch, um Passthrough-Abfragen mit zu erstellen:
SELECT * FROM TABLE( system.query( STARTTIME => '
start_time
', ENDTIME => 'end_time
', QUERYSTRING => 'query_string
', LOGGROUPNAMES => 'log_group-names
', LIMIT => 'max_number_of_results
' ))
In der folgenden CloudWatch Passthrough-Beispielabfrage wird nach dem duration
Feld gefiltert, wenn es nicht 1000 entspricht.
SELECT * FROM TABLE( system.query( STARTTIME => '1710918615308', ENDTIME => '1710918615972', QUERYSTRING => 'fields @duration | filter @duration != 1000', LOGGROUPNAMES => '/aws/lambda/cloudwatch-test-1', LIMIT => '2' ))
Lizenzinformationen
Das Amazon Athena CloudWatch Connector-Projekt ist unter der Apache-2.0-Lizenz
Weitere Ressourcen
Weitere Informationen zu diesem Connector finden Sie auf der entsprechenden Website unter .com