grok/kv filter audit logs logstash



我正在学习如何使用grok插件。我有一个像这样的消息字符串

"type=CRYPTO_SESSION msg=audit(111111.111:111111): pid=22730 uid=0 auid=123 ses=123 subj=system_u:system_r:sshd_t:a1-a1:a1.a1234 msg='op=xx=xx cipher=xx ksize=111 mac=xx pfs=xxx spid=111 suid=000 rport=000 laddr=11.11.111.111 lport=123 exe="/usr/sbin/sshd" hostname=? addr=11.111.111.11 terminal=? res=success'"

我想提取字段laddr、addr和lport。我用以下结构创建了一个模式目录

patterns
|
-- laddr
|
-- addr

我的过滤器是这样写的

filter {
grok {
patterns_dir => ["./patterns"]
match => { "messaage" => "%{LADDR:laddr} %{ADDR:addr}"}
}
}

我期望至少提取laddraddr. 我得到匹配使用https://grokdebug.herokuapp.com/。使用这些模式

(?<laddr>b(laddr=d{1,3}.d{1,3}.d{1,3}.d{1,3})b) 
(?<addr>b(addr=d{1,3}.d{1,3}.d{1,3}.d{1,3})b)

但是配置编译失败。我要离开这些文档了:https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html。我也尝试过使用kv过滤器当我尝试使用

之类的东西时我遇到的问题
filter{
kv {
value_split => "="
}
} 

我结束了msg字段出现两次。我想弄清楚如何从这个字符串中获取属性。如有任何帮助,我将不胜感激。

我认为它的字段分裂了:

filter {
kv {
field_split => "&?"
}
}

你试过了吗,你得到任何错误信息吗?

相关内容

  • 没有找到相关文章

最新更新