2017-05-21 4 views
0

私はFilebeatとLogstashを使ってログをElasticsearchに送ります。私は木場のログを見ることができますが、ログはログレコードのタイムスタンプに従って正しくソートされません。 ログレコードのタイムスタンプに別のフィールドdateTimeを作成しようとしましたが、その列で木場のテーブルを並べ替えることができないようです。木場のログはログタイムスタンプでソートされていません

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

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

は、この機能はthe date filterがために作られているまさにです。あなたのGROK式の後にこれを追加します。

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

これはKibanaは、このフィールドの値であることをすることによってソート@timestampフィールドを設定します。

+0

ありがとうございますが、 '@ timestamp'の値を上書きしていないので、実際のログのタイムスタンプで' dateTime'というフィールドが作成されました。 Btw、月、日、年の値を実際のログのタイムスタンプに追加するにはどうすればよいですか? – rw412

関連する問題