本文介绍如何通过日志服务控制台采集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查询与分析页面,可以查询日志但无法分析日志,如何解决?

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