Consultar os logs do Network Load Balancer - Amazon Athena

Consultar os logs do Network Load Balancer

Use o Athena para analisar e processar os logs do Network Load Balancer. Esses logs recebem informações detalhadas sobre as solicitações Transport Layer Security (TLS) enviadas ao Network Load Balancer. Você pode usar esses logs de acesso para analisar padrões de tráfego e solucionar problemas.

Antes de analisar os logs de acesso do Network Load Balancer, habilite-os e configure-os para serem salvos no bucket de destino do Amazon S3. Para obter mais informações, além de informações sobre cada entrada de log de acesso do Network Load Balancer, consulte Access logs for your Network Load Balancer.

Para criar a tabela de logs do Network Load Balancer

  1. Copie e cole a instrução DDL a seguir no console do Athena. Verifique a sintaxe dos registros de log do Network Load Balancer. Pode ser necessário atualizar a consulta a seguir para incluir as colunas e a sintaxe Regex para a versão mais recente do registro.

    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://DOC-EXAMPLE-BUCKET/AWSLogs/AWS_account_ID/elasticloadbalancing/region';
  2. Modifique o bucket LOCATION do Amazon S3 para especificar o destino dos logs do Network Load Balancer.

  3. Execute a consulta no console do Athena. Depois que a consulta for concluída, o Athena registrará a tabela nlb_tls_logs, preparando os dados dela para as consultas.

Exemplo de consultas do Network Load Balancer

Para ver quantas vezes um certificado é usado, use uma consulta semelhante a este exemplo:

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

A consulta a seguir mostra quantos usuários estão usando uma versão do TLS anterior à versão 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;

Use a consulta a seguir para identificar conexões que levam muito tempo de handshake do TLS.

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

Use a consulta a seguir para identificar e contar as versões de protocolo TLS e os conjuntos de cifras que foram negociados nos últimos 30 dias.

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;