2016-06-13 8 views
0

私のタイムスタンプとのマッチング方法はわかりません。誰かが私を助けてくれますか? Apacheのログからの私のタイムスタンプのLogStach-Grok:Apache TimeStampとの一致方法

例:"2016-06-13T14:54:39.000+0100"

filter { if [type] == "apache" { 
    grok { 
     match => { "message" => "%{COMBINEDAPACHELOG}" } } 
    date { 
     timezone  => "UTC" 
     match  => [ "timestamp" , "yyyy-mm-ddTHH:mm:ss Z"] 
    } } } 

output { stdout { codec => rubydebug } } 

出力:

{:timestamp=>"2016-06-13T14:56:43.196000+0100", :message=>"Error: Cannot register filter date plugin. The error reported is: \n Illegal pattern component: T for pattern 'yyyy-mm-dd\THH:mm:ss Z'", :level=>:error}

Apacheのログの例:あなたの完全なログから

{ "@version": "1", "@timestamp": "2016-06-14T09:11:23.000+0100", "message": "GET /page1/page2/ HTTP/1.1", "via": "192.168.1.1", "client-ip": "192.168.1.23", "remote-logname": "-", "remote-user": "-", "recv-time": "[14/Jun/2016:09:11:23 +0100]", "serve-time-microsec": "85471", "request": "GET /page1/page2/ HTTP/1.1", "status": "200", "size": "79648", "referer": " http://www.google.com/ ", "user-agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13", "url": "/page1/page2/", "query": "", "method": "GET", "protocol": "HTTP/1.1", "vhost": "www.site.com", "received-size": "998" }

+0

があなたのログからの行の例を追加することはできますか?チェックするのが簡単になります。 – ItayD

+0

私のログ@ItayDの行は既にあります。私はこの日付書式に一致する問題があります。 '2016-06-13T14:54:39.000 + 0100' – Infinite

+0

私は行が見当たりません。なぜなら、おそらくあなたはより良いgrok matcherを' COMBINEDAPACHELOG日付形式 '%{MONTHDAY} /%{MONTH} /%{YEAR}:%{TIME}%{INT}'を使用しています。 – ItayD

答えて

1

私はそのすでにあることがわかりますJsonフォーマットでは、0123を使ってメッセージフィールドにgrokフィルタを使う必要はありませんパターン。 ただ、次の形式で日付フィルタを使用します。

date { 
    timezone => "UTC" 
    match  => [ "timestamp" , "yyyy-mm-dd'T'HH:mm:ss.SSSZ"] 
} 

これはあなたの例で働いていた私の完全なlogstash.confファイル:

input { 
    file { 
     path => "/var/log/test.log" 
     codec => json 
     start_position => "beginning" 
    } 
} 
filter { 
    date { 
      timezone  => "UTC" 
      match  => [ "timestamp" , "yyyy-mm-dd'T'HH:mm:ss.SSSZ"] 
     } 
} 
output { 
    stdout { 
     codec => rubydebug 
    } 
} 
関連する問題