2017-05-21 4 views
0

Filebeat 및 Logstash를 사용하여 로그를 Elasticsearch로 보냅니다. Kibana에서 내 로그를 볼 수 있지만 로그 레코드의 타임 스탬프에 따라 로그가 올바르게 정렬되지 않습니다. 로그 레코드 타임 스탬프에 대해 별도의 필드 dateTime을 만들려고했지만 해당 열을 기준으로 기바의 테이블을 정렬 할 수없는 것처럼 보입니다.Kibana의 로그가 로그 타임 스탬프별로 정렬되지 않았습니다.

Kibana screenshot

사람이이 상황에서 해결책이 될 수 있는지 설명 할 수 있을까요?

filebeat

filebeat.prospectors: 
- input_type: log 
    paths: 
    - /var/log/app.log 
    fields_under_root: true 
    multiline.pattern: '^[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}' 
    multiline.negate: true 
    multiline.match: after 
registry_file: /var/lib/filebeat/registry 

output.logstash: 
    hosts: ["host_name:5044"] 
    ssl.certificate_authorities: ["..."] 

logstash이 기능은 the date filter을 위해 만든 정확히 무엇

input { 
    beats { 
    port => 5044 
    ssl => true 
    ssl_certificate => "..." 
    ssl_key => "..." 
    } 
} 

filter { 
    if [type] == "filebeat" { 
    grok { 
     match => { "message" => "(?<dateTime>[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3})"} 
    } 
    } 
} 

output { 
    elasticsearch { 
    hosts => "elasticsearch:9200" 
    } 
} 

답변

0

. 당신의 grok 수 발현 후이 추가 : 이것은에 의해 키바의 종류는이 필드의 값이 될 수있는 @timestamp 필드를 설정합니다

date { 
    match => [ "dateTime", "HH:mm:ss.SSS" ] 
} 

.

+0

감사합니다. 그러나'@ timestamp' 값을 덮어 쓰지 않았으며, 실제 로그 타임 스탬프가있는'dateTime' 필드를 만들었습니다. Btw, 어떻게 월, 일 및 연도 값을 실제 로그 타임 스탬프에 추가 할 수 있습니까? – rw412