本节书摘来自华章计算机《Splunk智能运维实战》一书中的第1章,第1.8节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克·默克(Derek Mock),译 宫鑫,康宁,刘法宗 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.8 定义字段提取内容
Splunk内置了许多功能,能识别多种常见的源类型,因此能自动识别出数据中的字段。Splunk默认也会提取日志数据中的所有键值对和JSON格式日志中的所有字段。但是原始日志数据中的字段不能直接解释,必须提供给Splunk相关信息使这些字段易于搜索。
随后章节要用到的样本数据包含了作为字段提交给Splunk的数据。大部分原始数据包含Splunk能自动提取的键值对,但需要告知Splunk如何提取代表页面响应时间的这一特殊字段。要进行该操作,需要添加自定义字段提取内容,以便告知Splunk如何提取字段。
做好准备
本节的操作需要运行Splunk服务器并上传智能运维样本数据。
如何操作
按照下列步骤添加response自定义字段提取内容:
1 . 登录Splunk服务器。
2 . 从右上角单击“设定”菜单,并单击“字段”链接。
3 . 单击“字段提取”链接。
4 . 单击“新建”。
5 . 在“目标应用程序”字段,选择“搜索”应用程序,在“名称”字段,输入response。在“应用于”下拉菜单选择“源类型”,并在“名称”字段输入access_ combined。在“类型”下拉菜单选择“Inline”,在“提取/转换”字段,输入(?i)^(?:1*"){8}s+(?P.+)正则表达式。
6 . 单击“保存”。
7 . 在“字段提取”列表页面,找到刚刚添加的提取内容,在“分享”一栏,单击“权限”链接。
8 . 将“目标可见”调至“所有应用程序”。在“权限”部分,在“读取”一栏勾选“所有人”,在“写入”一栏勾选“admin”,然后单击“保存”。
9 . 回到Splunk搜索页面,输入下列搜索命令,时间范围设为
“过去60分钟”。
现在可以看到“response”字段已经提取到搜索页面左侧“感兴趣字段”部分的下方。
工作原理
所有的字段提取都保存在props.conf和transforms.conf这两个配置文件中。props.conf中的节包含一个提取类,它利用正则表达式提取字段名称和/或值以供搜索时使用。transforms.conf文件更加深入,可用于更高级的提取,如在多个源、源类型或主机上重复使用或分享提取。
另参见
- " ↩