本快速入门在Windows环境下,演示配置Logtail采集阿里云ECS日志并投递日志到MaxCompute的基本流程。本快速入门涉及采集日志、实时查询、投递日志等日志服务基本功能,是日志服务的入门级操作指南。

背景信息

日志服务(Log Service)是阿里云提供的针对海量日志收集、存储、查询的平台化服务。您可以使用日志服务来集中收集服务器集群中所有的日志,并支持实时消费,实时查询和投递到OSS、MaxCompute等其他云产品做进一步分析。

日志服务操作流程

日志服务操作流程为:
  1. 开通日志服务并创建密钥对。具体请参见准备开始
  2. 采集日志数据。 具体请参见配置数据接入向导
    1. 创建项目和日志库。
    2. 创建机器组并进行配置。
    3. 设置Logtail采集配置。
    4. 设置索引。
  3. 查询与分析。具体请参见查询日志
  4. 数据加工。请参见创建数据加工规则
  5. 日志消费与投递。请参见实时消费日志投递

视频介绍阿里云日志服务快速指南

准备开始

  1. 开通日志服务。
    使用注册成功的阿里云账号登录 日志服务产品页,单击管理控制台
  2. 可选: 创建密钥对 。
    说明 如您需要通过SDK写入数据,请创建主账号或子账号密钥对。通过Logtail采集日志不需要创建密钥对。

    在日志服务管理控制台,将鼠标移至页面右上角您的用户名上方,在显示的菜单中单击AccessKey管理。创建密钥对(AccessKey),确认状态已设置为启用

    AccessKey管理
  3. 创建项目。
    当您第一次进入日志服务管理控制台,系统会提示您创建一个项目(Project)。您也可以通过单击创建Project进行操作。
    创建Project需要指定Project名称所属区域,请根据您的实际需求进行创建。创建项目
  4. 创建日志库。
    在Project创建完成的同时,系统会提示您创建一个日志库(以下称为Logstore)。您也可以进入该Project,通过单击页面左侧搜索框后的创建日志库图标进行操作。创建Logstore需要指定如何使用这些日志。创建日志库

配置数据接入向导

日志服务支持多种云产品、自建软件和自定义数据的日志收集。本文以采集分隔符文本日志为例,详细步骤及说明请参考文本日志采集流程

  1. 登录日志服务控制台
  2. 选择数据源类型。
    在日志服务首页的接入数据区域选择数据源类型。采集分隔符日志请选择分隔符-文本日志
  3. 选择日志空间。
    请选择Project和Logstore,您也可以直接单击立即创建新建Project和Logstore。具体步骤请参见准备流程

    如果您是通过日志库下的数据接入后的加号进入采集配置流程,系统会直接跳过该步骤。

  4. 创建机器组。
    在创建机器组之前,您需要首先确认已经安装了Logtail。 安装完Logtail后单击确认安装完毕创建机器组,具体请参见简介。如果您之前已经创建好机器组 ,也可以直接单击使用现有机器组
  5. 配置机器组。
    选择一个机器组,将该机器组从源机器组移动到应用机器组机器组配置
  6. Logtail配置。
    分隔符日志采集配置的Logtail配置项说明如下。
    配置项 详情
    配置名称 配置名称只能包含小写字母、数字、连字符(-)和下划线(_),且必须以小写字母和数字开头和结尾,长度为3~128字符。
    说明 配置名称设置后不可修改。
    日志路径 指定日志的目录和文件名。
    • 日志文件名支持完整文件名和通配符两种模式,文件名规则请参见Wildcard matching
    • 日志文件查找模式为多层目录匹配,即指定文件夹下所有符合文件名模式的文件都会被监控到,包含所有层次的目录。
      • 例如/apsara/nuwa/ … /*.log表示/apsara/nuwa目录中(包含该目录的递归子目录)后缀名为.log的文件。
      • 例如/var/logs/app_* … /*.log*表示/var/logs目录下所有符合app_*模式的目录中(包含该目录的递归子目录)文件名包含.log的文件。
      说明
      • 一个文件只能被一个配置收集。
      • 目录通配符只支持 *? 两种。
    是否为Docker文件 如果是Docker容器内部文件,可以直接配置内部路径与容器Tag,Logtail会自动监测容器创建和销毁,并根据Tag进行过滤采集指定容器的日志。
    模式 之前步骤我们选择的数据源是分隔符-文本日志,所以这里默认是分隔符模式,您也可以手动修改。
    日志样例 请务必使用实际场景的日志,方便日志服务控制台自动提取其中的正则匹配模式。
    分隔符 选择分隔符。
    请根据您的日志格式选择正确的分隔符否则日志数据会解析失败。
    说明 指定分隔符为不可见字符时,您需要查找不可见字符在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字段会作为KeyD的Value被上传到日志服务。如果配置采集时关闭了接受部分字段,该条日志会因字段与Key不匹配而被丢弃。

    使用系统时间 当打开提取字段开关时,需要设置。

    如果关闭,您需要在提取字段时指定某一字段(Value)为时间字段,并命名为 time。在选取 time 字段后,您可以单击时间转换格式中的自动生成 生成解析该时间字段的方式。关于日志时间格式的更多信息请参见配置时间格式

    丢弃解析失败日志 请选择解析失败的日志是否上传到日志服务。
    • 开启后,解析失败的日志不会上传到日志服务。
    • 关闭后,日志解析失败时上传原始日志。
    最大监控目录深度 指定从日志源采集日志时,监控目录的最大深度,即最多监控几层日志。最大目录监控深度范围0-1000,0代表只监控本层目录。
    分隔符采集配置
  7. 可选: 配置高级选项,设置完成后,单击下一步
    请根据您的需求选择高级配置。如没有特殊需求,建议保持默认配置。
    配置项 详情
    上传原始日志 请选择是否需要上传原始日志。开启该功能后,原始日志内容会作为__raw__字段与解析过的日志一并上传。
    Topic生成方式
    • 空-不生成Topic:默认选项,表示设置Topic为空字符串,在查询日志时不需要输入Topic即可查询。
    • 机器组Topic属性:设置Topic生成方式为机器组Topic属性,可以用于明确区分不同前端服务器产生的日志数据。
    • 文件路径正则:选择此项之后,您需要填写下方的自定义正则,用正则式从路径里提取一部分内容作为Topic。可以用于区分具体用户或实例产生的日志数据。
    自定义正则 如您选择了文件路径正则方式生成Topic,需要在此处填写您的自定义正则式。
    日志文件编码
    • utf8:指定使用UTF-8编码。
    • gbk:指定使用GBK编码。
    时区属性 设置采集日志时,日志时间的时区属性。
    • 机器时区:默认为机器所在时区。
    • 自定义时区:手动选择时区。
    超时属性 如果一个日志文件在指定时间内没有任何更新,则认为该文件已超时。您可以对超时属性指定以下配置。
    • 永不超时:指定持续监控所有日志文件,永不超时。
    • 30分钟超时:如日志文件在30分钟内没有更新,则认为已超时,并不再监控该文件。
    过滤器配置 日志只有完全符合过滤器中的条件才会被收集。
    例如:
    • 满足条件即收集:配置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
  8. 查询分析设置。
    默认已经设置好索引,您也可以根据业务需求,重新设置索引,具体请参见开启并配置索引
    • 全文索引

      您可以选择开启全文索引,是否包含中文,并确认是否启用大小写敏感、确认分词符内容。

    • 字段索引属性

      单击字段名称下方的加号新增一行,填写字段名称类型别名大小写敏感分词符、选择是否包含中文开启统计

    说明
    • 全文索引和字段索引属性必须至少启用一种。同时启用时,以字段索引属性为准。
    • 索引类型为long/double时,大小写敏感和分词符属性无效。
    • 如何设置索引请参考开启并配置索引。个别字段为日志服务保留字段,请知悉。
    • 如需使用Nginx模板或消息服务模板,请在查询界面的查询分析属性中配置。
    图 1. 查询分析
    查询分析
    完成以上步骤后,日志服务开始收集阿里云ECS上的日志,您可以通过控制台和API/SDK对已收集的日志进行实时消费。
    说明
    • Logtail配置推送生效时间最长需要3分钟,请耐心等待。
    • Logtail收集错误可以参见诊断采集错误
  9. 可选: 日志投递。

    日志服务不仅支持对多种来源、格式的数据进行批量采集和管理维护,还支持将日志数据投递到OSS、MaxCompute等云产品进行计算分析。

    如您需要投递日志到OSSMaxCompute,请单击对应的立即尝试按钮。

    本文档以投递MaxCompute为例。为把日志服务内的日志投递到MaxCompute,您需要首先准备好相应的MaxCompute环境。

    1. 开通MaxCompute服务。
      您需要在阿里云MaxCompute控制台上启用MaxCompute服务。
    2. 创建存储投递日志的MaxCompute表。
      请参见通过日志服务投递日志到MaxCompute了解表的结构和相关注意事项。
    3. 在日志服务控制台的日志库页面选择需要投递的日志库名称并依次展开节点,日志库名称 > 数据处理 > 导出 > MaxCompute,单击开启投递
    4. LogHub —— 数据投递页面配置投递大数据计算服务MaxCompute的相关内容。
      图 2. 开启投递
      开启投递
      说明 __source____time____topic____extract_others____partition_time__是日志服务的系统保留字段,建议使用。对于映射配置的限制详情请参见通过日志服务投递日志到MaxCompute
    5. 单击确认即可开始投递。

查询日志

配置数据接入向导中配置了索引,可以对采集到的日志数据进行实时查询与SQL分析。

请返回至概览页面,单击日志库名称后的日志库管理图标图标,选择查询分析后进入查询界面。输入关键字、Topic或者查询分析语句,并设定日志时间范围、单击查询/分析来查询日志,详细说明请参考查询日志

另外,日志服务支持上下文查询快速查询快速分析等查询功能,还支持通过SQL语句获取多种格式的分析图表、通过仪表盘自制数据分析大盘等多种方式的可视化分析手段,更多功能请参考其他功能

例如,查询指定时间段的PV,并以表格形式表示。查询日志