Splunk set command/ Splunk 두 개의 검색결과 중에서 같은 것만 찾기, 두 개의 검색결과 비교하기, 차이나는 결과 찾기

Munang·2022년 9월 28일
0

splunk

목록 보기
12/57

splunk 에서 두가지의 검색결과를 비교할 수 있는 명령어가 있다. 정말 집합의 의미로 set 명령어이다. 2가지 하위 집합의 교집합, 차집합, 합집합을 확인할 수 있다. 파이썬에서 set이라는 해시테이블로 구현된 자료구조가 있는데 그 기능과 동일하다. splunk 자체가 파이썬으로 만들어졌기 때문에 명령어가 대부분 파이썬의 함수들로 구성된 것이 많다.

1. set 사용법

| set (union | diff | intersect) subsearch1 subsearch2

로 명세 되어있고 필수 옵션에 대해 설명하면 다음과 같다.

  • union: 합집합을 반환한다.
  • diff: 합집합에서 교집합을 뺀 결과를 반환한다.
  • intersect: 교집합을 반환한다.

1) 예

| set intersect [search 404 | fields url] [search 303 | fields url]

404 오류와 303 오류가 있는 모든 URL을 반환

2. 주의사항

1) set의 집합 연산 결과

결과에 포함된 모든 필드가 일치하는 경우 결과를 동일한 것으로 간주한다. serial과 같이 검색에 의해 생성된 일부 숨겨진 필드는 검색에 따라 다를 수 있다. 따라서 set명령의 결과와 같이 변환된 결과와 달리 원시 이벤트와 함께 명령을 사용하는 경우 일부 필드를 필터링 해야한다.

  • 필터링 예시
| set intersect [search 404 | fields url | fields - _*] [search 303 | fields url | fields - _*]

2) set의 출력 제한

기본적으로 set 명령어를 사용했을 때 결과는 10,000개 까지만 허용된다. 이 제한을 초과하면 결과가 자동으로 잘리게된다.

Splunk Enterprise를 사용하는 경우 파일을 편집하고 스탠자 의 값을 limits.conf변경하여 이 제한을 조정할 수 있다. 이 값이 매우 크면 하위 검색이 실행되는 검색의 '구문 분석' 단계에서 엄청난 비용이 발생할 수 있다. maxout[subsearch]

3) set의 하위 검색 결과 제한

각 하위 검색에서 최대 50000개의 이벤트를 탐색하려고 한다. 두 검색 중 하나의 입력 결과 수가 이 제한을 초과하는 경우 set명령은 나머지 이벤트를 자동으로 무시하게 된다.

이 최대값은 limits.conf 파일의 maxresultrows설정에서 수정할 수 있다. 이 제한을 늘리면 메모리 사용량이 늘어날 수 있다.

0개의 댓글