개요

로그 검색 결과를 더 세분화해야 하는 경우 검색 하위 쿼리를 사용하여 결과를 이차 로그 그룹과 비교하거나 [참조 테이블]의 데이터를 사용하여 로그를 필터링(#filter-logs-based-on-reference-tables)할 수 있습니다.

하위 쿼리로 로그 필터링

하위 쿼리로 로그 필터링은 베타 버전입니다.

보조 쿼리 결과를 기반으로 쿼리 결과를 필터링하려는 경우 하위 쿼리를 사용합니다. 두 가지 예시 시나리오는 하위 쿼리 예시를 참조하세요.

하위 쿼리 필터를 추가하려면 다음을 수행하세요.

  1. 로그 탐색기로 이동합니다.
  2. 검색 바에 쿼리를 입력하여 로그를 필터링합니다. 이것이 기본 쿼리입니다.
  3. + 추가를 클릭합니다.
  4. 쿼리 필터 추가 섹션에서 로그를 선택합니다.

쿼리 편집기에 새로운 요소가 도입됩니다.

기본 검색 쿼리 아래의 하위 쿼리 편집기
  1. 위치 필드에서 드롭다운 메뉴를 사용하여 연관시키고자 하는 속성을 선택합니다. 사용 가능한 속성은 기본 쿼리 에서 반환된 로그에 있습니다.
  2. 출발지 필드에 하위 쿼리 필터를 정의합니다.
  3. 하위 쿼리 필터 앞에 있는 열 선택 드롭다운 메뉴에서 그룹화할 속성을 선택하고 하위 쿼리 결과를 기준으로 정렬합니다.
  4. IN 연산자를 사용할지 NOT IN 연산자를 사용할지 선택합니다:
    • IN 연산자의 결과에는 하위 쿼리 결과에도 속성 값이 있는 로그만 포함됩니다. 예를 들어 service:a 에서 생성되고 service:b의 상위 사용자 중 한 명인 사용자와 관련된 로그만 보려는 경우입니다.
    • NOT IN 연산자의 결과는 하위 쿼리 결과에서 해당 속성 값이 있는 로그를 제외합니다. 예를 들어 status:error 로그만 보고 싶지만 로그와 연관된 사용자가 결국 status:success 로그를 남기는 status:error 로그도 필터링하려는 경우입니다. 자세한 예는 오래된 로그 또는 대체된 로그 필터링을 참조하세요.
  5. 선택적으로, 일치시킬 하위 쿼리 속성 값의 수를 줄입니다. 기본값 및 최대값은 1000입니다. 상단**(가장 높은 빈도 값) 또는 하단(가장 낮은 빈도 값) 중에서 선택합니다.

하위 쿼리 예제

다음은 로그에서 필요한 정보를 얻기 위해 하위 쿼리를 사용해야 하는 시나리오입니다.

오래되었거나 대체된 게시물 필터링 로그

전자상거래 플랫폼을 운영한다고 가정해 보겠습니다. 고객이 주문을 시도할 때마다 로그을 남깁니다. 웹사이트의 지속적인 문제로 인해 손실된 잠재적 구매의 총 가치를 파악하기 위해 로그를 분석하려고 합니다.

그러나 주문이 성공하기 전 여러 번 실패를 경험할 수 있다는 것을 알게 됩니다. 즉, 특정 주문 ID에 대해 다음이 있습니다. status:error 로그 및 status:success 로그 모두에 대한 검색 결과 항목이 있습니다. 두 쿼리에서 고유 주문 ID 목록을 추출한 경우 이 주문 ID는 두 곳 모두에 나타납니다. 하위 쿼리를 사용하면 상호 배타적인 목록을 얻을 수 있습니다.

이 예에서는 최종적으로 성공하지 못한 주문에 대한 로그에만 집중하려 합니다. 하위 쿼리 기능을 사용하여 최종적으로 성공한 주문을 제외하려면 다음을 수행하세요.

  1. status:success 로그에 대한 하위 쿼리를 정의합니다.
  2. 하위 쿼리 결과 집합에서 주문을 제외하려면 NOT IN 연산자를 선택합니다.
성공으로 끝난 주문을 필터링하는 설정을 보여주는 쿼리 편집기

다양한 로그 소스 간 상호 연관성

조직 내 모든 내부 네트워크 리소스와 해당 리소스에 대한 액세스를 모니터링하는 network_directory 라는 서비스가 있다고 가정합니다. 이 서비스에서 생성되는 로그 이벤트는 표준 속성(예: host, service, source)과 클라이언트 의 IP 주소와 같은 커스텀 속성을 포함합니다.

또한 모든 내부 자산(인프라스트럭처, 직원 디바이스 등)을 추적하는 또 다른 device-manager 서비스 사이트가 있습니다.

진행 중인 공격을 조사하는 중 거의 모든 엔드포인트에서 API 요청이 크게 증가한 것을 발견했습니다. 방화벽 수준에서 차단할 수 있도록 먼저 비정상적인 요청량과 관련된 IP 주소를 식별하려고 합니다. 그러나 내부 서비스는 이러한 엔드포인트의 가장 큰 소비자이므로 실수로 차단하는 것을 방지하려면 이를 제외해야 합니다.

이 예에서는 service:network_directory 을 기본 쿼리 으로 사용한 다음 device-manager 서비스 에 대한 하위 쿼리 필터를 정의하여 인식된 디바이스의 결과를 필터링합니다.

인식된 장치 결과를 필터링하기 위한 설정을 보여주는 쿼리 편집기

참조 테이블을 기준으로 로그 필터링

참조 테이블은 베타 버전입니다. 40,000개 이상의 행이 포함된 참조 테이블은 로그를 필터링하는 데 사용할 수 없습니다. 참조 테이블을 만들고 관리하는 방법에 대한 자세한 내용은 참조 테이블에 커스텀 메타데이터 추가하기를 참조하세요.

참조 테이블을 사용하면 메타데이터를 로그와 결합하여 애플리케이션 문제를 해결하는 데 필요한 추가 정보를 제공할 수 있습니다. 참조 테이블을 기반으로 쿼리 필터를 추가하여 쿼리를 조회할 수 있습니다. 이 기능의 생성 및 관리에 대한 자세한 내용은 참조 테이블 가이드를 참조하세요.

참조 테이블을 사용하여 쿼리 필터를 적용하려면 쿼리 편집기 옆에 있는 + Add 버튼을 클릭하고 참조 테이블을 선택합니다. 다음 예제에서는 위협 정보 참조 테이블에서 악성 IP 주소를 포함하는 모든 최근 로그를 검색하는 데 참조 테이블 쿼리가 사용됩니다.

참조 테이블 검색 옵션이 강조 표시된 Datadog 로그 탐색기

추가 읽기