当您为Logstore关联了数据写入处理器后,可以通过处理器对日志数据进行处理。例如将某网站的访问日志(单行文本)采集到Logstore,您可以创建一个写入处理器,解析原始日志,提取出有效的日志字段,进行查询和分析。
操作视频
前提条件
已有可用的ECS。具体操作,请参见云服务器ECS快速入门。
已开通日志服务。具体操作,请参见开通日志服务。
如果您使用的是RAM用户,需要先授予RAM用户数据写入处理器的操作权限。具体操作,请参见授权RAM用户进行数据处理。
方案概览
本方案通过Logtail的方式采集Nginx访问日志,然后通过写入处理器将单行日志解析成${key}:${value}格式,最后将日志输出到Logstore,具体流程如下:
Logtail采集日志:开通日志服务,使用Logtail采集ECS主机Nginx日志,将日志采集到Logstore中。
配置写入处理器:配置SPL语句对原始日志进行解析。
关联写入处理器:Logstore关联目标写入处理器,新产生的日志在写入Logstore之前,经过写入处理器完成解析,解析后的日志写入到Logstore进行查询和分析。
1. Logtail采集日志
1.1 创建Project和Logstore
登录日志服务控制台。
创建Project。
在Project列表区域,单击创建Project,例如创建地域为
菲律宾(马尼拉),名称为web-project-test的Project。详细配置,请参见管理Project。
创建Logstore。
创建Project完成后,系统会提示您创建一个Logstore。比如创建名称为
website_log的Logstore。详细配置,其请参见管理Logstore。
1.2 采集Nginx访问日志
某网站将其Nginx访问日志存储在ECS主机的/var/log/nginx/access.log中,日志默认单行输出,access.log内容如下:
192.168.1.75 - David [2024-07-31T14:27:24+08:00] "PUT /request/path-0/file-8 HTTP/1.1" 819 21577 403 73895 www.test5.com www.test2.com "Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1"使用Logtail采集ECS主机Nginx日志,操作步骤,请参见采集主机文本日志。将/var/log/nginx/access.log的日志采集到website_log,查询/分析如下图。

您也可以使用SDK的方式进行采集,详细请参见Java SDK快速入门。更多信息,请参见数据采集概述。
2. 配置写入处理器
2.1 进入数据处理器页
在Project列表区域,单击
web-project-test。
在左侧导航栏单击。

2.2 创建写入处理器
在页签,单击创建。

在创建处理器面板,参考下图配置,然后单击确定。

SPL配置如下,写入处理器处理数据基于SPL实现。更多SPL信息,请参见SPL语法。
* | parse-regexp content, '(\S+)\s-\s(\S+)\s\[(\S+)\]\s"(\S+)\s(\S+)\s(\S+)"\s(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\S+)\s(\S+)\s"(.*)"' as remote_addr, remote_user, time_local, request_method, request_uri, http_protocol, request_time, request_length, status, body_bytes_sent, host, referer, user_agent | project-away content | extend __topic__ = request_method
3. 关联写入处理器
3.1 Logstore关联写入处理器
在左侧导航栏,单击日志存储,将鼠标悬浮在上
website_log上,单击。
在
website_log属性页面,单击右上角修改,在编辑状态下配置写入处理器,选择您创建的解析Nginx日志写入处理器,然后单击保存。
3.2 查询和分析
在左侧导航栏单击日志存储,在日志查询页面,查看解析之后的日志,如下图。
关联写入处理器之后,会对新产生的日志生效,您需要等待1分钟左右,在日志查询页面可以查看解析之后的日志。
