Abfragen von Classic Load Balancer-Protokollen - Amazon Athena

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.

Abfragen von Classic Load Balancer-Protokollen

Mithilfe von Classic-Load-Balancer-Protokollen können Sie Datenverkehrsmuster von und zu Elastic-Load-Balancing-Instances und Backend-Anwendungen analysieren und nachvollziehen. Dabei werden Ihnen die Datenverkehrsquelle, die Latenz und die übertragenen Bytes angezeigt.

Bevor Sie die Elastic-Load-Balancing-Protokolle analysieren, konfigurieren Sie sie für die Speicherung im Amazon-S3-Ziel-Bucket. Weitere Informationen finden Sie unter Aktivieren der Zugriffsprotokolle für Ihren Classic Load Balancer.

So erstellen Sie die Tabelle für Elastic-Load-Balancing-Protokolle

  1. Kopieren Sie die folgende DDL-Anweisung in die Athena-Konsole. Überprüfen Sie die Syntaxder Elastic-Load-Balancing Protokolldatensätze. Möglicherweise müssen Sie die folgende Abfrage aktualisieren, so dass sie die Spalten und die Regex-Syntax für die neueste Version des Datensatzes enthält.

    CREATE EXTERNAL TABLE IF NOT EXISTS elb_logs ( timestamp string, elb_name string, request_ip string, request_port int, backend_ip string, backend_port int, request_processing_time double, backend_processing_time double, client_response_time double, elb_response_code string, backend_response_code string, received_bytes bigint, sent_bytes bigint, request_verb string, url string, protocol string, user_agent string, ssl_cipher string, ssl_protocol string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \\\"([^ ]*) ([^ ]*) (- |[^ ]*)\\\" (\"[^\"]*\") ([A-Z0-9-]+) ([A-Za-z0-9.-]*)$' ) LOCATION 's3://DOC-EXAMPLE-BUCKET/AWSLogs/AWS_account_ID/elasticloadbalancing/';
  2. Ändern Sie den LOCATION-Amazon-S3-Bucket, um das Ziel Ihrer Elastic-Load-Balancing-Protokolle anzugeben.

  3. Führen Sie die Abfrage in der Athena-Konsole aus. Nach Beendigung der Abfrage wird die Tabelle elb_logs von Athena registriert, sodass Sie die darin enthaltenen Daten für Abfragen nutzen können. Weitere Informationen finden Sie unter Elastic-Load-Balancing-Beispielabfragen.

Elastic-Load-Balancing-Beispielabfragen

Verwenden Sie eine ähnliche Abfrage wie im folgenden Beispiel. Die Abfrage listet die Backend-Anwendungsserver auf, die den Fehlercode 4XX oder 5XX zurückgegeben haben. Mit dem Operator LIMIT lässt sich die Anzahl der im gleichen Schritt abzufragenden Protokolle einschränken.

SELECT timestamp, elb_name, backend_ip, backend_response_code FROM elb_logs WHERE backend_response_code LIKE '4%' OR backend_response_code LIKE '5%' LIMIT 100;

Mit einer weiteren Abfrage fassen Sie die Reaktionszeit aller Transaktionen gruppiert nach Backend-IP-Adresse und Elastic-Load-Balancing-Instance-Namen zusammen.

SELECT sum(backend_processing_time) AS total_ms, elb_name, backend_ip FROM elb_logs WHERE backend_ip <> '' GROUP BY backend_ip, elb_name LIMIT 100;

Weitere Informationen finden Sie unter Analyzing Data in S3 using Athena.