요약 :
logstash -> elasticsearch -> 로그 파일에
이벤트 필드 @timestamp (형식이 포함 된 디버그 출력에 표시된 날짜를 구문 분석 실패 : 2014-06-18T11 : 52 : 45.370636 + 02 : 00)
이벤트는 실제로 elasticsearch로 처리되지만 실패한 구문 분석 오류가 표시됩니다.Logstash : 실패 분석 날짜
버전 :
Logstash 1.4.1
Elasticsearch 1.20
내가 잘못 할 뭔가가 있나요?
{"@timestamp":"2014-06-18T11:52:45.370636+02:00","Level":"Info","Machine":"X100","Session":{"MainId":0,"SubId":"5otec"},"Request":{"Url":"http://www.localhost:5000/Default.aspx","Method":"GET","Referrer":"http://www.localhost:5000/Default.aspx"},"EndRequest":{"Duration":{"Main":0,"Page":6720}}}
내가이 logstash의 설정을 사용합니다 :
나는이 같은 이벤트를 포함하는 로그 파일이
input {
file {
path => "D:/testlogs/*.log"
codec => "json"
start_position => [ "beginning" ]
}
}
filter {
date {
match => [ "@timestamp", "ISO8601" ]
}
}
output {
stdout {
codec => json
}
elasticsearch {
protocol => http
host => "10.125.26.128"
}
}
내가 얻을 로그 파일의 이벤트에서이 설정에 logstash을 실행하면 다음 오류 :
[33mFailed parsing date from field {:field=>"@timestamp", :value=>"2014-06-18T12:18:34.717+02:00", :exception=>#<TypeError: cannot convert instance of class org.jruby.RubyTime to class java.lang.String>
이제 이벤트는 실제로 elasti로 가져옵니다 csearch,하지만 난이 오류를 참조하십시오.
이 문제가 발생하거나 이러한 구문 분석 오류가 무시 될 수 있습니까?
감사합니다. 이상한 점은 설정을 사용하면 화면에 어떤 표준 출력도 나오지 않는다는 것입니다. – user3024742
나는 당신이 가진 결과를 얻지 못하는 이유를 논리적으로 밝혀 내지 못하는 것 같습니다. 나는 나의 질문과 같이 내 자신의 사건으로 test.log를 만들었다. D :/testlogs에 저장했습니다. 당신의 설정을 사용하고 logstash를 실행하십시오. 나 또한 로그 파일을 UTF-8 및 ANSI로 저장하려고했으나 코덱 => json을 제거했습니다. "날짜 일치"로 설정을 시도하면 작동하지만 항상 그렇지는 않습니다. 항상 logstash -> 출력 ok를 실행하는 것은 아닙니다. logstash를 다시 종료하십시오 -> no output. – user3024742
anwser에 다시 한 번 감사드립니다. 다시 설정을 시도했는데 제대로 작동했습니다. 구성과 관련하여 이전에 가지고 있던 문제점은 sincedb 기능성이있을 가능성이 큽니다. 그래서/dev/null에 추가했을 때 모든 작업이 잘 진행되었습니다. 감사. – user3024742