2017-07-20 18 views
1

XMLファイルからLogstashのXpathプラグインを使ってデータ(タイムスタンプとメッセージ)を抽出し、それらをkibanaのフィールドに表示したいとします。LogstashとXpathでデータを抽出する

XMLサンプル:

<log4j:event logger="logger4test" timestamp="1496297008092"><log4j:message>sample message</log4j:message></log4j:event> 

Logstash CONF:結果はlmessageであるが

input { 
    file { 
      path => "/opt/logs/*" 
      start_position => beginning 
      sincedb_path => "/dev/null" 
      type => "xml" 
    } 
} 

filter { 
    xml { 
      remove_namespaces => true 
      source => "file" 
      store_xml => false 
      xpath => [ 
        "//event/@timestamp", "time", 
        "//message/text()", "lmessage" 
      ] 
    } 

    if [type] == "xml" { 
      mutate { 
        replace => [ 
          "time", "%{time}", 
          "lmessage", "%{lmessage}" 
        ] 
      } 
    } 
} 

値%である{lmessage}及び時間で:%{時刻}なく、予想通り実際のメッセージと時間。

誰か助けてもらえますか? Logstashログにもエラーはありません。

答えて

0

問題を自分で解決しました。問題は「ソース」フィールドでした。 logstashのフィッティング属性である "メッセージ"は、iitデータを読み取る場所からこの情報を必要とするため、 "file"を "message"に置き換えなければなりませんでした。

xml { 
     remove_namespaces => true 
     source => "message" 
     store_xml => false 
     xpath => [ 
       "//event/@timestamp", "time", 
       "//message/text()", "lmessage" 
     ] 
} 
関連する問題