[Kibana] 데이터 후처리를 위한 Scripted field 사용
이번 포스팅은 엘라스틱에 적재 된
데이터의 후처리를 위해 키바나에서
script field 사용법에 대한 포스팅.
1. 키바나 접속
- 키바나에서는 데이터의 시각화를 위한 다양한 툴을 제공
- 그 중에서 원본 데이터의 후처리를 할 수 있는 기능도 존재
- Scripted field를 사용하여 원래 field의 데이터를 가공하여 새로운 필드 생성 가능
>> kibana 에서 인덱스를 생성 한 후, 해당 인덱스로 접근
>> filed 옆에 Scripted fields 클릭 후 생성
2. Scripted Field 생성 방법
- Add scripted filed 클릭
- 아래와 같이 새로운 필드를 작성 할 수 있는 페이지 확인 가능
>> 후처리 코드는 자바 문법으로 작성 해야 함
>> 작성 중인 코드의 실제 적용은 아래 파란색 글씨를 클릭하면 새로운 창이 오른쪽에 열림
>> 스크립트 문법에 대한 간단한 설명을 확인 할 수 있음
>> 결과 확인 시 추가적으로 필드를 더 선택 할 수 있음
3. 문법 사용 예시
- 기본적으로 원하는 필드는 doc['필드명'].value 로 데이터를 가져올 수 있음
// 우선 해당 필드의 값이 없을 수 있기 때문에 예외 처리로 시작
if (doc['nginx.access.referrer.keyword'].size() == 0){
return '-'
}
>> 후처리 하고자 하는 필드를 가져온 뒤 size를 체크
>> 후에 값이 없어서 발생하는 에러를 미리 방지하기 위함
def name = doc['필드명'].value ;
if (name != null) {
if (name.contains("데이터1")) {
return "데이터1"
}
else if (name.contains("데이터2")) {
return "데이터2"
}
else if (name.contains("데이터3")) {
return "데이터3"
}
else if (name.contains("데이터3-1") || name.contains("데이터3-2")) {
return "데이터3"
}
else {
return name
}
}
>> 후처리를 하기 위한 필드를 변수에 담아준다.
>> 해당 필드의 값은 doc['필드명'].value로 가져올 수 있음
>> 해당 필드에 특정 문자가 포함 되어 있는지 확인하고 원하는 값으로 return
- 실제 작성 된 scripted field 예시
4. 키바나 확인
- 위에서 추가한 Scripted field 는 키바나 인덱스에 필드가 새롭게 추가되는 것을 확인 할 수 있음
- 후처리를 진행 한 필드를 사용하여 추가적인 시각화가 가능함
- 너무 복잡하지 않은 후처리는 키바나를 이용해서 쉽게 할 수 있음
>> 데이터 확인 및 사용