2016-04-08 13 views
0

snmptrap入力から値を取得したい場合は、メッセージから@valueを取得する方法は?

ループを作成中に次のログが生成されました。私はメッセージから値@source_ipをretriveしたい

{ 
    "message" => "#@enterprise=[1.3.6.1.4.1.9.9.187],@timestamp=#@value=2612151602>, @varbind_list=[#@name= [1.3.6.1.4.1.9.9.187.1.2.5.1.17.32.1.14.16.255.255.17.0.0.0.0.0.0.0.0.2], @value=\"\x00\x00\">, #@name=[1.3.6.1.4.1.9.9.187.1.2.5.1.3.32.1.14.16.255.255.17.0.0.0.0.0.0.0.0.2], @value=#@value=1>>, #@name=[1.3.6.1.4.1.9.9.187.1.2.5.1.28.32.1.14.16.255.255.17.0.0.0.0.0.0.0.0.2], @value=\"\">, #@name=[1.3.6.1.4.1.9.9.187.1.2.5.1.29.32.1.14.16.255.255.17.0.0.0.0.0.0.0.0.2], @value=#@value=3>>], @specific_trap=7, @source_ip=\"1.2.3.4\", @agent_addr=#@value=\"\xC0\xA8\v\e\">, @generic_trap=6>" 
} 

は、私は@souce_ipを取得するために

mutate { 
    add_field => { "source_ip" =>["@source_ip"] } 
    } 

を使用しようと、新しいフィールドのため、まだ値を取得することはできません、 誰かがそれをどうするかを知っているなら、助けてください。ありがとう。

答えて

0

「@source_ip」の情報は、表示されたものではなく、[メッセージ]フィールドの一部です。私はsnmptrap {}入力がメッセージに完全に満足していないと思います。

あなたが持っている例では、grok {}フィルタを通してメッセージを実行して、 "@ source_ip"情報を引き出すことができます。

他の処理の問題により、snmptrap {}入力の使用を停止しました。私は今snmptrapdを実行し、jsonのログファイルを作成してから、logstashの簡単なファイル{}で読み込みます。

関連する問題