背景
Nginx日志是运维网站的重要信息,用于记录服务器活动和请求信息,Nginx服务器通常将Nginx日志输出到本地的文件中。传统模式下,运维人员查询日志时,需要登录服务器,通过操作系统的文件查看工具进行日志查询,由于日志分布在各个服务器上,且存在命令行操作易出错、服务器权限等限制因素,存在日志查询效率低下的问题。本实践将以Nginx日志为例,介绍日志采集、查询、分析与告警的过程。
优势
使用云日志服务,对比传统的日志模式,可以获得以下优势:
- 数据集中存储,无需登录多台服务器查询,在微服务架构下尤为重要
- 快速检索日志,告别繁琐的命令行操作,提升故障处理效率
- 实时检测异常日志,设置告警,提升故障响应时效
实践步骤
步骤一:创建日志项目与日志单元
开通云日志服务后,登录日志服务控制台,创建日志项目与日志单元。
-
创建日志项目:日志项目是用于管理日志服务的资源单元,通常可将某个独立项目/业务的日志对应至一个日志项目中。
-
创建日志单元:日志单元是进行日志数据的采集、存储、检索和分析的基本单元,日志数据以日志单元的方式进行管理,通常可将一个应用/服务下的日志采集至一个日志单元中。此处可为Nginx日志单独创建一个日志单元。
步骤二:配置日志采集规则
- 配置主机组:
主机组是一组需要采集日志的云主机列表,是一个虚拟分组,云日志服务通过主机组来管理所有需要通过采集器采集日志的云主机。此处需要基于Nginx日志文件所在的云主机创建主机组。 - 安装日志采集器:
在配置采集规则前,需要在目标云主机上安装日志采集器。根据页面引导进行安装即可。 - 创建采集规则:
采集规则是指采集器执行日志采集时的策略,包括文件采集路径、日志结构化模式等,可在控制台中进行创建与配置。 - 配置字段索引:
索引是一种数据存储结构,能减少日志数据的查询耗时。通过对日志配置相应索引后,可以对索引字段的数据进行相应的查询与分析。
步骤三:对Nginx日志进行查询
运维人员需要查询Nginx日志时,可登录云日志服务控制台进行查询操作。在步骤1创建的Nginx日志单元中,点击日志检索,进入检索页面,输入对应的查询语句,并设置查询时间范围,即可在页面下方浏览查询结果。以下为Nginx日志常用查询案例:
- 查询状态码为400的请求,输入status=400进行查询:
- 查询状态码为非200的请求,输入NOT status=200进行查询:
- 查询请求时间大于0.5秒的请求,输入request_time>0.5进行查询:
- 查询请求方式为GET且响应状态为400的请求,输入request_method = 'GET' and status = 400进行查询。
步骤四:对Nginx日志进行统计分析
云日志服务支持对Nginx日志进行多维度分析,并以可视化图表展示结果。
-
使用饼图统计各请求状态占比,输入分析语句:select "status",count(*) as "num" from log group by "status" order by "num":
-
统计前3访问来源,输入分析语句:select count(1) as pv , http_referer group by http_referer order by pv desc limit 3