日志服务支持通过控制台数据接入向导一站式配置正则模式采集日志与设置索引。

背景信息

如果需要对内容做更多个性化的字段提取设置(例如跨行日志,提取字段等),选择完整正则模式即可进行个性化定制。日志服务在数据采集向导中提供了基于日志样例生成正则表达式的功能,但鉴于日志样例的多样性,该表达式需要多次手动调试才能完全符合日志样例。如何调试正则表达式,请参见如何调试正则表达式

本章节主要介绍正则模式的Logtail配置部分,关于其他采集步骤的详细说明请参见文本日志采集流程

采集步骤

  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进行过滤采集指定容器的日志。
    模式 之前步骤我们选择的数据源是正则-文本文件,所以这里默认是完整正则模式,您也可以手动修改。
    单行模式 默认为使用单行模式,即按照一行为一条日志进行分割,如果需要收集跨行日志(例如 Java 程序日志),需要关闭单行模式,然后设置 行首正则表达式
    日志样例 请务必使用实际场景的日志,方便日志服务控制台自动提取其中的正则匹配模式。
    行首正则表达式 提供自动生成手动输入两种功能。填写完日志样例后,单击自动生成即会生成正则;如果无法自动生成,可以切换为手动模式输入进行验证。
    提取字段 如果需要对日志内容中的字段单独分析处理,可以使用提取字段功能将指定字段变成 Key-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. 查询分析配置。
    默认已经设置好索引,您也可以根据业务需求,重新设置索引。具体请参见开启并配置索引

配置完成后您就可以开始通过正则模式采集日志。