2017-02-09 14 views
0

フィールド名のピリオドをすべてアンダースコアに変更するフィルタを作成する必要があります。私は突然変異を楽しんでいます。私はいくつかのことをすることができますが、他のことはできません。ここで私の現在の出力は木場です。名前にピリオドが含まれているとLogstashフィルタが機能しない

Kibana Data

など "packet.event-ID" と言うと、それらのフィールドを参照してください?私はそれらの名前をすべて変更する必要があります。ここで私が書いた私のフィルタであり、それは問題は、私はフィールドを追加できることです

The filter

動作しない理由を私は知らない、との名前の変更は、作品を「オフセット」。しかし、パケットをしようとすると、何も変わりません。私はこれがシンプルでなければならないと感じ、なぜそれに期間があるものだけがうまくいかないのか非常に混乱しています。

私は木場のインデックスを更新しましたが、何も変わりません。誰にでも解決策がありますか?

+0

コードやエラーメッセージの画像を投稿しないでください。代わりに、Kibanaから直接JSONコンテンツをコピーして貼り付けることができます。また、Logstash設定をテキストとして貼り付けることもできます。何今 –

答えて

2

紀伊半島のドット表記で表示されるのは、もともとjson形式で読み込んだドキュメントの構造があるからです。

logstashを使用してドキュメント構造にアクセスするには、packet.event-idの代わりに[packet][event-id]をリネームフィルタに使用する必要があります。例えば

filter { 
    mutate { 
     rename => { 
      "[packet][event-id]" => "my_packet_event_id" 
     } 
    } 
} 
+0

'code' フィルタ{ JSON {ソース=> "メッセージ" }変異{リネーム=> {[パケット] [イベントID] => "my_packet_event_id"}}}' code' そして、私は木場に何も出されていない。 – BenjaFriend

+0

あなたはタイプミス(引用符がありません)をしています...完全な実例に入れてください – Alcanzar

+0

ありがとう、これは私が必要としていたものです。私はかなりELKのスタックに新しいです:) – BenjaFriend

0

あなたのfilebeat.ymlに設定の数行を追加することにより、Filebeatに直接JSONの構文解析を行うことができます。

filebeat.prospectors: 
- paths: 
    - /var/log/snort/snort.alert 
    json.keys_under_root: true 
    json.add_error_key: true 
    json.message_key: log 

フィールドの名前を変更する必要はありません。 Logstashのフィールドにアクセスする必要がある場合は、たとえばフィールドを[packet][length]として参照できます。構文の説明については、Logstash field referencesを参照してください。

ところで、フィールド名にドットを置き換えるのにde_dotがありますが、この場合は適用しないでください。

関連する問題