求助支持指定字段提取的Domino iNotes日志Grok Pattern编写指导
Lotus Domino iNotes 访问日志 Grok Pattern 编写指南
目标提取字段覆盖:客户端IP、虚拟主机名、CN字段后的用户名称、访问时间、含请求方法的完整请求URL、客户端User-Agent设备信息
基础规则锚定
你已经写的起始匹配规则%{IPORHOST:clientip} %{WORD:VirtualHost}可以直接保留,这部分对日志开头的IP、虚拟主机字段的匹配是完全正确的,不需要修改,后续只需要在这段规则后面补充对剩余字段的匹配逻辑即可。
分字段补充匹配逻辑
针对你提到的几个无法匹配的字段,按日志出现的先后顺序逐个拆解适配:
1. 带CN字段的Domino用户DN串提取
Domino的用户DN格式固定为CN=用户名/OU=组织单元/O=组织名,核心是只提取CN=后面的用户名部分,不把后续OU、O的无关内容带进来。这部分不需要抓完整的DN串,直接用正则定位CN标记:
- 匹配逻辑:在虚拟主机字段后,到时间字段的左方括号之前的区间内,抓取
CN=标识后的内容,直到遇到第一个斜杠、分号为止,用正向先行断言锁死匹配边界。 - 对应Grok片段:
CN=%{DATA:user_name}(?=[/;])
2. 标准HTTPDATE格式的访问时间
Domino日志的时间字段固定被方括号包裹,和Nginx日志的时间格式完全一致,直接调用Grok内置的HTTPDATE模式,注意要显式匹配方括号边界:
- 对应Grok片段:
\[%{HTTPDATE:access_time}\]
3. 双引号包裹的完整请求行
请求行自带请求方法、目标URL、协议版本,整段用双引号包裹,直接匹配双引号内的所有内容即可,不需要拆分单独的method、uri字段。
- 对应Grok片段:
"%{DATA:full_request}"
4. 双引号包裹的User-Agent设备信息
请求行之后的UA字段同样被双引号包裹,直接按同样的双引号边界匹配即可。
- 对应Grok片段:
"%{DATA:user_agent}"
完整可直接复用的Grok Pattern
把上述片段按日志字段顺序拼接,得到完整规则:
%{IPORHOST:clientip} %{WORD:VirtualHost} .*?CN=%{DATA:user_name}(?=[/;]) \[%{HTTPDATE:access_time}\] "%{DATA:full_request}" "%{DATA:user_agent}"
注:规则中加的非贪婪匹配,用来兼容不同日志版本中CN字段前后可能出现的冗余分隔符,避免因为日志行内的额外字符导致匹配失败。
匹配效果校验
拿真实Domino iNotes日志样例跑匹配:
172.16.8.20 webmail.mycompany.com CN=li.ming/OU=IT部/O=MyGroup [15/Nov/2024:09:12:45 +0800] "GET /homepage.nsf/iNotes/ReadForm?Open HTTP/1.1" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15"
提取到的字段结果:
clientip:172.16.8.20VirtualHost:webmail.mycompany.comuser_name:li.mingaccess_time:15/Nov/2024:09:12:45 +0800full_request:GET /homepage.nsf/iNotes/ReadForm?Open HTTP/1.1user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15
常见适配调整
- 如果日志中CN字段后没有斜杠分隔的OU/O内容,直接修改先行断言的匹配边界,把
(?=[/;])改成(?=\s|\[),匹配到空格、左方括号就停止抓用户名,提高兼容度。 - 如果遇到字段值错位的情况,优先检查是否用了无边界的贪婪匹配,所有固定的分隔符(方括号、双引号、=)都要显式写在规则里,不要完全依赖Grok内置模式自动识别边界。
- 如果日志行末尾还有其他冗余字段,不需要在Pattern中补充匹配逻辑,Grok只要匹配到目标字段就会返回结果,不会强制要求匹配完整行。
内容的提问来源于stack exchange,提问作者Radu
相关产品推荐
相关产品推荐

