반응형
관련 내용은 filebeat -> logstash -> elasticsearch 흐름에서 logstash가 문서를 drop하는 설정입니다.
filebeat이 보내는 형식에서 message 기준으로 불필요한 로그의 경우 삭제하는 방식입니다.
불필요한 로그란 필요할까 싶어 찍어놓았지만 정작 쓰이지 않는 로그입니다.
# logstash.conf
input {
beats {
port => 5044
}
}
filter {
if [message] =~ "# contain handler :" {
drop {}
}
if "beats_input_codec_plain_applied" in [tags] {
mutate {
remove_tag => ["beats_input_codec_plain_applied"]
remove_field => [ "@version" , "agent", "ecs", "architecture" ]
}
}
if "ERROR" in [message] {
mutate { add_tag => ["ERROR"] }
}
}
output {
elasticsearch {
hosts => ["es01:9200"]
index => "filebeat-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
stdout { }
}
세 개의 If문
- message 안에 "# contain handler :" 문자가 포함되어 있으면 drop하여 elasticsearch에 전송하지 않습니다.
- tags 안에 해당 text가 있을 경우 remove_tag, remove_field를 실행합니다.
- message 안에 ERROR가 있을 경우 ERROR 태그를 추가합니다.
날짜별로 index를 추가하면서 elasticsearch에 보내는 logstash 설정 파일입니다.
또 보내는 메시지를 확인하기 위해 stdout을 출력하여 테스트를 더 쉽게 확인할 수 있습니다.
감사합니다.
반응형
'ELK > Logstash' 카테고리의 다른 글
docker-compose logstash pipeline_id:main 오류 (0) | 2021.01.16 |
---|---|
logstash input codec fluent - 예제 (0) | 2021.01.14 |