Interrogation des journaux de Classic 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.

Interrogation des journaux de Classic Load Balancer

Utilisez les journaux Classic Load Balancer pour analyser et comprendre les modèles de trafic en direction et en provenance des instances Elastic Load Balancing et des applications backend. Vous pouvez voir la source du trafic, la latence et les octets qui ont été transférés.

Avant d'analyser les journaux Elastic Load Balancing, configurez-les pour les enregistrer dans le compartiment Simple Storage Service (Amazon S3) de destination. Pour plus d'informations, consultez Activation des journaux d'accès pour votre Classic Load Balancer.

Créer la table pour les journaux Elastic Load Balancing

  1. Copiez et collez l'instruction DDL suivante dans la console Athena. Vérifiez la syntaxe des registres du journal Elastic Load Balancing. Il se peut que vous ayez besoin de mettre à jour la requête suivante afin d'inclure les colonnes et la syntaxe d'expression régulière (Regex) pour la dernière version de l'enregistrement.

    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://your_log_bucket/prefix/AWSLogs/AWS_account_ID/elasticloadbalancing/';
  2. Modifiez le compartiment Simple Storage Service (Amazon S3) LOCATION pour spécifier la destination de vos journaux Elastic Load Balancing.

  3. Exécutez la requête dans la console Athena. Une fois la requête terminée, Athena enregistre la table elb_logs, afin d'en préparer les données pour les requêtes. Pour de plus amples informations, veuillez consulter Exemple de requêtes Elastic Load Balancing.

Exemple de requêtes Elastic Load Balancing

Utilisez une requête similaire à l'exemple suivant. Elle répertorie les serveurs d'application backend qui ont renvoyé un code de réponse d'erreur 4XX ou 5XX. Utilisez l'opérateur LIMIT pour limiter le nombre de journaux à interroger à la fois.

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;

Utilisez une requête ultérieure pour résumer le temps de réponse de toutes les transactions regroupées par l'adresse IP backend et le nom d'instance Elastic Load Balancing.

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;

Pour plus d'informations, consultez Analyse de données dans S3 avec Athena.