当您为Logstore关联了数据写入处理器后,可以通过处理器对日志数据进行处理。例如将某网站的访问日志(单行文本)采集到Logstore,您可以创建一个写入处理器,解析原始日志,提取出有效的日志字段,进行查询和分析。
前提条件
已有可用的ECS。具体操作,请参见云服务器ECS快速入门。
已开通日志服务。具体操作,请参见开通日志服务。
如果您使用的是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分钟左右,在日志查询页面可以查看解析之后的日志。