本文介绍如何通过Logtail完整正则模式采集ECS日志,并对日志进行查询与分析。
前提条件
- 已有可用的ECS。更多信息,请参见云服务器ECS快速入门。
- ECS服务器持续产生日志。重要 Logtail只采集增量日志。如果下发Logtail配置后,日志文件无更新,则Logtail不会采集该文件中的日志。更多信息,请参见读取文件。
背景信息
本示例中待采集的日志路径为/var/log/nginx/access.log,日志样例为127.0.0.1 - - [10/Jun/2022:12:36:49 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
。针对该日志样例,本文介绍通过完整正则模式采集的操作步骤。步骤一:开通日志服务
步骤二:创建Project和Logstore
- 创建Project。
- 创建Logstore。创建Project完成后,系统会提示您创建一个Logstore。
在创建Logstore面板中,按照如下说明配置参数,其他参数均可保持默认配置。更多信息,请参见创建Logstore。
参数 描述 Logstore名称 Logstore的名称,在其所属Project内必须唯一。创建Logstore成功后,无法更改其名称。 Shard数目 日志服务使用Shard读写数据。 一个Shard提供的写入能力为5 MB/s、500次/s,读取能力为10 MB/s、100次/s。如果一个Shard就能满足您的业务需求,您可配置Shard数目为1。
自动分裂Shard 开启自动分裂功能后,如果您写入的数据量超过已有Shard服务能力,日志服务会自动根据数据量增加Shard数量。 如果您确保配置的Shard数量已满足业务需求,可关闭自动分裂Shard开关。
步骤三:采集日志
创建Logstore成功后,系统将提示您接入数据。
重要 默认情况下,一个日志文件只能匹配一个Logtail配置。如果文件中的日志需要被采集多份,请参见如何实现文件中的日志被采集多份。
- 在创建成功对话框中,单击确定。
- 在快速数据接入对话框的自建开源/商业软件页签下,单击正则-文本日志。
- 安装Logtail。
- 创建IP地址类型的机器组,单击下一步。按照如下说明配置参数,其他参数均可保持默认配置。更多信息,请参见创建IP地址机器组。
参数 说明 名称 机器组的名称,在其所属Project内必须唯一。创建机器组成功后,无法更改其名称。 IP地址 ECS服务器IP地址。多个IP地址之间请用换行符分隔。 重要 请勿将Windows机器和Linux机器添加到同一机器组中。 - 选中目标机器组,将该机器组从源机器组移动到应用机器组,单击下一步。
- 创建Logtail采集配置,单击下一步。按照如下说明配置参数,其他参数均可保持默认配置。更多信息,请参见使用完整正则模式采集日志。
参数 描述 配置名称 Logtail采集配置的名称,在其所属Project内必须唯一。创建Logtail采集配置成功后,无法修改其名称。 日志路径 根据日志在服务器上的位置,设置日志目录和文件名称。 - 如果是Linux系统中的日志路径,必须以正斜线(/)开头,例如/apsara/nuwa/.../app.Log。
- 如果是Windows系统中的日志路径,必须以盘符开头,例如C:\Program Files\Intel\...\*.Log。
目录名和文件名支持完整名称和通配符模式,文件名规则请参见Wildcard matching。日志文件查找模式为多层目录匹配,即指定目录(包含所有层级的目录)下所有符合条件的文件都会被查找到。例如:- /apsara/nuwa/**/*.log表示/apsara/nuwa目录(包含该目录的递归子目录)中后缀名为.log的文件。
- /var/logs/app_*/**/*.log表示/var/logs目录下所有符合app_*格式的目录(包含该目录的递归子目录)中后缀名为.log的文件。
- /var/log/nginx/**/access*表示/var/log/nginx目录(包含该目录的递归子目录)中以access开头的文件。
说明 日志路径通配符只支持星号(*)和半角问号(?)。- 星号(*)表示匹配多个任意字符。
- 半角问号(?)表示匹配单个任意字符。
日志样例 根据实际场景输入一条日志样例。例如: 127.0.0.1 - - [10/Jun/2022:12:36:49 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
提取字段 打开提取字段开关后,可通过正则表达式将日志内容提取为键值对。 正则 打开提取字段开关后,需要配置。 - 自动生成正则表达式
在日志样例文本框中,选中需要提取的日志内容,单击生成正则,自动生成正则表达式。例如
(\S+)\s-\s(\S+)\s\[([^]]+)]\s"(\w+)([^"]+)"\s(\d+)\s(\d+)[^-]+([^"]+)"\s"([^"]+).*
。 - 手动输入正则表达式
单击手动输入正则表达式,手动配置正则表达式。配置完成后,单击验证即可验证您输入的正则表达式是否可以解析、提取日志样例。更多信息,请参见如何调试正则表达式。
日志抽取内容 打开提取字段开关后,需要配置。 通过正则表达式将日志内容提取为Value后,您需要为每个Value设置对应的Key。
参数配置完成后,单击下一步,日志服务开始采集日志。说明- Logtail配置生效时间最长需要3分钟,请耐心等待。
- 如果遇到Logtail采集报错,请参见如何查看Logtail采集错误信息、日志服务采集数据常见的错误类型。
- 预览数据及创建索引,然后单击下一步。日志服务默认开启全文索引。您也可以根据采集到的日志,手动创建字段索引,或者单击自动生成索引,日志服务将自动生成字段索引。更多信息,请参见创建索引。重要 如果您要查询和分析日志,那么全文索引和字段索引必须至少启用一种。同时启用时,以字段索引为准。
步骤四:查询与分析日志
配置索引后,您可以查询与分析日志。
- 在配置向导的结束步骤中,单击查询日志。您需要等待1分钟左右,待索引生效后,才能在原始日志页签中,查看已采集到的日志。更多信息,请参见查询和分析日志。
- 在目标Logstore的查询与分析页面,输入查询与分析语句,选择时间范围。
常见问题
- 仅创建Project和Logstore,会产生费用吗?
当您在创建Logstore时,日志服务默认预留Shard资源,因此可能产生活跃Shard租用费用。更多信息,请参见为什么会产生活跃Shard租用费用?。
- 采集日志失败,如何排查?
使用Logtail采集日志失败,可能是因为Logtail心跳异常、采集错误、Logtail采集配置错误等原因。如何排查,请参见Logtail采集日志失败的排查思路。
- 在Logstore查询与分析页面,可以查询日志但无法分析日志,如何解决?
如果您要分析日志,需要为日志字段配置字段索引并开启统计功能。更多信息,请参见创建索引。