17

タイムスタンプとjsonメッセージを含むイベントを保存するログファイルがあります。例えば:

タイムスタンプ {"foo": 12, "bar": 13}

json 部分のキー (foo と bar) を Logstash 出力のフィールドに分解したいと思います。

Logstash ファイル フィルターのフォーマット フィールドを json_event に設定できることは承知していますが、その場合は json にタイムスタンプを含める必要があります。json フィルターもありますが、キーを使用する代わりに、完全な json データ構造を持つ単一のフィールドを追加します。

これを行う方法はありますか?

4

4 に答える 4

16

最新の logstash 1.2.1 を試し、コーデック値を使用して json イベントを直接解析してください。

input {
    file {
        type => "tweetfile"
        path => ["/home/nikhil/temp/feed/*.txt"]
        codec => "json"
    }
}
filter{
    json{
        source => "message"
        target => "tweet"
    }
}
output {
    stdout { }
    elasticsearch { embedded => true }
}
于 2013-10-01T10:16:26.177 に答える
1

単純なGrok フィルター(正規表現スタイルのフィルター/パターン) を使用するだけで、一致した値を変数に割り当てて、整理、フィルター処理、および検索を簡単に行うことができます。

例:

((?<foo_identifier>(\"foo\"))):((?<foo_variable_value>(\d+,)))

それらの線に沿った何か。

GrokDebuggerを使用して、構文、パターン、および一致するはずなのに一致していないと思われるものに行き詰まった場合に役立ちます。

それが少し役立つことを願っています。

于 2013-08-08T14:34:55.280 に答える
-4

JSONが間違っています{"foo": 12, "bar" 13}

次のようにする必要があります。

{"foo": 12, "bar": 13}

于 2014-05-14T17:58:16.437 に答える