概述
存储在企业中一直承担着重要的角色,保证数据的安全性更是重中之重。存储的运行是否正常?我们的数据是否安全?存储管理人员的操作是否规范?这些都是企业需要关注的问题。那么该如何确保这些问题能够有效的解决?我们的选择是鸿鹄数据平台。通过鸿鹄将存储的安全日志,操作日志,告警日志集中的存储,利用其搜索功能,可以快速的定位问题,并且可以通过其丰富的报表功能进行展示。
监控目标
监控安全事件,如用户登录
监控操作事件,如用户的操作行为
监控告警事件,如存储运行状态的告警
实现以上监控的图表展示
安装vector
Vector作为数据采集器,可以接收设备的syslog日志,并转发鸿鹄平台。Vector配置方法参考下文:
安装Vector
查看安装后vector版本,确认安装成功
vector安装好后,直接执行vector 时,系统首先会去/usr/bin下寻找命令,如果不在这个目录中,就会找不到了。这个时候我们就需要为这些找不到的命令建立一个链接文件,链接到/usr/bin下
(详细代码请至文末扫码加入鸿鹄交流群,获取鸿鹄知识库)
登录鸿鹄平台,数据管理>新建数据集
编辑数据源名称,选择数据集范围为上面创建的“switch”,此时会启用
创建syslog.toml脚本,需要调整字段
address = "0.0.0.0:514":0.0.0.0表示接收所有主机发送过来的syslog,514表示接收的端口(syslog默认为514)
mode = "udp":表示接收syslog的协议syslog默认为udp)
._target_table = "switch" : 表示上文你创建的数据集名称
address = "172.20.6.111:9092":鸿鹄的IP和相应的端口
运行修改的syslog脚本,注意保持运行状态。
(详细代码请至文末扫码加入鸿鹄交流群,获取鸿鹄知识库)
登录设备触发syslog(注:登录设备会自动触发syslog)。登录鸿鹄平台查看数据是否导入到switch数据集。如下图事件计数已经显示数据导入成功
查询下通过vector导入到switch数据集的数据,比如这里我查看下存储的日志
配置PowerStore syslog
登录到PowerStore存储,Setting>Remote Logging>ADD
Host/IP Address 填写鸿鹄的地址
协议:默认是udp(与上文syslog.toml里一致)
端口号:默认514(与上文syslog.toml里一致)
Audit Type:全选
SEND TEST MASSEGE,发送测试一个日志信息测试下鸿鹄是否收到
在鸿鹄上查询下日志,发现已经收到存储发送的测试日志,至此配置syslog完成
字段抽取
通常情况下,存储发送过来的日志是由多种类型的,比如登录相关日志,配置相关日志,这些日志的格式在鸿鹄中会先进行一次字段抽取,我们可以在看到默认抽取的字段,如果这些字段已经包含了你需要的,那么可以直接使用。如果有些字段并未抽取,那么就需要你自己抽取,鸿鹄支持正则表达式的方式抽取字段。
以下面的日志为例,我们进行正则表达式的编写
我们可以将日志复制到正则表达式测试网站上来编写,这样能随时知道哪里写错了。以下是我使用的测试网站https://regex101.com/
正则表达式如下
\w+\s\d+\s\d{2}:\d{2}:\d{2}\s\w+-\w+\s\[\d+]:\s\d+-\d+-\d+\w+\d+:\d+:\d+.\d+\s\w+-\w+\s\w+\s\w+@(?\w+)\s(?\w+)\s\[\w+@\w+\s\w+="(?\d+)"\s\w+="(?\w+)"\s\w+="(?\w+)"\s\w+="(?\w+)"\s\w+=(?"[^"]*")\s\w+=(?"[^"]*")\s\w+=(?"[^"]*")]\s(?.+)
ps_syslog,这里是需要新建的视图名称
switch._time 脚本中由第六行开始switch均指的需要抽取数据的原数据集,这里需要根据你的数据集名称替换
where contains( switch._message, 'powerstore') 'powerstore'指的是你要搜索到这个写日志特定的字段,通过powerstore可以限定日志里所有包含powerstore的日志
(完整代码请至文末扫码加入鸿鹄交流群,获取鸿鹄知识库)
在高阶查询中运行,成功
我们运行下搜索语句测试下,可以看到我们抽取出来的字段
图表创建
在进行图表展示前有一个重要的点需要提一下,一般存储在没有触发其日志时,是不会生成日志的。我们需要图表展示,那么就需要尽可能多的日志数据。我们可以在存储上进行一些操作,比如登录、创建测试卷、删除测试卷等,以便丰富日志数据。
仪表板>新建仪表板
创建完成
图表创建方法1
这里我会介绍两种创建图表的方式,一般建议采用第二种方式。鸿鹄支持多种图表的样式,只要搜索语句能够正常生成结果数据,那么就可以选择对应的图表。本文不会介绍所有图表的样式,只针对创建方式进行描述。第一种就是在仪表板内创建图表,方法如下:
新建图表>设备数量
选择图表类型:单值趋势图
查询语句:这个语句可以先在查询里验证,确认查找的结果是想要的
时间范围:选择30天,可以根据自己的情况调整
生成图表
图表创建方法2
图表创建第二种是先搜索,后使用搜索的数据生成图表添加到对应的仪表盘,方法如下:
在查询里输入搜索语句
在查询语句运行完后,点击新建图表
图表类型:可以从各种图表类型中根据需求选择
标题:操作行为统计
选择仪表板:意思是将该图表保存到哪个仪表板
添加后可以在仪表板里看到添加的图表
以上两种方法大家可以根据情况选择,第二种更加直观简单。图表的展示这里我不详细展示,将搜索语句列出,可以给大家参考。
搜索语句
以下列出所有本文中的搜索语句,供参考
小提示:搜索语句命令部分会调用抽取的字符段,如果未抽取字符段,会出现报错
(完整代码请至文末扫码加入鸿鹄交流群,获取鸿鹄知识库)
效果展示
延伸项
按照上文的图表创建,都是在图表生成时选择好图表的时间,比如30天,或者1天的数据展示,在实际场景中,如果我们查看图表时,想要所有的图表可以根据选择灵活的显示该怎么做,比如我想看1天的,想看7天的,那么这时候我们可以做一个”时间项“,方法如下:
创建时间选择
编辑
添加输入
输入类型:选择时间
标记名称:time_range(这个用于给图表调用)
显示标签:这个时间项显示的名字
默认标记值:这里根据自己的情况选择,我一般选择相对时间,设置成30天
确定后会生成一个时间选择的项
调用时间选择
选择想要调用的图表,选择编辑查询
将查询时间范围改为时间标记值,标记名称time_range(上文创建的时间选择时填写的标记名称)
保存后就可以在”时间选择“里选择想要查看的时间,点击应用,图表就会根据时间变化了
总结
通常来讲,存储设备本身会提供自己的日志审计功能,它本身也能够支持查看,简单的搜索,但是我们再深入下看待这个事情,如果我们有1套存储,存储本身的功能能够支撑,但如果我们有10台,甚至更多的存储呢?利用鸿鹄我们可以通过syslog的方式,将存储的数据统一的存储,并且利用其搜索语句进行快速的搜索,并生成相应的图表展示,这样可以大大节省我们的运维工作。
后续工作
本次针对存储只是基于现有的日志数据进行初步的展示,后续随着日志的丰富,我们还会需要进一步的进行优化,大致方向包含
-
多套存储设备监控,比如我们有10套存储,我们应该能够灵活的选择查看具体每套存储的情况,图表会根据我们选择的存储进行变化
-
硬件故障监控,比如硬盘故障、控制器故障、链路故障
-
监控的告警,在某些error事件时,主动的触发邮件的告警