Consulta de los registros del balanceador de carga de aplicaciones - Amazon Athena

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Consulta de los registros del balanceador de carga de aplicaciones

es una opción de balanceo de carga para Balanceador de carga de aplicaciones que permite la distribución del tráfico en una implementación de microservicios con contenedores.Elastic Load Balancing La consulta de registros de Balanceador de carga de aplicaciones le permite ver el origen del tráfico, la latencia y los bytes transferidos a instancias Elastic Load Balancing y desde dichas instancias y aplicaciones de backend. Para obtener más información, consulte Registros de acceso del balanceador de carga de aplicaciones en la Guía del usuario de Application Load Balancers.

Prerequisites

Creación de la tabla para registros de ALB

  1. Copie y pegue la siguiente instrucción CREATE TABLE en la consola de Athena. Reemplace los valores de LOCATION 's3://your-alb-logs-directory/AWSLogs/<ACCOUNT-ID>/elasticloadbalancing/<REGION>/' por los correspondientes a la ubicación de su bucket de Amazon S3. Para obtener información sobre cada campo, consulte Entradas de registro de acceso en la Guía del usuario de Application Load Balancers.

    CREATE EXTERNAL TABLE IF NOT EXISTS alb_logs ( type string, time string, elb string, client_ip string, client_port int, target_ip string, target_port int, request_processing_time double, target_processing_time double, response_processing_time double, elb_status_code string, target_status_code string, received_bytes bigint, sent_bytes bigint, request_verb string, request_url string, request_proto string, user_agent string, ssl_cipher string, ssl_protocol string, target_group_arn string, trace_id string, domain_name string, chosen_cert_arn string, matched_rule_priority string, request_creation_time string, actions_executed string, redirect_url string, lambda_error_reason string, target_port_list string, target_status_code_list string, classification string, classification_reason 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.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^\s]+?)\" \"([^\s]+)\" \"([^ ]*)\" \"([^ ]*)\"') LOCATION 's3://your-alb-logs-directory/AWSLogs/<ACCOUNT-ID>/elasticloadbalancing/<REGION>/';
  2. Ejecute la consulta en la consola de Athena. Cuando la consulta finaliza, Athena registra la tabla alb_logs, dejando los datos que contiene listos para efectuar consultas.

Consultas de ejemplo para registros de ALB

La consulta siguiente cuenta el número de solicitudes HTTP GET que el balanceador de carga ha recibido, agrupadas en función de la dirección IP del cliente:

SELECT COUNT(request_verb) AS count, request_verb, client_ip FROM alb_logs GROUP BY request_verb, client_ip LIMIT 100;

Otra consulta muestra el URLs visitado por los usuarios del navegador Safari:

SELECT request_url FROM alb_logs WHERE user_agent LIKE '%Safari%' LIMIT 10;

En el siguiente ejemplo, se muestra cómo analizar los registros por datetime:

SELECT client_ip, sum(received_bytes) FROM alb_logs WHERE parse_datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') BETWEEN parse_datetime('2018-05-30-12:00:00','yyyy-MM-dd-HH:mm:ss') AND parse_datetime('2018-05-31-00:00:00','yyyy-MM-dd-HH:mm:ss') GROUP BY client_ip;