我需要为 bind9
DNS日志编写一个grok过滤器 . 示例日志如下所示:
17-Feb-2018 23:06:56.326 queries: info: client @0x563d72c3ea20 172.26.0.1#34564 (test.example.com): query: test.example.com IN A +E(0)K (172.26.0.3)
我验证了grokconstructor上的以下模式,它成功匹配上面的日志:
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:logdate} queries: info: client @0x.{16} %{IP:source_ip}#(?<source_port>[0-9]+) \(%{HOSTNAME:query}\): query: .*$" }
}
date {
match => ["logdate", "dd-MMM-yyyy HH:mm:ss.SSS"]
}
}
但是在Kibana上,我的日志标记为 _grokparsefailure
并且未被解析 .
1 回答
正如@baudsp建议的那样,您需要为BIND9日志创建自定义模式 . 为此,您首先需要知道每个字段的实际含义,
所以对于你的BIND9查询日志,
模式是,
这将产生以下输出,