背景
Nginx日志是运维网站的重要信息,用于记录服务器活动和请求信息,Nginx服务器通常将Nginx日志输出到本地的文件中。传统模式下,运维人员查询日志时,需要登录服务器,通过操作系统的文件查看工具进行日志查询,由于日志分布在各个服务器上,且存在命令行操作易出错、服务器权限等限制因素,存在日志查询效率低下的问题。本实践将以Nginx日志为例,介绍日志采集、查询、分析与告警的过程。
优势
使用云日志服务,对比传统的日志模式,可以获得以下优势:
- 数据集中存储,无需登录多台服务器查询,在微服务架构下尤为重要
- 快速检索日志,告别繁琐的命令行操作,提升故障处理效率
- 实时检测异常日志,设置告警,提升故障响应时效
实践步骤
步骤一:创建日志项目与日志单元
开通云日志服务后,登录日志服务控制台,创建日志项目与日志单元。详细操作步骤请查看创建日志项目与日志单元。
- 创建日志项目:日志项目是用于管理日志服务的资源单元,通常可将某个独立项目/业务的日志对应至一个日志项目中。
- 创建日志单元:日志单元是进行日志数据的采集、存储、检索和分析的基本单元,日志数据以日志单元的方式进行管理,通常可将一个应用/服务下的日志采集至一个日志单元中。此处可为Nginx日志单独创建一个日志单元。
步骤二:配置日志采集规则
- 登录云日志服务控制台。
- 左侧点击【日志接入】菜单,进入日志接入页面。
- 点击【新增采集规则】,选择云主机-文本日志。
- 选择日志单元。
- 点击“所属日志项目”后的目标框,在下拉列表中选择具体的日志项目,若没有所需的日志项目,点击“所属日志项目”目标框后的“新建”,在弹出的创建日志项目页面创建新的日志项目。
- 点击“所属日志单元”后的目标框,在下拉列表中选择具体的日志单元,若没有所需的日志单元,点击“所属日志单元”目标框后的“新建”,在弹出的创建日志单元页面创建新的日志单元。
- 选择主机组。
- 点击【新建主机组】
- 输入主机组名称。
- 在已开通云主机列表中,选择您需要采集日志的目标云主机。选中的云主机将打包作为主机组。
- 点击下一步。
- 安装采集器。
- Step1:创建终端节点。安装采集器前,您需要在云主机所在的VPC中创建终端节点,以建立与日志服务的连接通道。
您需要在当前页面检查云主机所在的VPC是否已创建终端节点。若终端节点状态为“未创建”,请点击页面中的【创建终端节点】按钮,并根据页面指引进行开通。
若终端节点状态为“已创建”,您可跳过该步骤。 - Step2:安装采集器。
- 首先获取您的AK和SK。如何获取AK/SK?
- 复制页面中的命令,并使用获取的AK、SK手动替换 {input_your_ak} 和 {input_your_sk}。填写值时不需要添加 {}。
- 以root用户登录待安装采集器的云主机,执行上述命令。当显示“Installed lmtagent successfully”时表示安装成功。注意:目前仅支持X86架构的Linux天翼云云主机。
- Step3:检查采集器状态中。
点击【检测】按钮,稍等片刻后查看采集器状态,确保所有目标云主机的采集器状态均为已连通。若多次重试后仍无法连通,请查看常见问题中的“云主机采集器无法连通”进行问题排查。 - 点击下一步。
- Step1:创建终端节点。安装采集器前,您需要在云主机所在的VPC中创建终端节点,以建立与日志服务的连接通道。
- 配置采集规则,请按如下说明配置参数。参数配置完成后,点击下一步。
- 采集规则名称:输入采集规则的名称,在所属的日志项目内不允许重复。
- 采集路径:根据日志在服务器上的位置,设置日志目录和文件名称。 如本案例的日志路径为/var/log/nginx/access.log。
- 设置采集黑名单:默认关闭
- 采集策略:选择“全量”。
- 切割模式:针对原始日志执行分词的模式,本案例选择“单行全文”,其它切割模式请查看日志结构化解析。
- 最大目录深度:保持默认为“5”。
- 索引配置。(可选项)
本案例中,索引配置保持默认即可,您可直接点击【下一步】。更多详情请查看索引配置。 - 点击下一步后,接入成功,可以点击【返回接入配置列表】查看日志接入,也可单击【查询日志】查看该日志单元下的采集日志。
步骤三:对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