Splunk JSON 데이터 파싱 (2)

seaturtle·2023년 12월 6일
0

Splunk 기록

목록 보기
2/2

테스트 2

JSON 3 depth에 해당하는 값 추출하기

1. JSON depth 3 이상인 데이터 생성

| makeresults
| eval _raw="{\"Key1\": \"Value1\", \"Key2\": { \"subKey2_1\": \"sub value1 for key2\", \"subKey2_2\": [ {\"subkey2_2_key1\": \"value1_sub22\", \"subkey2_2_key2\": \"value2_sub22\" }, {\"subkey2_2_key1\": \"value1_sub22_2\", \"subkey2_2_key2\": \"value2_sub22_2 ---- value interested in \" }, {\"subkey2_2_key1\": \"value1_sub22_3\", \"subkey2_2_key2\": \"value2_sub22_3\" } ], \"subKey2_3\": \"sub value3 for key2\" }, \"Key3\": \"Value3\", \"Key4\": \"Value4\"}"

데이터 구조 사진

2. Key2 따로 추출

Key2에서 subKey2_2_key2만 빼내기 위해 Key2만 따로 추출

| spath path="Key2{}.subKey2_2{}" output="json"
| fromjson json

spath : 구조화된 데이터 형식 XML, JSON에서 정보 추출 가능하게 하는 명령어

  • output : 추출한 JSON 부분 이름(필드명) 지정
  • path : JSON 데이터의 경로(트리구조) 작성
    -> 조회하고자 하는 부분 추출할 때 사용
  • input : 해당하는 부분을 key,value 단위로 구분

fromjson : JSON 형식 개체를 다중값 필드로 변환하는 명령어

3. 개별 이벤트로 구분 후 원하는 데이터 서치

| mvexpand json
| spath input=json
| search subkey2_2_key2=value2_sub22_2*

mvexpand : 다중값 필드의 값을 각각의 값으로 분리(개별 이벤트로 확장)하는 명령어

  • mvexpand 사용해 개별 이벤트로 분리 후, spath 명령어의 input 속성 사용해 Key별 value값 조회 가능

search : 찾기

  • subkey2_2_key2인 필드 값이 value2_2_sub22_2*인 데이터 찾기

table : 지정한 필드로만 구성된 테이블 반환

  • subkey2_2_key2 필드 테이블로 확인

4. 최종 결과

profile
하루 기록

0개의 댓글