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.
Network Load Balancer Balancer-Protokolle abfragen
Verwenden Sie Athena, um Protokolle aus dem Network Load Balancer zu analysieren und zu verarbeiten. Diese Protokolle enthalten detaillierte Informationen zu den Transport Layer Security (TLS) -Anfragen, die an den Network Load Balancer gesendet wurden. Sie können diese Zugriffsprotokolle für die Analyse von Datenverkehrsmustern und zur Problembehebung verwenden.
Bevor Sie die Network-Load-Balancer-Zugriffsprotokolle analysieren, aktivieren und konfigurieren Sie sie für die Speicherung im Amazon-S3-Ziel-Bucket. Weitere Informationen und Informationen zu den einzelnen Network-Load-Balancer-Zugriffsprotokolleinträgen finden Sie unter Zugriffsprotokolle für Ihren Network Load Balancer.
Erstellen der Tabelle für die Protokolle des Network Load Balancers
-
Kopieren Sie die folgende DDL Anweisung und fügen Sie sie in die Athena-Konsole ein. Überprüfen Sie die Syntax der Protokolleinträge des Network Load Balancer. Aktualisieren Sie die Anweisung nach Bedarf, sodass sie die Spalten und die Regex enthält, die Ihren Protokolldatensätzen entsprechen.
CREATE EXTERNAL TABLE IF NOT EXISTS nlb_tls_logs ( type string, version string, time string, elb string, listener_id string, client_ip string, client_port int, target_ip string, target_port int, tcp_connection_time_ms double, tls_handshake_time_ms double, received_bytes bigint, sent_bytes bigint, incoming_tls_alert int, cert_arn string, certificate_serial string, tls_cipher_suite string, tls_protocol_version string, tls_named_group string, domain_name string, alpn_fe_protocol string, alpn_be_protocol string, alpn_client_preference_list string, tls_connection_creation_time 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]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ?([^ ]*)?( .*)?' ) LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/
AWS_account_ID
/elasticloadbalancing/region
'; -
Ändern Sie den
LOCATION
-Amazon-S3-Bucket, um das Ziel Ihrer Network-Load-Balancer-Protokolle anzugeben. -
Führen Sie die Abfrage in der Athena-Konsole aus. Nach Beendigung der Abfrage wird die Tabelle
nlb_tls_logs
von Athena registriert, sodass Sie die darin enthaltenen Daten für Abfragen nutzen können.
Beispielabfragen
Wenn Sie wissen möchten, wie oft ein Zertifikat verwendet wird, verwenden Sie eine Abfrage ähnlich wie in diesem Beispiel:
SELECT count(*) AS ct, cert_arn FROM "nlb_tls_logs" GROUP BY cert_arn;
Die folgende Abfrage zeigt, wie viele Benutzer eine TLS Version vor 1.3 verwenden:
SELECT tls_protocol_version, COUNT(tls_protocol_version) AS num_connections, client_ip FROM "nlb_tls_logs" WHERE tls_protocol_version < 'tlsv13' GROUP BY tls_protocol_version, client_ip;
Verwenden Sie die folgende Abfrage, um Verbindungen zu identifizieren, die eine lange TLS Handshake-Zeit in Anspruch nehmen:
SELECT * FROM "nlb_tls_logs" ORDER BY tls_handshake_time_ms DESC LIMIT 10;
Verwenden Sie die folgende Abfrage, um zu ermitteln und zu zählen, welche TLS Protokollversionen und Cipher Suites in den letzten 30 Tagen ausgehandelt wurden.
SELECT tls_cipher_suite, tls_protocol_version, COUNT(*) AS ct FROM "nlb_tls_logs" WHERE from_iso8601_timestamp(time) > current_timestamp - interval '30' day AND NOT tls_protocol_version = '-' GROUP BY tls_cipher_suite, tls_protocol_version ORDER BY ct DESC;