本文介绍如何通过日志服务控制台采集ECS日志,并对日志进行查询与分析。

前提条件

背景信息

本示例中待采集的日志路径为/var/log/nginx/access.log,日志样例为127.0.0.1|#|-|#|13/Apr/2020:09:44:41 +0800|#|GET /1 HTTP/1.1|#|0.000|#|74|#|404|#|3650|#|-|#|curl/7.29.0。针对该日志样例,本示例选择分隔符模式进行采集。

步骤一:开通日志服务

  1. 登录日志服务控制台
  2. 根据页面提示,开通日志服务。

步骤二:创建Project和Logstore

  1. 登录日志服务控制台
  2. 创建Project。
    1. 在Project列表区域,单击创建Project
    2. 创建Project面板中,按照如下说明配置参数,其他参数均可保持默认配置。
      参数 描述
      Project名称 Project的名称,全局唯一。创建Project成功后,无法更改其名称。
      所属地域 Project的数据中心。建议选择与ECS相同的地域,即可使用阿里云内网采集日志,加快采集速度。

      创建Project后,无法修改其所属地域,且日志服务不支持跨地域迁移Project。

    3. 单击确定
  3. 创建Logstore。
    创建Project完成后,系统会提示您创建一个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开关。

步骤三:采集日志

  1. 接入数据区域,单击分隔符-文本日志
  2. 选择目标Project和Logstore,单击下一步
  3. 安装Logtail。
    1. ECS机器页签中,选中目标ECS实例,单击立即执行
    2. 确认执行状态成功后,单击确认安装完毕
  4. 创建IP地址类型的机器组,单击下一步
    按照如下说明配置参数,其他参数均可保持默认配置。
    参数 说明
    名称 机器组的名称,在其所属Project内必须唯一。创建机器组成功后,无法更改其名称。
    IP地址 ECS服务器IP地址。多个IP地址之间请用换行符分隔。
    注意 请勿将Windows机器和Linux机器添加到同一机器组中。
  5. 选中目标机器组,将该机器组从源机器组移动到应用机器组,单击下一步
    注意 如果创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
  6. 创建Logtail配置,单击下一步
    按照如下说明配置参数,其他参数均可保持默认配置。
    参数 描述
    配置名称 Logtail配置的名称,在其所属Project内必须唯一。创建Logtail配置成功后,无法修改其名称。
    日志路径 待采集的日志的目录和文件名。
    日志文件名支持完整文件名和通配符两种模式,文件名规则请参见Wildcard matching。日志文件查找模式为多层目录匹配,即指定目录(包含所有层级的目录)下所有符合条件的文件都会被查找到。例如:
    • /apsara/nuwa/…/*.log表示/apsara/nuwa目录(包含该目录的递归子目录)中后缀名为.log的文件。
    • /var/logs/app_*/*.log表示/var/logs目录下所有符合app_*模式的目录(包含该目录的递归子目录)中包含.log的文件。
    说明
    • 默认情况下,一个文件只能被一个Logtail配置采集。
    • 目录通配符只支持星号(*)和问号(?)。
    日志样例 根据实际场景输入一条日志样例。例如:
    127.0.0.1|#|-|#|13/Apr/2020:09:44:41 +0800|#|GET /1 HTTP/1.1|#|0.000|#|74|#|404|#|3650|#|-|#|curl/7.29.0
    分隔符 根据您的日志格式配置分隔符。例如:|#|
    说明 指定引用符为不可见字符时,您需要查找不可见字符在ASCII码中对应的十六进制数,输入的格式为0x不可见字符在ASCII码中对应的十六进制数。例如:ASCII码中排行为1的不可见字符填写为0x01
    日志抽取内容 日志服务会根据您输入的日志样例及选择的分隔符提取日志内容,并将其定义为Value,您需要为Value指定对应的Key。
    单击下一步即表示创建Logtail配置完成,日志服务开始采集日志。
    说明
    • Logtail配置生效时间最长需要3分钟,请耐心等待。
    • 如果遇到Logtail采集报错,请参见诊断采集错误
  7. 配置索引。
    说明
    • 索引只对新写入的日志数据生效。
    • 如果您要查询与分析日志,则必须配置字段索引并开启统计功能。更多信息,请参见配置索引
    1. 预览数据区域显示所采集到的日志后,单击自动生成索引
    2. 自动生成索引属性对话框中确认索引数据无误后,单击确认
    3. 单击下一步

步骤四:查询与分析日志

  1. 在Project列表区域,单击目标Project。
  2. 日志存储 > 日志库页签中,单击目标Logstore。
  3. 输入查询与分析语句,选择时间范围,单击查询/分析
    例如:执行如下查询与分析语句统计最近1天访问IP地址的来源情况,并通过表格展示查询与分析结果。
    • 查询与分析语句
      * | select count(1) as c, ip_to_province(remote_addr) as address group by address limit 100

      关于查询与分析语句的更多信息,请参见查询概述分析概述

    • 查询与分析结果

      如下图表示最近1天内有329个访问来自广东省,313个访问来自北京市。日志服务支持通过可视化图表展示查询与分析结果。更多信息,请参见统计图表

      统计结果

常见问题

  • 仅创建Project和Logstore,会产生费用吗?

    当您在创建Logstore时,日志服务默认预留Shard资源,因此可能产生活跃Shard租用费用。更多信息,请参见为什么会产生活跃Shard租用费用

  • 采集日志失败,如何排查?

    使用Logtail采集日志失败,可能是因为Logtail心跳异常、采集错误、Logtail配置错误等原因。如何排查,请参见Logtail采集日志失败的排查思路

  • 在Logstore查询与分析页面,可以查询日志但无法分析日志,如何解决?

    如果您要分析日志,需要为日志字段配置字段索引并开启统计功能。更多信息,请参见配置索引