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

El Application Load Balancer es una opción de equilibro de carga de Elastic Load Balancing que permite la distribución del tráfico en una implementación de microservicios con contenedores. La consulta de los logs de Application Load Balancer le permite ver el origen del tráfico, la latencia y los bytes transferidos a instancias de Elastic Load Balancing y desde dichas instancias y las aplicaciones de backend. Para obtener más información, consulteLogs de acceso para el Application Load Balanceren laGuía del usuario para Application Load Balancers.

Prerequisites

Creación de la tabla para registros de ALB

  1. Copie y pegue lo siguienteCREATE TABLEen la consola de Athena. Reemplace los valores deLOCATION 's3://your-alb-logs-directory/AWSLogs/<ACCOUNT-ID>/elasticloadbalancing/<REGION>/'con los correspondientes a la ubicación del bucket de Amazon S3. Para obtener información acerca de cada campo, consulteEntradas de los logs de accesoen laGuía del usuario para Application Load Balancers.

    nota

    Los siguientes ejemplos deCREATE TABLEincluye la instrucciónclassificationyclassification_reasoncolumnas. Para crear una tabla para los registros de acceso del Application Load Balancer que no contengan estas entradas, elimine estas dos columnas del cuadro de diálogoCREATE TABLEy modifique la expresión regular en consecuencia.

    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 elalb_logsPara preparar los datos que contiene 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 las direcciones URL visitadas 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;