2017-12-19 14 views
0

私は以下の形式のログを持っています。 2017-12-18 00:00:00,098 DEBUGテスト - テストクラス ログをlogstashとgrok filterで隠したいと思います。出力は次の形式で取得しています。grokとlogstshを使って "log 2017-12-18 00:00:00,098 DEBUG Test - In test class"を解析する方法

{ 
      "@version" => "1", 
       "host" => "ip-172-30-0-112", 
       "path" => "/home/ubuntu/logstash-6.0.0/apl.log", 
     "@timestamp" => 2017-12-19T11:32:03.692Z, 
      "message" => "2017-12-18 00:00:00,098 DEBUG SdkTLSSocketFactory - Starting handshake", 
       "type" => "apache_access" 
} 

しかし、私はタイムスタンプ、ログレベル、クラス名、名前ログメッセージを含む解析ログを必要とします。

私は%{DATESTAMP:timestamp} %{WORD:level} %{WORD:location} \- %{GREEDYDATA}を使用してログを解析しています。

+0

私は何をしようとする表示されません。おそらく、出力として役立つものの例が役立ちます。 – baudsp

+0

私は以下のフィールドを含む出力を期待しています。 { "@version" => "1"、 "host" => "ip-172-30-0-112"、 "path" => "/home/ubuntu/logstash-6.0.0/ "2017-12-18 00:00:00,098 DEBUG SdkTLSSocketFactory - ハンドシェークを開始する" "型" apl.log "、 " @timestamp "=> 2017-12-19T11:32:03.692Z、 "メッセージ "=>" 2017-12-18 00:00: "=> "apache_access" "ログレベル"=> "DEBUG" "クラス名"=> "SdkTLSSocketFactory" "LogMessageに"=> "の開始握手" }あなたの質問を更新しての代わりに、コメントでこれを入れて – user1949261

+0

、それがやっとです読みやすい – baudsp

答えて

0

コンフィギュレーションのinputoutputの間に、まだ存在していない場合は、filterブロックを追加します。ブロックに質問で指定したパターンが設定されています。

input{ 
    ... 
} 

filter { 
    grok { 
    match => ["message", "%{DATESTAMP:timestamp} %{WORD:level} %{WORD:location} \- %{GREEDYDATA}"] 
    } 
} 

output{ 
    ... 
} 
0

pipeline.conf

input{ 
     file{ 
       path => "/path/to/logfile" 
       sincedb_path => "/dev/null" 
       start_position => "beginning" 
     } 
} 
filter{ 
     grok{ 
       match => {"message" => "%{DATESTAMP:timestamp} %{WORD:logLevel} %{WORD:className} \- %{GREEDYDATA:logMessage}"} 
     } 
} 
output{ 
     stdout{ 
       codec => rubydebug 
     } 
} 

サンプル出力::

{ 
      "path" => "/path/to/logfile", 
    "@timestamp" => 2017-12-19T13:37:26.542Z, 
     "logLevel" => "DEBUG", 
    "logMessage" => "Starting handshake", 
     "@version" => "1", 
      "host" => "HOST", 
    "className" => "SdkTLSSocketFactory", 
     "message" => "2017-12-18 00:00:00,098 DEBUG SdkTLSSocketFactory - Starting handshake", 
    "timestamp" => "17-12-18 00:00:00,098" 
} 
関連する問題