[Logstash] Exception 에러로그 detection.

Elastic/Logstash 2016. 8. 16. 12:35

바빠서 초간단 버전 업데이트 합니다.


1. patterns 생성)

잘 아시겠지만 grok filter 에서의 pattern 은 deprecated 되었습니다. 그래서 patterns_dir 을 만들어서 설정을 하셔야 합니다.

저는 그냥 기존에 생성된 LOGLEVEL 패턴에 (Ee)xception 만 추가 했습니다.


patterns/patterns

LOGLEVEL ([Ee]xception|EXCEPTION|[Aa]lert|ALERT|[Tt]race|TRACE|[Dd]ebug|DEBUG|[Nn]otice|NOTICE|[Ii]nfo|INFO|[Ww]arn?(?:ing)?|WARN?(?:ING)?|[Ee]rr?(?:or)?|ERR?(?:OR)?|[Cc]rit?(?:ical)?|CRIT?(?:ICAL)?|[Ff]atal|FATAL|[Ss]evere|SEVERE|EMERG(?:ENCY)?|[Ee]merg(?:ency)?)


[참고]

https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns


2. config 생성)

input {

  file {

    path => "/server/elastic/elasticsearch-2.3.5/logs/*.log"

  }

}


filter {

  grok {

    patterns_dir => ["./patterns"]

    match => {

      "message" => "%{LOGLEVEL:error_log}"

    }

  }


  if "_grokparsefailure" in [tags] {

    drop { }

  }

}


output {

  if [error_log] in ["Exception","exception"] {

    stdout {

      codec => "rubydebug"

    }

  }

}


이 설정의 용도는 elasticsearch 에서 발생하는 exception 을 감지 하기 위한 것입니다.

초간단 버전이니 튜닝은 각자 잘 하시면 됩니다.



※ 실제 이것만 가지고 서비스에 적용하시면 문제 발생 할 수 있습니다.

filebeats 와 연동해서 사용하시길 권장 드립니다.

: