这种日志我有问题:
<183>Apr 26 12:53:53 host.example tag_audit_log: type=USER_ACCT msg=audit(1989212.965:15124458): pid=20982 uid=0 auid=427890281 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='op=PAM:accounting grantors=pam_unix acct="root" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
我认为解析它的最简单方法是使用
grok
然后将其传递给 KV filter
:
filter {
grok {
match => { "message" => "%{SYSLOG5424PRI}%{SYSLOGTIMESTAMP:date} %{NOTSPACE:hostname} %{NOTSPACE:location}: %{GREEDYDATA:kv_message}" }
overwrite => [ message ]
}
kv {
source => [ "kv_message" ]
}
}
一切都解析得很好,除了
msg
字段内的日志。
KV 创建了一个数组:
"msg" => [
[0] "audit(1989212.965:15124458):",
[1] "\\'op=PAM:accounting"
]
我想知道如何解析
msg[1]
内的进一步消息。
我试过field_split_pattern
,但我不确定如何正确包装它。
有些日志不包含这些嵌套字段,因此也必须考虑。