ELK/Logstash

logstash elasticsearch에 추가하지 않기: drop

PSAwesome 2021. 1. 23. 14:20
반응형

관련 내용은 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