Index template에 대해서 궁금한 점이 있습니다


(함주승) #1

엘라스틱을 공부하던 중, Filebeat는 파일에서 읽은 내용을 message에 넣는다고 알고 있습니다. 그러면 혹시 message에 들어가 있는 자료를 필드로 나누려고 합니다.
아래는 제 template 입니다.

{
"filebeat-6.5.3" : {
"order" : 0,
"index_patterns" : [
"filebeat-6.5.3-*"
],
"settings" : {
"index" : {
"mapping" : {
"total_fields" : {
"limit" : "10000"
}
},
"refresh_interval" : "5s",
"number_of_routing_shards" : "30",
"number_of_shards" : "3"
}
},
"mappings" : {
"doc" : {
"properties" : {
"message" : {
"properties" : {
"contents" : {
"type" : "text",
"fields" : {
"alc_cd" : {
"type" : "keyword",
"ignore_above" : 256
},
"at_contents" : {
"type" : "keyword",
"ignore_above" : 256
},
"at_contents_cd" : {
"type" : "keyword",
"ignore_above" : 256
},
"bitrate_cd" : {
"type" : "keyword",
"ignore_above" : 256
},
"bitrate_cd_nm" : {
"type" : "keyword",
"ignore_above" : 256
},
"cd_media_loc" : {
"type" : "keyword",
"ignore_above" : 256
},
"clt_yn" : {
"type" : "keyword",
"ignore_above" : 256
},
"dd_disp_approve" : {
"type" : "keyword",
"ignore_above" : 256
},
"dd_organize" : {
"type" : "keyword",
"ignore_above" : 256
},
"desc_disp_approve" : {
"type" : "keyword",
"ignore_above" : 256
},
"fg_audio" : {
"type" : "keyword",
"ignore_above" : 256
},
"fg_quality" : {
"type" : "keyword",
"ignore_above" : 256
},
"genre_org" : {
"type" : "keyword",
"ignore_above" : 256
},
"grade_internal" : {
"type" : "keyword",
"ignore_above" : 256
},
"hit" : {
"type" : "keyword"
},
"id_contents" : {
"type" : "keyword",
"ignore_above" : 256
},
"id_contract" : {
"type" : "keyword",
"ignore_above" : 256
},
"id_master" : {
"type" : "keyword",
"ignore_above" : 256
},
"no_channel" : {
"type" : "keyword",
"ignore_above" : 256
},
"no_series" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}

템플릿은 각 인덱스마다 적용이 잘 되는데, message가 원하는 구조로 나눠지지 않습니다. 혹시 다른 방법이 있는지 궁금합니다. 그리고 파일비트로 받는 파일 형식이 tsv라 필터에서 탭을 구분자로 주어 할 생각도 있습니다. 어떤 방법이 조금 좋은가요?

추가적으로 ElasticStack 번역 책 추천부탁드리겠습니다~
(최신일수록 좋습니다. )


(Jongmin Kim) #2

message 필드는 템플릿만 적용한다고 되는게 아니고 ingest pipeline 을 가지고 나누셔야 합니다. 보통은 grok processor를 이용해서 먼저 나눕니다.

https://www.elastic.co/guide/en/elasticsearch/reference/current/grok-processor.html


(함주승) #3

감사합니다. GROK필터 이용해 MESSAGE필드 나눠서 저장하였습니다.