ELK 스택/Filebeat+ELK

[Kibana] 데이터 후처리를 위한 Scripted field 사용

new_challenge 2020. 4. 4. 02:25
반응형

이번 포스팅은 엘라스틱에 적재 된

데이터의 후처리를 위해 키바나에서

script field 사용법에 대한 포스팅.

 

 

 

 

1. 키바나 접속

- 키바나에서는 데이터의 시각화를 위한 다양한 툴을 제공

- 그 중에서 원본 데이터의 후처리를 할 수 있는 기능도 존재

- Scripted field를 사용하여 원래 field의 데이터를 가공하여 새로운 필드 생성 가능

 

scripted filed 생성 화면

>> 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 는 키바나 인덱스에 필드가 새롭게 추가되는 것을 확인 할 수 있음

실제로 추가된 scripted filed

- 후처리를 진행 한 필드를 사용하여 추가적인 시각화가 가능함

- 너무 복잡하지 않은 후처리는 키바나를 이용해서 쉽게 할 수 있음

 

>> 데이터 확인 및 사용

반응형