2026년 2월 28일 토요일

Splunk의 eval과 rex - 5th

줄바꿈(\n) 문자를 이용해서 두 번째 라인의 계정 정보만을 검사하는 정규표현식.


그런데 같은 정규표현식이 replace 처리 과정에서 동작하지 않는다. 검사가 실패한 거면 원본이라도 반환해야 하는데 그것도 없음.


mvmap으로 다중값에 대한 개별 접근을 시도하니 원본을 반환한다. 줄바꿈 문자를 포함한 정규표현식 검사가 실패했다는 얘기.


줄바꿈 문자를 빼고 검사하니 두 번째 데이터가 의도대로 추출된다. 다중값은 줄 구분된 하나의 데이터가 아니라 리스트 형식으로 나열된 개별 데이터라 mvmap이 아니면 접근이 안 되고, 줄바꿈 문자로 연결할 수도 없나 보구나.


결국 제일 간단한 방법은 mvindex로 다중값 중 원하는 데이터를 선택하는 것.


필드값을 통째로 바꾸려면 문자열 전체를 검사해야 하고, 검사 실패 시 원본을 반환하는 replace와 달리 rex 명령어는 원하는 구간만 검사할 수 있고, 검사 성공 결과만을 반환하기 때문에 깔끔해서 좋다. 대신 정책 적용이 안 됨. 실시간 실행만 가능하다는 얘기(..)


줄바꿈 문자 테스트


줄바꿈 문자로 구분된 다중값처럼 보이지만, 사실 다중값이 아니다. 


그래서 줄바꿈 문자로 연결 검사 가능.


모든 전처리 작업이 병렬로 실행되는 계산 필드(6단계 필드 처리)는 원 소스 멀티 유즈를 구현하기 어렵다. 이 때 대안은 2 단계에서 미리 처리하는 것. 스플렁크가 9단계의 복잡한 필드 처리 순서 구조를 제공하는 이유. 2 단계는 리스트 형식의 다중값 필드 구조 완성 전이라 줄바꿈 문자도 사용 가능하다.


댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스