Logstash 如何从消息中检索@值?

Logstash 如何从消息中检索@值?,logstash,Logstash,我想从snmptrap输入中检索值 创建循环时生成了以下日志 { "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\">, #@na

我想从snmptrap输入中检索值

创建循环时生成了以下日志

{
   "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>"
}
我想从消息中检索@source\u ip值,我尝试使用

mutate {
   add_field => { "source_ip" =>["@source_ip"] } 
   }
要获取新字段的@souce_ip和,但仍然无法获取值, 如果有人知道怎么做,请帮忙。谢谢。

您显示的“@source\u ip”信息不是字段,而是[消息]字段的一部分。我猜snmptrap{}输入对消息并不完全满意

根据您的示例,您可以通过grok{}过滤器运行消息以提取“@source_ip”信息

由于其他处理问题,我停止使用snmptrap{}输入。我现在运行snmptrapd并让它编写一个json日志文件,然后由logstash中输入的简单文件{}读取