有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

操作场景

Nginx 作为常见的反向代理服务,在实际业务中承载着大量的服务请求。服务在运行过程中会产生大量访问日志,通常使用户面临着集群中日志分散,数据量庞大等问题,因此如何有效地收集管理这些日志数据对业务的运维及运营都有着非常重要的意义。本文以 Nginx 访问日志为例,介绍如何使用日志服务接入 Nginx 日志。

Nginx 日志格式

Nginx 访问日志(access.log)的格式可以通过 log_format 命令来定义,例如下列格式:
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
各字段含义如下:
字段名
含义
remote_addr
客户端 IP 地址
remote_user
客户端名称
time_local
服务器本地时间
request
HTTP 请求方法及 url 地址
status
HTTP 请求状态码
body_bytes_sent
发送给客户端的字节数
http_referer
访问来源的页面链接地址
http_user_agent
客户端浏览器信息

操作步骤

步骤1:创建日志主题

1. 登录 日志服务控制台,在左侧导航栏中,单击日志主题,进入日志主题管理页面。
2. 选择日志主题的地域,单击创建日志主题
3. 在弹出的创建日志主题窗口中,填写相关信息,单击确定。 例如,创建一个名为 nginx_access 的日志主题,创建好的日志主题将会出现在日志主题列表中。

步骤2:创建机器组

说明
推荐使用日志服务采集器 LogListener 采集 Nginx 服务集群的日志,采集器下载安装请参见 LogListener 安装指南
1. 在左侧导航栏中,单击机器组管理,进入到机器组管理页面。
2. 选择合适的地域,单击新建机器组
3. 在弹出的窗口中,填写相关信息,单击确定。 例如,创建一个名为 nginx_group 的机器组。 一个机器组可以填入多个机器 IP 地址(每行一个 IP 地址)。如果机器是 CVM,直接填写内网 IP 地址即可,更多信息请参见 机器组管理

步骤3:增加采集配置

1. 在左侧导航栏中,单击日志主题,进入日志主题管理页面。
2. 单击步骤1中创建的日志主题 ID/名称,进入日志主题管理页面。
3. 选择采集配置页签,在该页签下单击 LogListener 采集配置右侧的“新增”按钮,然后选择“Nginx 日志”,在机器组管理中选择步骤2中创建的机器组。然后为该日志主题指定采集路径及日志提取模式。
说明
如下操作仅说明如何使用 LogListener 采集日志,更多采集方式请参见 采集概述
设置采集路径 例如,采集本地路径为/usr/local/webserver/nginx/logs/access.log的日志文件



配置提取模式 提取模式选择“Nginx 日志模板”,填写 Nginx 配置文件(通常为 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf)中的日志模板,通常以 log_format 开头,例如:
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
CLS 将根据上面的 Nginx 日志模板自动生成日志提取正则表达式,例如:
(\\S+)\\s*-\\s*(\\S+)\\s*\\[(\\d+\\S+\\d+:\\d+:\\d+:\\d+)\\s+\\S+\\]\\s*\\"(\\S+)\\s+(\\S+)\\s+\\S+\\"\\s*(\\S+)\\s*(\\S+)\\s*\\"([^"]*)\\"\\s*\\"([^"]*)\\".*
在样例日志中填写一条实际的 Nginx 日志,用来验证上述提取模式配置是否正确,例如:
59.x.x.x - - [06/Aug/2019:12:12:19 +0800] "GET /nginx-logo.png HTTP/1.1" 200 368 "http://119.x.x.x/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "-"
提取模式验证成功后,可为每个字段设定名称或直接使用默认值:



步骤4:索引配置

1. 完成采集配置后,在底部单击下一步,进入索引配置页面,建议直接使用默认配置,自动完成全文索引及键值索引的配置:


2. 在底部单击提交,完成索引配置。

步骤5:检索分析 Nginx 日志

1. 在左侧导航栏中,单击检索分析,进入检索分析页面。
2. 单击顶部的“日志集”和“日志主题”的下拉框,选择待检索的日志主题,即可查询到 Nginx 访问日志内容。
3. 更多检索分析示例语句可参见 Nginx 访问日志分析