CloudWatch Logs Insights 쿼리를 VPC 흐름 로그와 함께 사용하려면 어떻게 해야 합니까?

3분 분량
0

Amazon CloudWatch Logs Insights 쿼리를 사용하여 로그 그룹에 있는 Amazon Virtual Private Cloud(Amazon VPC) 흐름 로그를 처리하려고 합니다.

간략한 설명

CloudWatch Logs를 대상으로 하는 VPC 흐름 로그를 켜면 각 탄력적 네트워크 인터페이스에 대해 하나의 로그 스트림이 표시됩니다. 문제가 발생하면 CloudWatch Logs Insights를 사용하여 잠재적 원인을 파악하고 배포된 수정 사항을 검증하십시오.

CloudWatch Logs Insights에서 지원하는 로그 유형에 대한 자세한 내용은 지원되는 로그 및 검색된 필드를 참조하십시오.

해결 방법

쿼리 실행

CloudWatch 콘솔을 사용하여 샘플 쿼리를 실행하거나 사용자 지정 쿼리를 실행합니다. 이전에 실행한 쿼리를 실행하려면 기록을 선택하십시오. 결과를 내보내려면 결과 내보내기를 선택한 다음, 형식을 선택하십시오.

쿼리 예제

시나리오 1

웹 서버, 애플리케이션 서버 및 데이터베이스 서버가 있습니다. 시간 초과 또는 HTTP 503 오류가 발생하여 오류의 원인을 파악하려고 합니다.

다음 예제 변수를 사용하여 쿼리를 실행합니다.

  • ActionREJECT로 설정되어 거부된 연결만 반환됩니다.
  • 쿼리에는 내부 네트워크만 포함됩니다.
  • 서버 IP 주소 목록에는 인바운드 연결과 아웃바운드 연결(srcAddrdstAddr)이 모두 표시됩니다.
  • Limit5로 설정되어 처음 5개 항목만 표시됩니다.
  • 웹 서버 IP 주소는 10.0.0.4입니다.
  • 앱 서버 IP 주소는 10.0.0.5입니다.
  • 데이터베이스 서버 IP 주소는 10.0.0.6입니다.

쿼리 예제:

filter(
   action="REJECT" and
   dstAddr like /^(10\.|192\.168\.)/ and  
   srcAddr like /^(10\.|192\.168\.)/ and
   (srcAddr = "10.0.0.4" or dstAddr = "10.0.0.4" or srcAddr = "10.0.0.5" or dstAddr = "10.0.0.5" or srcAddr = "10.0.0.6" or dstAddr = "10.0.0.6")
)
| stats count(*) as records by srcAddr,dstAddr,dstPort,protocol
| sort records desc
| limit 5

시나리오 2

네트워크 인터페이스에서 간헐적인 시간 초과가 발생합니다. 일정 기간 동안 네트워크 인터페이스에서 거부 여부를 확인하려면 다음 쿼리를 실행합니다.

fields @timestamp, interfaceId, srcAddr, dstAddr, action
| filter (interfaceId = 'eni-05012345abcd' and action = 'REJECT')
| sort @timestamp desc
| limit 5

시나리오 3

VPC 흐름 로그를 분석하고 특정 네트워크 인터페이스에 대한 보고서를 생성하려면 다음 쿼리를 실행합니다.

fields @timestamp, @message
 | stats count(*) as records by dstPort, srcAddr, dstAddr as Destination
 | filter interfaceId="eni-05012345abcd"
 | filter dstPort="80" or dstPort="443" or dstPort="22" or dstPort="25"
 | sort HitCount desc
 | limit 10

이전 쿼리에서는 다른 포트로 전송된 트래픽 양을 확인합니다.

시나리오 4

VPC 흐름 로그를 필터링하고 VPC의 특정 IP 주소 또는 CIDR에 연결을 시도하는 IP 주소를 나열하려면 다음 쿼리 중 하나를 실행합니다.

특정 IP 주소:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter srcAddr like "172.31."

특정 CIDR:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter isIpv4InSubnet(srcAddr,"172.31.0.0/16")

더 많은 예제 쿼리는 샘플 쿼리를 참조하십시오.

AWS 공식
AWS 공식업데이트됨 3달 전
댓글 없음

관련 콘텐츠