本文介绍如何通过Logtail采集阿里云ECS日志,并在日志服务控制台上进行查询分析。

前提条件

  • 已注册阿里云账号,并完成实名认证,详情请参见创建阿里云账号
  • 已开通日志服务。

    首次登录日志服务控制台时,根据页面提示开通日志服务。

  • 在需要创建Project的地域,已有可用的云服务器ECS,详情请参见创建ECS实例

步骤1:创建Project和Logstore

在采集日志前,先创建Project和Logstore。

  1. 登录日志服务控制台
  2. 创建Project。
    1. Project列表区域,单击创建Project
    2. 创建Project对话框中,配置如下参数。
      参数 说明
      Project名称 Project名称在阿里云地域内全局唯一,创建后不能修改。
      注释 Project的简单注释。
      所属地域 请根据日志来源及其他实际情况选择合适的阿里云地域。

      如果您要采集ECS日志,建议选择与ECS相同的地域,即可使用阿里云内网收集日志,加快日志采集速度。

      创建Project后,无法修改其所属地域,且日志服务不支持Project跨地域迁移,请谨慎选择Project所属地域。不同地域对应的Endpoint请参见服务入口

    3. 单击确定,完成创建。
  3. 创建Logstore。
    创建Project完成后,系统会提示您创建一个Logstore,具体参数说明如下所示。
    参数 说明
    Logstore名称 Logstore名称在其所属Project内必须唯一,创建后不能修改。
    WebTracking WebTracking支持从HTML、H5、iOS或Android平台采集数据到日志服务。默认为关闭状态。
    永久保存 开启该功能后,日志服务将永久保存采集到的日志,默认为关闭状态。
    说明 通过API方式获取数据保存时间时,如果对应值为3650则表示永久保存。
    数据保存时间 未开启永久保存时,需设置数据保存时间

    日志服务采集的日志在Logstore中的保存时间,单位为天,取值范围:1~3000。超过该时间后,日志会被删除。

    Shard数目 日志库的分区数量,每个Logstore可以创建1~10个分区。每个Project中最多创建200个分区。
    自动分裂shard 当数据量超过已有Shard的服务能力后,开启自动分裂功能可自动根据数据量增加分区数量,默认为开启状态。详情请参见管理Shard
    最大分裂数 开启自动分裂shard后,Shard自动分裂的最大数目,最大为64。
    记录外网IP 开启该功能后,日志服务采集到日志后,自动把以下信息添加到日志的Tag字段中。
    • __client_ip__:日志来源设备的公网IP地址。
    • __receive_time__:日志到达服务端的时间,格式为Unix时间戳。

步骤2:采集数据

本文以分隔符模式为例进行采集说明。

  1. 接入数据区域,选择分隔符-文本日志
  2. 选择日志空间页签中,选择目标Project和Logstore,单击下一步
    您也可以单击立即创建,重新创建Project和Logstore。
  3. 创建机器组页签中,创建机器组。
  4. 机器组配置页签中,应用机器组。
    选择一个机器组,将该机器组从源机器组移动到应用机器组
  5. Logtail配置页签中,创建Logtail配置。
    参数 说明
    配置名称 Logtail配置的名称,设置后不可修改。

    您也可以单击导入其他配置,导入其他Project中已创建的Logtail配置。

    日志路径 指定日志的目录和文件名。
    日志文件名支持完整文件名和通配符两种模式,文件名规则请参见Wildcard matching。日志文件查找模式为多层目录匹配,即指定目录(包含所有层级的目录)下所有符合条件的文件都会被查找到。例如:
    • /apsara/nuwa/ … /*.log表示/apsara/nuwa目录(包含该目录的递归子目录)中后缀名为.log的文件。
    • /var/logs/app_* … /*.log*表示/var/logs目录下所有符合app_*模式的目录(包含该目录的递归子目录)中包含.log的文件。
    说明
    • 一个文件只能被一个Logtail配置采集。
    • 目录通配符只支持星号(*)和问号(?)。
    是否为Docker文件 如果是Docker文件,可以直接配置容器内部路径与容器Tag,Logtail会自动监测容器的创建和销毁,并根据Tag进行过滤采集指定容器的日志。关于容器文本日志采集请参见通过DaemonSet-控制台方式采集Kubernetes文件
    设置采集黑名单 开启该功能后,可设置黑名单配置。黑名单配置可在采集时忽略指定的目录或文件,目录和文件名支持完整匹配,也支持通配符模式匹配。例如:
    • 选择按目录路径,路径为/tmp/mydir,则在采集时过滤掉该目录下的所有文件。
    • 选择按文件路径,路径为/tmp/mydir/file,则在采集时过滤掉该文件。
    模式 默认为分隔符模式,可修改为其它模式,其他模式的配置请参见概述
    日志样例 请根据实际场景输入一条日志样例,分隔符模式只适用于采集单行日志。
    分隔符 请根据您的日志格式选择正确的分隔符,否则日志数据会解析失败。
    说明 指定分隔符为不可见字符时,您需要查找不可见字符在ASCII码中对应的十六进制数,输入的格式为0x不可见字符在ASCII码中对应的十六进制数。例如ASCII码中排行为1的不可见字符填写为0x01
    引用符 请根据您的日志格式选择正确的引用符,否则日志数据会解析失败。
    说明 指定引用符为不可见字符时,您需要查找不可见字符在ASCII码中对应的十六进制数,输入的格式为0x不可见字符在ASCII码中对应的十六进制数。例如ASCII码中排行为1的不可见字符填写为0x01
    日志抽取内容 日志服务会根据您输入的日志样例及选择的分隔符提取日志内容,并将其定义为Value,您需要分别为Value指定对应的Key。
    是否接受部分字段 配置采集后,若日志中分割出的字段数少于配置的Key数量,是否上传已解析的字段。开启表示上传,关闭表示丢弃本条日志。
    例如,日志为11|22|33|44|55,设置分隔符为|,日志内容会被解析为1122334455,为其分别设置Key为ABCDE
    • 如果开启接受部分字段,采集日志11|22|33|55时,55会作为Key D的Value被上传到日志服务。
    • 如果关闭接受部分字段,该条日志会因字段与Key不匹配而被丢弃。
    使用系统时间
    • 开启使用系统时间,则日志时间为采集日志时,Logtail所在主机的系统时间。
    • 关闭使用系统时间,则需要在日志抽取内容中指定某一个Value为时间字段,并命名为time。选取时间字段后,您可以单击时间转换格式中的自动生成生成解析该时间字段的方式。关于日志时间格式的更多信息请参见时间格式
    丢弃解析失败日志
    • 开启丢弃解析失败日志,解析失败的日志不上传到日志服务。
    • 关闭丢弃解析失败日志,日志解析失败时上传原始日志。
    最大监控目录深度 设置日志目录被监控的最大深度。最大深度范围:0~1000,0代表只监控本层目录。
    请根据您的需求选择高级配置。如没有特殊需求,建议保持默认配置。
    参数 详情
    启用插件处理 请选择是否启用Logtail处理。开启该功能后,使用Logtail插件处理日志,具体配置请参见处理数据
    上传原始日志 开启该功能后,原始日志内容作为__raw__字段与解析过的日志一起上传到日志服务。
    Topic生成方式
    • 空-不生成Topic:默认选项,表示设置Topic为空字符串,在查询日志时不需要输入Topic即可查询。
    • 机器组Topic属性:设置为机器组Topic属性,用于明确区分不同服务器产生的日志数据。
    • 文件路径正则:设置为文件路径正则,则需要配置自定义正则,用正则表达式从路径里提取一部分内容作为Topic。用于区分不同用户或实例产生的日志数据。
    日志文件编码
    • utf8:指定使用UTF-8编码。
    • gbk:指定使用GBK编码。
    时区属性 设置采集日志时,日志时间的时区属性。
    • 机器时区:默认为机器所在时区。
    • 自定义时区:手动选择时区。
    超时属性 如果一个日志文件在指定时间内没有任何更新,则认为该文件已超时。
    • 永不超时:持续监控所有日志文件,永不超时。
    • 30分钟超时:如果日志文件在30分钟内没有更新,则认为已超时,并不再监控该文件。

      选择30分钟超时时,还需配置最大超时目录深度,范围为1~3。

    过滤器配置 只采集完全符合过滤器中的条件的日志。例如:
    • 满足条件即采集:配置Key:level Regex:WARNING|ERROR,表示只采集level为WARNING或ERROR类型的日志。
    • 过滤不符合条件的数据
      • 配置为Key:level Regex:^(?!.*(INFO|DEBUG)).*,表示不收集level为INFO或DEBUG类型的日志。
      • 配置为Key:url Regex:.*^(?!.*(healthcheck)).*,表示不采集URL中带有healthcheck的日志,例如key为url,value为/inner/healthcheck/jiankong.html的日志将不会被采集。

    更多示例请参见regex-exclude-wordregex-exclude-pattern

  6. 查询分析配置页签中,设置索引。
    默认已设置索引,您也可以根据业务需求,重新设置索引,具体请参见开启并配置索引
    说明
    • 全文索引和字段索引属性必须至少启用一种。同时启用时,以字段索引属性为准。
    • 索引类型为long、double时,大小写敏感和分词符属性无效。
完成以上步骤后,日志服务开始采集ECS日志。
说明
  • Logtail配置生效时间最长需要3分钟,请耐心等待。
  • 如果遇到Logtail采集报错,请参见诊断采集错误

步骤3:查询日志

日志服务支持通过查询分析语句对日志进行实时查询与分析。

  1. Project列表区域,单击目标Project。
  2. 日志存储 > 日志库页签中,单击目标Logstore。
  3. 输入查询分析语句,选择时间范围,单击查询/分析
    • 日志服务支持上下文查询、快速查询、快速分析、日志聚类、LiveTail等功能,详情请参见查询语法与功能
    • 日志服务支持通过查询分析语句获取多种格式的分析图表,详情请参见统计图表
    • 日志服务支持通过仪表盘自制数据分析大盘,详情请参见仪表盘

后续操作

  • 投递数据:您可以将采集到的数据投递到OSS、Maxcompute、EMR等云产品中进行存储或计算分析,详情请参见数据投递
  • 消费数据:您可以将采集到的数据进行消费,详情请参见实时消费
  • 数据加工:您可以将采集到的数据进行加工,实现数据的规整、富化、分发、汇总等操作,详情请参见数据加工