我正在尝试通过 grok 过滤器解析此日志条目中的值
type=disassociation radio='0' vap='0' client_mac='F6:A5:64:8F:31:20' channel='11' reason='1' instigator='5' duration='957.917574050' auth_neg_dur='0.069978132' last_auth_ago='957.847595918' is_wpa='1' full_conn='1.549515776' ip_resp='1.549515776' ip_src='10.128.20.31' http_resp='1.619493908' arp_resp='1.549515776' ar`p_src='10.128.11.50' dns_server='100.55.333.444' dns_req_rtt='0.039987504
我的代码片段是
if "type=" in [contents] {
grok {
match => ["contents", "(type=)(?<auth_type>disassociation|association|wpa_auth)?([ ])(radio=)(')(?<radio>?:[+-]?(?:[0-9]+))(')([ ])(vap=)(')(?<vap>(?:[+-]?(?:[0-9]+)))(')([ ])(client_mac=)(')%({MAC:client_mac})(')"]
}
我遇到了target of repeat operator is not specified
错误。不明白我哪里出错了
更新我的查询 - 找到解决方案!
kv 插件完成了解析语法key=value
字段的所有工作。 我安装了插件并刚刚添加kv {}
grok 过滤器下方,它很好地解析了每个键值。