Consultez les journaux du Network Load Balancer - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Consultez les journaux du Network Load Balancer

Utilisez Athena pour analyser et traiter les journaux du Network Load Balancer. Ces journaux reçoivent des informations détaillées sur les requêtes Transport Layer Security (TLS) envoyées au Network Load Balancer. Vous pouvez utiliser ces journaux d'accès pour analyser les modèles de trafic et résoudre des problèmes.

Avant d'analyser les journaux d'accès du Network Load Balancer, activez-les et configurez-les pour les enregistrer dans le compartiment Simple Storage Service (Amazon S3) de destination. Pour plus d'informations ainsi que pour des informations sur chaque entrée du journal d'accès de Network Load Balancer, consultez Journaux d'accès de votre Network Load Balancer.

Créer la table pour les journaux du Network Load Balancer
  1. Copiez et collez l'DDLinstruction suivante dans la console Athena. Vérifiez la syntaxe des registres du journal du Network Load Balancer. Mettez à jour la déclaration selon les besoins pour inclure les colonnes et l'expression régulière correspondant à vos enregistrements de journal.

    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';
  2. Modifiez le compartiment Simple Storage Service (Amazon S3) LOCATION pour spécifier la destination des journaux du Network Load Balancer.

  3. Exécutez la requête dans la console Athena. Une fois la requête terminée, Athena enregistre la table nlb_tls_logs, afin d'en préparer les données pour les requêtes.

Exemples de requêtes

Pour voir le nombre de fois où un certificat est utilisé, utilisez une requête similaire à l'exemple suivant :

SELECT count(*) AS ct, cert_arn FROM "nlb_tls_logs" GROUP BY cert_arn;

La requête suivante indique le nombre d'utilisateurs qui utilisent une TLS version antérieure à 1.3 :

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;

Utilisez la requête suivante pour identifier les connexions qui nécessitent une longue période de prise de TLS contact :

SELECT * FROM "nlb_tls_logs" ORDER BY tls_handshake_time_ms DESC LIMIT 10;

Utilisez la requête suivante pour identifier et compter les versions de TLS protocole et les suites de chiffrement qui ont été négociées au cours des 30 derniers jours.

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;