我尝试配置logstash以从蜜罐中提取日志条目,该蜜罐每个条目都有多行。日志配置为以下格式:
##############################################
{
"data": [
{
"count": 8,
"honeypot": "anum",
"source_ip": "ip1"
},
{
"count": 10,
"honeypot": "anum",
"source_ip": "ip2"
}
],
"meta": {
...
}
}
##############################################
现在,我可以在模式部分中指定三个条目("计数","蜜罐"和" source_ip")以及如何?
然后,从那里我可以指定grok模式使用这三个值?
答案 0 :(得分:0)
您可以尝试以下配置:
input {
stdin {
codec => multiline {
pattern => "\#+"
negate => true
what => previous
}
}
}
filter {
if "multiline" in [tags] {
mutate {
gsub => [
"message", "\n", "",
"message", "\#", ""
]
}
json {
source => "message"
}
if "_jsonparsefailure" not in [tags] {
split {
field=>"data"
}
}
}
}
output {
stdout {
codec => rubydebug
}
}
使用split
过滤器,您的事件将被多事件拆分,因此您可以将以下三个值分开:
[data][count]
[data][honeypot]
[data][source_ip]