¿Cómo utilizo CloudWatch Logs Insights para analizar los registros de flujo de Amazon VPC personalizados?
Utilicé los registros de flujo de Amazon Virtual Private Cloud (Amazon VPC) para configurar los registros de flujo de VPC personalizados. Quiero usar Amazon CloudWatch Logs Insights para descubrir patrones y tendencias en los registros.
Descripción corta
CloudWatch Logs Insights descubre automáticamente los registros de flujo que están en el formato predeterminado, pero no descubre automáticamente los registros de flujo en el formato personalizado.
Para usar CloudWatch Logs Insights con registros de flujo en formato personalizado, debe modificar las consultas.
El siguiente es un ejemplo de un formato de registro de flujo personalizado:
${account-id} ${vpc-id} ${subnet-id} ${interface-id} ${instance-id} ${srcaddr} ${srcport} ${dstaddr} ${dstport} ${protocol} ${packets} ${bytes} ${action} ${log-status} ${start} ${end} ${flow-direction} ${traffic-path} ${tcp-flags} ${pkt-srcaddr} ${pkt-src-aws-service} ${pkt-dstaddr} ${pkt-dst-aws-service} ${region} ${az-id} ${sublocation-type} ${sublocation-id}
Las siguientes consultas son ejemplos de cómo puede personalizar y ampliar las consultas para que coincidan con sus casos de uso.
Resolución
Recuperar los registros de flujo más recientes
Para extraer datos de los campos de registro, utilice la palabra clave parse. Por ejemplo, el resultado de la siguiente consulta se ordena según la hora de inicio del evento del registro de flujo y se restringe a las dos entradas de registro más recientes.
Consulta
#Retrieve latest custom VPC Flow Logs parse @message "* * * * * * * * * * * * * * * * * * * * * * * * * * *" as account_id, vpc_id, subnet_id, interface_id,instance_id, srcaddr, srcport, dstaddr, dstport, protocol, packets, bytes, action, log_status, start, end, flow_direction, traffic_path, tcp_flags, pkt_srcaddr, pkt_src_aws_service, pkt_dstaddr, pkt_dst_aws_service, region, az_id, sublocation_type, sublocation_id | sort start desc | limit 2
Salida
account_id | vpc_id | subnet_id | interface_id | instance_id | srcaddr | srcport |
---|---|---|---|---|---|---|
123456789012 | vpc-0b69ce8d04278ddd | subnet-002bdfe1767d0ddb0 | eni-0435cbb62960f230e | - | 172.31.0.104 | 55125 |
123456789012 | vpc-0b69ce8d04278ddd1 | subnet-002bdfe1767d0ddb0 | eni-0435cbb62960f230e | - | 91.240.118.81 | 49422 |
Resuma las transferencias de datos por pares de direcciones IP de origen y destino
Utilice la siguiente consulta para resumir el tráfico de red por pares de direcciones IP de origen y destino. En la consulta de ejemplo, la estadística sum agrega el campo de bytes. La estadística sum calcula un total acumulado de los datos que se transfieren entre los hosts, por lo que la flow_direction se incluye en la consulta y la salida. Los resultados de la agregación se asignan temporalmente al campo Data_Transferred. A continuación, los resultados se ordenan por Data_Transferred en orden descendente y se devuelven los dos pares más grandes.
Consulta
parse @message "* * * * * * * * * * * * * * * * * * * * * * * * * * *" as account_id, vpc_id, subnet_id, interface_id,instance_id, srcaddr, srcport, dstaddr, dstport, protocol, packets, bytes, action, log_status, start, end, flow_direction, traffic_path, tcp_flags, pkt_srcaddr, pkt_src_aws_service, pkt_dstaddr, pkt_dst_aws_service, region, az_id, sublocation_type, sublocation_id | stats sum(bytes) as Data_Transferred by srcaddr, dstaddr, flow_direction | sort by Data_Transferred desc | limit 2
Salida
srcaddr | dstaddr | flow_direction | Data_Transferred |
---|---|---|---|
172.31.1.247 | 3.230.172.154 | egress | 346952038 |
172.31.0.46 | 3.230.172.154 | egress | 343799447 |
Analice las transferencias de datos por ID de instancia de Amazon EC2
Puede usar registros de flujo personalizados para analizar las transferencias de datos por ID de instancia de Amazon Elastic Compute Cloud (Amazon EC2). Para determinar las instancias EC2 más activas, incluya el campo instance_id en la consulta.
Consulta
parse @message "* * * * * * * * * * * * * * * * * * * * * * * * * * *" as account_id, vpc_id, subnet_id, interface_id,instance_id, srcaddr, srcport, dstaddr, dstport, protocol, packets, bytes, action, log_status, start, end, flow_direction, traffic_path, tcp_flags, pkt_srcaddr, pkt_src_aws_service, pkt_dstaddr, pkt_dst_aws_service, region, az_id, sublocation_type, sublocation_id | stats sum(bytes) as Data_Transferred by instance_id | sort by Data_Transferred desc | limit 5
Salida
instance_id | Data_Transferred |
---|---|
- | 1443477306 |
i-03205758c9203c979 | 517558754 |
i-0ae33894105aa500c | 324629414 |
i-01506ab9e9e90749d | 198063232 |
i-0724007fef3cb06f3 | 54847643 |
Filtro para el tráfico SSH rechazado
Para analizar el tráfico que el grupo de seguridad y las listas de control de acceso a la red (ACL de red) denegaron, utilice la acción de filtro REJECT. Para identificar los hosts que se rechazan en el tráfico SSH, amplíe el filtro para incluir el protocolo TCP y el tráfico con un puerto de destino de 22. En el siguiente ejemplo de consulta, se utiliza el protocolo TCP 6.
Consulta
parse @message "* * * * * * * * * * * * * * * * * * * * * * * * * * *" as account_id, vpc_id, subnet_id, interface_id,instance_id, srcaddr, srcport, dstaddr, dstport, protocol, packets, bytes, action, log_status, start, end, flow_direction, traffic_path, tcp_flags, pkt_srcaddr, pkt_src_aws_service, pkt_dstaddr, pkt_dst_aws_service, region, az_id, sublocation_type, sublocation_id | filter action = "REJECT" and protocol = 6 and dstport = 22 | stats sum(bytes) as SSH_Traffic_Volume by srcaddr | sort by SSH_Traffic_Volume desc | limit 2
Salida
srcaddr | SSH_Traffic_Volume |
---|---|
23.95.222.129 | 160 |
179.43.167.74 | 80 |
Aísle el flujo de datos HTTP para un par de origen/destino específico
Para analizar las tendencias de sus datos, utilice CloudWatch Logs Insights para aislar el tráfico bidireccional entre dos direcciones IP. En la siguiente consulta, ["172.31.1.247","172.31.11.212"] usa la dirección IP como dirección IP de origen o de destino para devolver los registros de flujo. Las instrucciones filter hacen coincidir los eventos de registro de flujo de la VPC con el protocolo TCP 6 y el puerto 80 para aislar el tráfico HTTP. Para devolver un subconjunto de todos los campos disponibles, utilice la palabra clave display.
Consulta
Vea la siguiente consulta:
#HTTP Data Stream for Specific Source/Destination Pair parse @message "* * * * * * * * * * * * * * * * * * * * * * * * * * *" as account_id, vpc_id, subnet_id, interface_id,instance_id, srcaddr, srcport, dstaddr, dstport, protocol, packets, bytes, action, log_status, start, end, flow_direction, traffic_path, tcp_flags, pkt_srcaddr, pkt_src_aws_service, pkt_dstaddr, pkt_dst_aws_service, region, az_id, sublocation_type, sublocation_id | filter srcaddr in ["172.31.1.247","172.31.11.212"] and dstaddr in ["172.31.1.247","172.31.11.212"] and protocol = 6 and (dstport = 80 or srcport=80) | display interface_id,srcaddr, srcport, dstaddr, dstport, protocol, bytes, action, log_status, start, end, flow_direction, tcp_flags | sort by start desc | limit 2
Salida
interface_id | srcaddr | srcport | dstaddr | dstport | protocol | bytes | action | log_status |
---|---|---|---|---|---|---|---|---|
eni-0b74120275654905e | 172.31.11.212 | 80 | 172.31.1.247 | 29376 | 6 | 5160876 | ACCEPT | OK |
eni-0b74120275654905e | 172.31.1.247 | 29376 | 172.31.11.212 | 80 | 6 | 97380 | ACCEPT | OK |
Visualice los resultados como un gráfico de barras o circular
Puede usar CloudWatch Log Insights para visualizar los resultados como un gráfico de barras o circular. Si los resultados incluyen la función bin(), el resultado de la consulta se devuelve con una marca de tiempo. A continuación, puede visualizar la serie temporal con un gráfico de líneas o áreas apiladas.
Para calcular los datos acumulados que se transfieren en intervalos de 1 minuto, use stats sum(bytes) as Data_Trasferred by bin(1m). Para ver esta visualización, alterne entre las tablas de Registros y Visualización en la consola de CloudWatch Logs Insights.
Consulta
parse @message "* * * * * * * * * * * * * * * * * * * * * * * * * * *" as account_id, vpc_id, subnet_id, interface_id,instance_id, srcaddr, srcport, dstaddr, dstport, protocol, packets, bytes, action, log_status, start, end, flow_direction, traffic_path, tcp_flags, pkt_srcaddr, pkt_src_aws_service, pkt_dstaddr, pkt_dst_aws_service, region, az_id, sublocation_type, sublocation_id | filter srcaddr in ["172.31.1.247","172.31.11.212"] and dstaddr in ["172.31.1.247","172.31.11.212"] and protocol = 6 and (dstport = 80 or srcport=80) | stats sum(bytes) as Data_Transferred by bin(1m)
Salida
bin(1m) | Data_Transferred |
---|---|
2022-04-01 15:23:00.000 | 17225787 |
2022-04-01 15:21:00.000 | 17724499 |
2022-04-01 15:20:00.000 | 1125500 |
2022-04-01 15:19:00.000 | 101525 |
2022-04-01 15:18:00.000 | 81376 |
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 10 meses
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 4 meses