什么是日志服务SLS
在说到日志服务SLS之前,首先了解一下什么是日志服务SLS?日志服务SLS是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、运维、运营、安全等场景的数字化能力。关于日志服务的更多内容可以参考官方文档:日志服务SLS 日志服务SLS的官方首页地址:https://www.aliyun.com/product/sls 在了解了什么是日志服务SLS之后,下面我们就开始上手操作吧。
Nginx日志采集
在进行Nginx日志采集之前,我们首先需要部署Nginx服务
部署Nginx
安装Nginx运行需要的插件
# 安装gccyum -y install gcc# 安装pcreyum install -y pcre pcre-devel # 安装zlibyum install -y zlib zlib-devel
下载Nginx安装包并解压
# 下载安装包wget http://nginx.org/download/nginx-1.17.10.tar.gz # 解压tar -zxvf nginx-1.17.10.tar.gz
编译安装Nginx
cd nginx-1.17.10 ./configure make && make install
启动Nginx
cd /usr/local/nginx/ sbin/nginx ;tail -f ./logs/access.log
启动完成之后打开浏览器输入Nginx部署的云服务器ECS的公网地址即可以看到请求日志信息
创建Logstore
登录日志服务SLS控制台:https://sls.console.aliyun.com/ 点击你想要操作的Project项目名称
点击日志库 + 号,输入Logstore名称及勾选WebTracking ,其他的默认即可
点击【确定】之后
这里暂时先不进行数据接入,因此点击【取消】
接入数据
再次回到日志服务SLS控制台首页,选择【Nginx-文本日志】
可以看到Nginx接入数据配置,
选择项目Project以及刚才创建的Logstore,点击【下一步】
这里选择【手动选择实例】,选择你需要操作的云服务器ECS,点击【创建】在弹出的弹框提示中选择【继续创建】
看到成功状态之后点击【确认安装完毕】
输入名称,点击【下一步】进入机器组配置,其中应用机器组就选我们刚才创建的机器组【test2023】,点击【下一步】进入Logtail配置
输入Logtail配置名称、日志路径、Nginx日志配置,输入日志样例
120.55.87.13 -- [30/Jun/2023:20:50:35 +0800] "GET / HTTP/1.1"200612"-""Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"
点击校验,
检验成功后点击【下一步】,到 查询日志分析 继续点击【下一步】
点击【查询日志】跳转到logstore2023的【查询/分析】可以看到采集到的Nginx的原始日志
数据脱敏
创建脱敏Logstore
在接入Nginx数据之后我们可以看到日志数据中的敏感信息是可以直接看到的
这样会造成数据的不安全,那么我们需要对这部分敏感数据进行脱敏操作,按照上一步的操作 创建Logstore 的步骤再次创建logstore202302用于存储脱敏后的数据
点击新创建的logstore202302
点击【开启索引】
开启【全文索引】后点击【确定】
点击【确认】完成
数据加工
回到原始Nginx日志数据日志库logstore2023,点击【数据加工】
输入需要处理的Nginx日志字段中的敏感字段处理方案
e_set("remote_addr", regex_replace(v("remote_addr"), grok("(%{IP})"), replace=r"*.*.*.*")) e_set("remote_user", regex_replace(v("remote_user"), r"(\S)\S+", replace=r"\1****"))
单击【保存数据加工】,在弹出页面中输入任务名称
输入【目标名称】选择【目标库】加工范围选择【所有】单击【确定】,注意这里如果没有对角色授权的话需要先授权,授权成功之后点击【确定】,数据加工任务创建完成之后回到脱敏数据的日志库logstore202302,点击【查询/分析】按钮既可以看到脱敏后的数据
告警设置
添加告警规则
这里我们可以设置告警阈值检测Nginx日志信息,比如在logstore2023输入查询语句
status >=400 | select status, count(*) as cnt group by status
可以查询到Nginx日志中的400以上错误码的日志信息,点击右上角【另存为告警】
打开告警配置页面
点击【确定】告警规则添加成功。
查看告警
告警规则添加成功之后,后续可以通过如下步骤查看告警信息。点击左侧【告警】
找到我们新建规则的【查看】可以看到实际的告警次数
点击【告警历史】的【查看详情】可以查看当前告警信息的详细内容,到这里我们基于日志服务SLS进行的Nginx日志采集,日志信息脱敏以及告警设置就完成了。
写在最后
最后来说一下本次对于日志服务SLS操作的整体感受,基本上整体操作可以参考官方文档的【快速入门】即可完成以上操作,不过在操作过程中,文档中也有描述不详尽的地方,这个时候可以辅助参考官方提供的在线课程 手把手进阶学习日志服务来完成对日志服务的基础操作。
另外,整个日志服务SLS的体系也比较完善,从数据采集、数据存储到数据加工、数据分析最后到告警、可视化及日志应用等,全套内容很丰富很全面,接入企业应用的话参考官方文档就够了,赞一个。