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

3분 분량
0

Amazon CloudWatch Logs Insights 쿼리를 사용하여 로그 그룹에 있는 Virtual Private Cloud(Amazon VPC) 흐름 로그를 처리하고 싶습니다. 어떻게 해야 합니까?

간략한 설명

CloudWatch Logs를 대상으로 하는 VPC 흐름 로그를 설정하면 각 탄력적 네트워크 인터페이스에 대해 하나의 로그 스트림이 표시됩니다. CloudWatch Logs Insights는 로그 그룹에 저장된 로그 이벤트에 대해 복잡한 쿼리를 수행할 수 있는 쿼리 도구입니다. 문제가 발생하면 CloudWatch Logs Insights를 사용하여 잠재적 원인을 식별하고 배포된 수정 사항을 확인할 수 있습니다.

지원되는 로그 유형에 대한 자세한 내용은 지원되는 로그 및 검색된 필드를 참조하세요.

해결 방법

쿼리 실행

쿼리를 실행하려면 다음을 수행합니다.

1.    CloudWatch 콘솔을 엽니다.

2.    Logs, Logs Insights를 선택합니다.

3.    Logs Insights 대시보드에서 데이터를 분석하고 시각화할 로그 그룹을 선택합니다.

4.    쿼리를 생성하거나 VPC 흐름 로그에 대해 제공된 샘플 쿼리 중 하나를 실행할 수 있습니다. 사용자 지정 쿼리를 생성하는 경우 먼저 Amazon CloudWatch 설명서에 제공된 자습서를 검토하세요. 쿼리 구문에 대한 자세한 내용은 CloudWatch Logs Insights 쿼리 구문을 참조하세요.

5.    이력을 선택하여 이전에 실행한 쿼리를 봅니다. 이력에서 쿼리를 다시 실행할 수 있습니다.

6.    결과를 내보내려면 결과 내보내기를 선택한 다음 형식을 선택합니다.

쿼리의 예

시나리오 1

웹 서버, 애플리케이션 서버 및 DB 서버가 있습니다. 애플리케이션이 예상대로 작동하지 않습니다. 예를 들어 시간 초과 또는 HTTP 503 오류가 발생하고 오류의 원인을 확인하려고 합니다.

변수의 예:

  • 작업이 **“REJECT”**로 설정되어 거부된 연결만 반환됩니다.
  • 쿼리에는 내부 네트워크만 포함됩니다.
  • 서버 IP 목록에는 인바운드 및 아웃바운드 연결(srcAddrdstAddr)이 모두 표시됩니다.
  • 제한5로 설정되어 처음 5개 항목만 표시됩니다.
  • 웹 서버 IP: 10.0.0.4
  • 앱 서버 IP: 10.0.0.5
  • DB 서버 IP: 10.0.0.6
filter(
action="REJECT" and
dstAddr like   /^(10\.|192\.168\.)/and
srcAddrlike   /^(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" or
)
)|
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)

참고: 추가 예시 쿼리는 샘플 쿼리를 참조하세요.


관련 정보

CloudWatch Logs Insights를 사용한 로그 데이터 분석

AWS 공식
AWS 공식업데이트됨 2년 전