누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까? 아니면 Logstash가 ISO8601 타임 스탬프를 구문 분석하지 않는 이유는 무엇입니까?Logstash 파서 오류입니다. 타임 스탬프가 잘못되었습니다.
내가 오류 메시지가
실패 행동 ... "오류"=> { "유형"=>이 "[타임 스탬프]를 구문 분석하는 데 실패"=> "mapper_parsing_exception" "이유"입니다 , "due_by"=> { "type"=> "illegal_argument_exception", "reason"=> "잘못된 형식 : \"2017-03-24 12 : 14 : 50 \ "이 (가)"17-03- 24 12 : 14 : 50 \ ""}}
표본 로그 파일 라인 (000 목적으로 대체 IP 주소의 마지막 바이트) 01,235
16,2017-03-24 12:14:50 87.123.123.000 12345678.domain.com GET /smil:stream_17.smil/chunk_ctvideo_ridp0va0r600115_cs211711500_mpd.m4s - HTTP/1.1 200 750584 0.714 "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" https://referrer.domain.com/video/2107 https fra1 "HIT, MISS" 12345678.domain.com
grok 수 패턴 (확인 http://grokconstructor.appspot.com/do/match 사용)
RAW %{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{IPV4:clientip}%{SPACE}%{HOSTNAME:http_host}%{SPACE}%{WORD:verb}%{SPACE}\/(.*:)?%{WORD:stream}%{NOTSPACE}%{SPACE}%{NOTSPACE}%{SPACE}%{WORD:protocol}\/%{NUMBER:httpversion}%{SPACE}%{NUMBER:response}%{SPACE}%{NUMBER:bytes}%{SPACE}%{SECOND:request_time}%{SPACE}%{QUOTEDSTRING:agent}%{SPACE}%{URI:referrer}%{SPACE}%{WORD}%{SPACE}%{WORD:location}%{SPACE}%{QUOTEDSTRING:cache_status}%{SPACE}%{WORD:account}%{GREEDYDATA}
Logstash 구성 (입력 측) :
input {
file {
path => "/subfolder/logs/*"
type => "access_logs"
start_position => "beginning"
}
}
filter {
# skip first two lines in log file with comments
if [message] =~ /^#/ {
drop { }
}
grok {
patterns_dir => ["/opt/logstash/patterns"]
match => { "message" => "%{RAW}" }
}
date {
match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss" ]
locale => "en"
}
# ... (rest of the config omitted for readability)
}
해당 색인 (특히 'timestamp'필드)에 대한 Elasticsearch 매핑을 게시 할 수 있습니까? – fylie