我有一个类似于以下的输入
2015-12-02T12:39:57.546461+08:00 222.55.201.19 c): start_time="2015-12-02 ...some other log info... src=192.168.1.153 dst=8.8.8.8 src_port=51145 dst_port=13 ...some other log info... start_time="2015-12-02 src=192.168.1.123 dst=8.8.8.8 src_port=52245 dst_port=53 ...some other log info...
上面有很多 src 和 dst,所有这些都在一行中。
当我使用
"message" => "src=%{IP:SRC} dst=%{IP:DST}"
.我设法只得到第一个 src 和 dst。我无法在行中获得 src 和 dst 的其余部分。我应该使用什么命令来实现我的需要?我听说我可能需要做一些拆分,但我找不到这方面的信息。
最佳答案
我已经通过变通解决了这个问题。我对源的生成方式进行了更改。源现在每行都有记录。
我也尝试过“拆分”方法。它确实解决了问题,但代码量显着增加
关于logstash grok 捕获重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325370/