필터 패턴을 사용하여 JSON 로그 이벤트에서 일치하는 용어 검색 - Amazon CloudWatch Logs

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

필터 패턴을 사용하여 JSON 로그 이벤트에서 일치하는 용어 검색

로그가 JSON 형식으로 구성된 경우 JSON 필터 패턴을 사용합니다. 이러한 패턴을 사용하면 JSON 객체 내의 특정 필드와 값을 대상으로 지정할 수 있으므로 다음과 같은 경우에 적합합니다.

  • 애플리케이션 로그: 대상별 이벤트 유형, 사용자 IDs 또는 오류 코드

  • AWS 서비스 로그: CloudTrail, VPC 흐름 로그 또는 기타 구조화된 AWS 로그 필터링

  • 마이크로서비스: 구조화된 JSON을 출력하는 컨테이너화된 애플리케이션 모니터링

예를 들어 { $.eventType = "UpdateTrail" }를 사용하여 특정 CloudTrail 이벤트를 찾거나 예상치 못한 IP 범위의 트래픽을 식별{ $.sourceIPAddress != 123.123.* }합니다.

다음 섹션을 확장하고 탭을 탐색하여 기본 단일 조건 패턴에서 복잡한 복합 표현식에 이르기까지 일반적인 모니터링 시나리오에 대한 JSON 필터 패턴을 생성하는 방법을 보여주는 예제를 확인합니다.

다음 예제에서는 일반적인 모니터링 및 문제 해결 시나리오에서 JSON 로그 이벤트와 함께 필터 패턴을 사용하는 방법을 보여줍니다. 각 예제에는 필터 패턴 구문과 이를 적용할 실제 사용 사례가 포함되어 있습니다.

이러한 패턴은 애플리케이션, AWS 서비스, 컨테이너 또는 사용자 지정 시스템의 JSON 형식 로그와 함께 작동합니다. 지표 필터와 함께 사용하여 CloudWatch 지표를 생성하거나, 구독 필터를 사용하여 로그를 다른 서비스로 라우팅하거나, Live Tail을 사용하여 로그를 실시간으로 모니터링할 수 있습니다.

참고

JSON 로그 이벤트 예제에서 필터 패턴 예제를 테스트하는 경우 JSON 로그 예제를 한 줄에 입력해야 합니다.

테스트를 위한 샘플 JSON 로그 이벤트:

{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ { "name": "a", "id": 1 }, { "name": "b", "id": 2 } ], "SomeObject": null, "cluster.name": "c" }
Monitor application events by type

JSON 애플리케이션 로그에서 특정 이벤트 유형을 추적하여 시스템 동작을 모니터링합니다.

필터 패턴:

{ $.eventType = "UpdateTrail" }

사용 사례:

  • 애플리케이션 모니터링: 특정 사용자 작업 또는 시스템 이벤트 추적

  • 비즈니스 분석: 특정 이벤트 유형의 발생 횟수 계산

  • 문제 해결: 문제를 조사할 때 특정 작업에 집중

이 패턴은 다음과 같이 eventType 필드가 포함된 모든 JSON 로그에서 작동합니다.

  • 애플리케이션 로그: {"eventType": "UserLogin", "userId": "123"}

  • 시스템 로그: {"eventType": "ConfigUpdate", "component": "database"}

  • API 로그: {"eventType": "UpdateTrail", "source": "cloudtrail"}

Block suspicious IP addresses

보안 모니터링을 위해 예상 IP 주소 패턴과 일치하지 않는 트래픽을 식별합니다.

필터 패턴:

{ $.sourceIPAddress != 123.123.* }

사용 사례:

  • 보안 모니터링: 예상치 못한 IP 범위에서 요청 찾기

  • 액세스 제어: 회사 네트워크 외부의 트래픽 모니터링

  • 위협 탐지: 잠재적 무단 액세스 시도 식별

Track specific application events

JSON 배열의 특정 값을 모니터링하여 애플리케이션 동작 및 사용자 작업을 추적합니다.

필터 패턴:

{ $.arrayKey[0] = "value" }

사용 사례:

  • 사용자 동작 추적: 애플리케이션 로그에서 특정 사용자 작업 모니터링

  • 기능 사용: 특정 애플리케이션 기능이 사용되는 시기 추적

  • 오류 분석: 배열에서 특정 오류 범주가 있는 로그 찾기

Find events using pattern matching

정규식 패턴을 사용하여 필드 값에 대해 유연하게 일치하는 이벤트를 찾습니다.

필터 패턴:

{ $.eventType = %Trail% }

사용 사례:

  • 유연한 이벤트 추적: 특정 텍스트 패턴이 포함된 모든 이벤트 찾기

  • API 모니터링: 정확한 이름을 지정하지 않고 API 패밀리 추적

  • 로그 분석: 이벤트 이름 또는 설명에서 부분 일치 검색

Monitor application data with wildcards

와일드카드와 정규식을 사용하여 배열 요소에서 특정 패턴을 찾습니다.

필터 패턴:

{ $.arrayKey[*] = %val.{2}% }

사용 사례:

  • 데이터 검증: 특정 패턴과 일치하는 값이 포함된 배열 찾기

  • 콘텐츠 필터링: 특정 패턴에 대한 사용자 생성 콘텐츠 모니터링

  • 품질 보증: 애플리케이션 로그에서 데이터 형식 규정 준수 추적

Track network traffic patterns

정규식 패턴 및 와일드카드를 사용하여 특정 범위 내의 IP 주소를 모니터링합니다.

필터 패턴:

{ $.* = %111\.111\.111\.1[0-9]{1,2}% }

사용 사례:

  • 네트워크 모니터링: 특정 IP 서브넷의 트래픽 추적

  • 보안 분석: 특정 네트워크 범위의 액세스 모니터링

  • 로드 밸런싱: IP 범위 전반의 트래픽 분산 분석

참고

할당량

속성 선택기에서는 와일드카드 선택기를 최대 1개만 사용할 수 있습니다.

Handle JSON properties with special characters

이름에 마침표 또는 기타 특수 문자가 포함된 JSON 속성에 액세스합니다.

필터 패턴:

{ $.['cluster.name'] = "c" }

사용 사례:

  • Kubernetes 모니터링: 컨테이너 로그에서 클러스터 이름 추적

  • 구성 추적: 점선 속성 이름으로 설정 모니터링

  • 타사 통합: 특별한 이름 지정 규칙을 사용하여 시스템의 로그 처리

Find null or missing values

애플리케이션 문제를 나타낼 수 있는 누락된 데이터 또는 null 값을 모니터링합니다.

필터 패턴:

{ $.SomeObject IS NULL }

사용 사례:

  • 데이터 품질 모니터링: 필수 필드가 누락된 레코드 찾기

  • 애플리케이션 디버깅: 예상 데이터가 없을 때 추적

  • 오류 감지: 불완전한 API 응답 또는 데이터베이스 쿼리 모니터링

Detect missing configuration fields

예상 필드가 완전히 누락된 로그를 찾아 구성 문제를 나타낼 수 있습니다.

필터 패턴:

{ $.SomeOtherObject NOT EXISTS }

사용 사례:

  • 구성 검증: 로그에 모든 필수 필드가 있는지 확인

  • API 모니터링: 불완전한 요청 또는 응답 추적

  • 데이터 파이프라인 모니터링: 예상 스키마 필드가 누락된 레코드 찾기

참고

변수 IS NOTEXISTS는 현재 지원되지 않습니다.

논리 연산자 AND ("&&") 및 OR ("||")를 사용하여 여러 조건을 결합해야 하는 경우 복합 표현식을 사용합니다. 이러한 패턴은 여러 조건을 충족하거나 트리거해야 하는 정교한 모니터링 규칙을 생성하는 데 도움이 됩니다.

복합 표현식은 괄호(“()”)를 지원하고 () > && > ||의 표준 작업 순서를 따릅니다. 간단한 단일 조건 필터가 모니터링 요구 사항에 충분하지 않은 경우 이러한 패턴을 사용합니다.

테스트를 위한 샘플 JSON 로그 이벤트:

{ "user": { "id": 1, "email": "John.Stiles@example.com" }, "users": [ { "id": 2, "email": "John.Doe@example.com" }, { "id": 3, "email": "Jane.Doe@example.com" } ], "actions": [ "GET", "PUT", "DELETE" ], "coordinates": [ [0, 1, 2], [4, 5, 6], [7, 8, 9] ] }
Monitor specific user actions

사용자 식별과 작업 모니터링을 결합하여 특정 사용자가 특정 작업을 수행하는 시기를 추적합니다.

필터 패턴:

{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }

사용 사례:

  • 보안 감사: 특정 관리자 사용자가 민감한 리소스에 액세스하는 시기 추적

  • 규정 준수 모니터링: 특정 사용자가 승인된 작업만 수행하도록 보장

  • 사용자 동작 분석: 사용자 속성과 작업 간의 상관관계 모니터링

Alert on any suspicious activity

우려되는 여러 조건이 발생할 때 트리거되는 광범위한 모니터링을 생성합니다.

필터 패턴:

{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }

사용 사례:

  • 보안 모니터링: 특정 사용자가 활성 상태일 때 또는 비정상적인 데이터 패턴이 발생할 때 알림

  • 시스템 상태: 여러 가지 오류 조건 모니터링

  • 유연한 알림: 다양한 관련 시나리오에 대한 catch-all 규칙 생성

Require multiple conditions for alerts

알림을 트리거하기 전에 여러 특정 조건을 충족해야 하므로 오탐지가 줄어듭니다.

필터 패턴:

{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }

사용 사례:

  • 높은 신뢰도 알림: 여러 개의 의심스러운 지표가 정렬된 경우에만 알림

  • 복잡한 비즈니스 규칙: 여러 기준이 필요한 시나리오 모니터링

  • 노이즈 감소: 격리된 단일 이벤트로 인한 알림 방지

참고

할당량

속성 선택기에서 와일드카드 선택기를 최대 1개만 사용할 수 있으며, 복합 표현식이 포함된 필터 패턴에서는 와일드카드 선택기를 3개까지 사용할 수 있습니다.

Monitor failed correlation attempts

데이터 필드 간의 예상 관계가 일치하지 않는 경우를 추적하여 데이터 품질 문제를 나타낼 수 있습니다.

필터 패턴:

{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }

사용 사례:

  • 데이터 검증: 관련 필드가 예상 패턴과 일치하지 않는 레코드 찾기

  • 시스템 무결성: 데이터 손상 또는 동기화 문제 모니터링

  • 품질 보증: 데이터 관계가 분류되는 시점 추적