概述
本文主要在原文档基础上,进行了字段抽取规则、图表的优化。
-
字段抽取:原文档使用正则的方式,创建了多个视图,本文将改为正则+键值的抽取方式,并介绍键值抽取的适用场景
-
图表的优化:原文使用多为简单的sql语句,本文将增加一下略复杂的语句,并采用更多的图表展现方式
前提条件
参考本文有一定的前置条件,包括如下:
鸿鹄已经完成安装,并可以正常工作
vector已经安装并完成配置,并可以正常工作
本文的数据源类型为sangfor_syslog,数据集为sangfor_syslog,可以按照自己的环境去匹配。但数据源类型建议在syslog导入前完成创建,因为后续字段加工时,会对数据源类型进行更改,并绑定
操作步骤
本文假定sangfor的日志按照数据源类型为sangfor_syslog,数据集为sangfor_syslog,正常导入到鸿鹄平台。
字段抽取
原始日志分析
在字段抽取前,我们需要先查看下原始日志,对其进行分析
通过查询可以看到原始日志格式如下,对其进行分析发现后半部分为标准的键值格式,即K/V格式,那么我们可以确定我们的字段抽取方式为正则抽取+键值抽取
将日志分为两个部分,第一部分采用正则抽取
第二部分先采用正则将整个内容抽取,随后通过parse_autokv进行键值抽取(由于键值抽取默认通过=进行抽取的,所以这里:无法直接利用键值抽取,需要后面使用parse_autokv抽取)
抽取新字段
1、正则抽取
抽取新字段
选择目标数据类型,选择样例事件,下一步
在抽取流程中,新建抽取规则>正则抽取
按照上文日志分析,第一步,我们通过正则将日志进行正则抽取。
TIPs:这里我们可以先采用划词抽取,随后编辑正则表达式,可以稍微简化我们写正则表达式。此外,划词抽取需要chrome支持,我们推荐使用chrome,并且版本要满足要求(如果提示版本过低就是未满足),否则会无法划词抽取
划词抽取完后,我们修改正则表达式,让它更适合我们日志。点击查看抽取结果,可以正常抽取字段,下一步
命名抽取规则,并保存
验证抽取的字段正常
2、键值抽取
上文已经正则抽取成功,我们可以看到有两个module,分别是fwlog和nat,由于fwlog日志格式不标准,所以对content部分进行键值抽取时,就要把这两部分分开抽取。
TIPS:键值抽取是无法支持包含()/的字符串抽取 ,抽取到这个位置会自动终止。
我们对content进行键值抽取。fwlog日志后面单独通过正则抽取。
parse_autokv(sangfor_syslog.content,':') ,采用:的方式进行键值解析
解析正常,接下来我们将其存为视图,便于后面查询调用
fwlog日志由于是非规范的键值,我们这里只能采取正则抽取。
上文我们已经进行过正则抽取,现在需要做的是将fwlog这部分的日志通过正则继续抽取
字段加工>找到我们创建的字段加工规则>编辑
选择fwlog日志的日志样例,这样方便编辑正则后查看抽取结果
这里可以看到我们之前创建的正则,现在需要新建一个正则,将content中fwlog的日志正则补充完成。查看抽取结果可以正常抽取。
TIPS:新建的正则规则只会对能够匹配到的日志进行抽取,所以我们不用担心两个规则有什么冲突
保存,到这里我们就完成了sangfor日志的数据抽取。
仪表盘
在初阶部分我们已经做了仪表盘,这里由于我们对数据的数据源类型、视图、字段抽取(这里会影响到字段名)做了变更,首先需要将图表中数据集和视图参数进行变更。以下以一个图表举例
编辑sql语句,将如下内容调整
调整为当前的数据集
按照以上方式,将所有图表先进行数据集和视图的调整,完成后我们进入优化阶段
优化阶段
优化阶段主要涉及的图表应用包括:
单值趋势图
柱状图、条状图、饼图
表格
图表钻取
气泡地图与专题地图
时间选择器
时间选择器
我们在查看图表的时候时间常常不是固定的,比如想查看一天的、一周的、一个月的情况,这样需要图表可以根据我们选择的时间自动的变化。
编辑>添加输入
输入类型:时间
标记名称:time_range 这个是后面图表要调用的标记
显示标签:时间选择器 这个是显示的名称
默认标记值:建议选择1天或者1周, 由于我这不是实时的日志,选择所有时间
创建完成后,我们需要编辑每个图表调用时间选择器
如果图表调用了时间选择器,那么时间选择器每次选择时间后点击应用就会刷新所有图表
单值趋势图
适用场景:
这种图表一般用于统计数字的显示,比如有多少个设备,多少个日志事件,多少个报错,优点是显示明了。
接下来我们用这个定义图表
设备数量图表:
显示设备数量主要是为了查看我们当前有几个设备,如果突然减少了,说明syslog的吐入出现问题了
饼图、柱状图、条形图
适用场景:
用于统计后的占比分析,比如防火墙当前的日志每个类型的日志占比。这三者可以灵活的切换。
日志模块图表:
接下来我们进一步想知道子日志模块有哪几个以及他们的占比。
TIPS:这里注意下我调用的是sangfor_syslog_view视图,不是sangfor_syslog数据集,之所以调用视图,是因为视图中我们抽取了日志类型。
子日志分类:
NAT日志类型:
NAT日志又包含了哪些分类?
流量审计APP分类
流量审计包含了哪些应用?
钻取图表
适用场景
在我们对事件进行统计分析后,先通过统计分析结果,进一步了解详细的情况。
设备登录统计
在安全方面,我们还需要关注设备的登录情况,比如我们有多个用户共同运维防火墙,某个用户登录次数很多,我想进一步看看他都有哪些行为,这时候可以使用钻取图表。
select 用户,count(*) from sangfor_syslog_view where "日志类型" = '系统操作' group by 用户
编辑钻取
钻取链接:设置标记
设置标记:clickusertoken(这个要调用的标记)click.category这个表示点击后会进行钻取,不需要更改
接下来我们在详细的事件中调用
创建完成后,我们点击左侧图标中的tpcadmin,右侧的图表就会根据我们的点击,查询相应的结果
气泡、专题地图
适用场景:
对外发布的服务器,我们需要知道当前的访问都是来自哪里的,这时候我们可以使用气泡地图,能够轻松查看到对外服务器的主要访问源
专题地图
用户到底访问了哪些区域,由于用户访问的区域比较多,这时候用气泡地图会很杂乱无章,建议使用专题地图,可以清晰的看出区域的分布
柱状、折线趋势图
适用场景
趋势图一般用于按照时间对某些字段进行统计,形成一个趋势。一般多用折线趋势图、柱状趋势图采用显示堆叠的方式会更美观。
TIPS:在2.10版本后可以支持图表叠加,即柱状图叠加折线图的组合方式。
这里我按照fwlog和nat事件的数量生成一个趋势图。由于我的日志不是持续输入的,所以这里显示为一个点,正常的环境是一个线。
搜索语句
效果图
附件:仪表盘可以直接导入使用,但需要注意的是,数据源类型、数据集名称要根据情况变更,此外,字段抽取要提前完成,否则会出现仪表盘没有显示。
📎深信服防火墙仪表盘.json(详细内容请至官网,加入鸿鹄技术交流群,获取相关资料)