Splunk iconify, highlight, rangemap 명령어

Munang·2022년 9월 6일
2

splunk

목록 보기
8/57

3가지 다 distributable streaming 명령어이다. distributable streaming 일 경우에는 streaming 한 명령어로써 작용하는데, SH에서 작동할 수도 있고 IDX에서 작동할 수도 있다.

1. Iconify

말 그대로 이벤트 하나하나에 Icon을 넣어주는 명령어이다.
다음과 같은 결과를 확인해보자.

이렇게 되면 이벤트 목록에 아이콘 이라는 필드가 추가됐다.
이 아이콘은 iconify 뒤에 명시한 필드를 이용해 해시값을 생성하고 이 해시값이 아이콘을 생성한다. 생성하는 아이콘은 랜덤이다.

  • 참고사항
  • Iconify는 distributable streaming 이다.
    그런데, SH에서 실행된다면 다음과 같은 쿼리도 실행되어야 하는게 아닐까?
index=_internal admin
| stats c by count
| iconify count
  • 하지만 실행되지 않았다. 별도로 공식 문서에 설명되어있지 않았지만, Iconify는 원시 이벤트에만 적용이 가능했다.
  • 이에 대해 내가 추측한 원인은 다음과 같다. iconify의 경우 주어진 이벤트 필드의 해시값을 생성해 이벤트로 반환한다. 이는 IDX에서 일어난다고 추정되는 streaming 한 command와 동일한 동작이다. 하지만 SH에서 이미 stats연산을 거치고 나게 되면 배포 가능한 스트리밍 명령 전에 일부 명령을 SH에서 실행해야 하는 경우가 되기 때문에 해시값의 연산도 검색의 나머지 명령은 SH에서 실행해야 한다. 하지만, iconify는 SH에서는 실행될 수 없는 것으로 보인다. 따라서 명령어가 실행되지 않은 것 같다고 추론했다.

2. highlight

말 그대로 이벤트에 highlight를 해주는 명령어이다.

index=_internal admin
| highlight admin

이렇게 하면 이런 결과가 나온다.

이렇게 admin string에 하이라이트가 되어서 나온다...

  • highlight 또한 원시 이벤트를 유지하고 이벤트 탭에 출력을 표시하는 검색에서 명령을 사용해야 한다. stats계산되거나 생성된 결과를 생성하는 명령과 함께 강조 표시 명령을 사용할 수 없다.

3. rangemap


은근 유용하게 사용한 rangemap 이다.
말 그대로.. 범위를 이용해 특정 필드로 map 해주는 명령어 이다.
위에서는 count 라는 필드의 범위를 설정해서 count가 1~100일때는 test1이라는 필드를, 100~1000일 경우에는 test2, 1000~10000일 경우에는 test3 나머지는 test4라는 값을 매핑해줬다. 이후 테이블 명령어로 range필드를 출력하면 다음과 같이 확인할 수 있다.

  • 참고사항
  • rangemap 또한 distributable streaming 명령어 이나, SH에서 실행이 가능하다. 따라서 다양한 변환 명령과 함께 결합할 수 있다.
source=all_month.csv place=*alaska* mag>=3.5 
| stats count BY mag 
| rename mag AS magnitude 
| rangemap field=magnitude green=3.9-4.2 yellow=4.3-4.6 red=4.7-5.0 default=gray 
| stats sum(count) by range

0개의 댓글