全部产品

    生成主题

    更新时间:2021-02-03 14:02:19

    日志可以通过日志主题(Topic)来划分。您可以在写入时指定日志主题,并在查询时指定查询的日志主题。

    Topic生成方式

    用户可以在Logtail收集日志时设置Topic,也可以使用API/SDK上传数据时设置Topic。目前支持通过控制台设置Topic生成方式为空-不生成Topic机器组Topic属性文件路径正则

    • 空-不生成Topic

      通过控制台配置Logtail收集文本文件时,日志Topic生成方式默认为空-不生成Topic,即Topic为空字符串,在查询日志时不需要输入Topic即可查询。

    • 机器组Topic属性

      该方式用于明确区分不同服务器产生的日志数据。如果您的不同服务器日志数据均保存在相同文件路径或相同文件中,当您需要在收集日志时通过Topic区分不同服务器的日志数据,可以将机器分为不同的机器组,即在创建机器组时,为不同的机器组设置不同的Topic属性,并设置Topic生成方式机器组Topic属性。将机器组应用之前创建的Logtail配置后,即完成对应配置。

      如选择机器组Topic属性,Logtail上报数据时会将机器所在机器组的Topic属性作为主题名称上传至日志服务,在查询日志时需要指定Topic,即需要指定目标机器组Topic属性为查询条件。

    • 文件路径正则
      • 该方式用于区分具体用户或实例产生的日志数据。如果服务日志根据不同的用户或者实例将日志记录在不同目录下面,但是只要下级目录、日志文件名称相同,日志服务在收集日志文件时就无法明确区分日志内容是由那个用户哪个产生的。此时可以设置Topic生成方式文件路径正则,并且输入文件路径的正则表达式(此处的正则表达式需要完整匹配文件路径),配置Topic为实例名称。
      • 当选择文件路径正则主题生成方式时,Logtail上报数据时会将实例名称作为主题名称上传至日志服务。根据您的目录结构和配置,会生成不同的Topic,在查询日志时需要指定主题名称为实例名称。例如,在以下目录结构中,根据不同的用户或者实例将日志记录在不同目录下面。
        /logs
          | - /userA/serviceA
            | - service.log
          | - /userB/serviceA
            | - service.log
          | - /userC/serviceA
            | - service.log
      • 如果文件路径中有多个字段需要单独提取,可以使用多层提取方式,多层提取使用?P<key>的方式 (key只支持小写字母和数字的组合)。例如:
        /home/admin/serviceA/userB/access.log
        \/home\/admin\/(?P<service>[^\/]+)/(?P<user>[^/]+)/.*
        则日志会带上自定义的tag:
        "__tag__ : service : serviceA"
        "__tag__ : user : userB"
        说明 支持的Logtail版本为0.16.19及以上版本。
      • 如果仅配置文件路径为/logs,文件名称为service.log,将三个service目录下的日志内容实时收集至服务端,但是无法明确区分日志内容具体由哪个用户或者实例产生。此时可以另外设置Topic生成方式文件路径正则,并且输入正则表达式\/(.*)\/serviceA\/.*提取实例名称。设置后会为不同目录下的日志生成不同的Topic,分别为“userA”、“userB”和“userC”,查询日志时可以指定Topic查询。
      说明 文件路径的正则表达式中,需要对字符/进行转义。
    • 静态主题生成

      设置Topic生成方式文件路径正则,在自定义正则中输入customized:// + 自定义主题名即可。

      说明 支持的Logtail版本为0.16.21及以上版本。

    设置日志Topic

    1. 根据文本日志采集流程,通过控制台配置Logtail。

      如您需要配置Topic生成方式为机器组Topic属性,请在创建机器组/修改机器组页面中配置机器组Topic
    2. 在接入数据时的Logtail配置步骤中,展开高级选项,在Topic生成方式中选择Topic的生成方式。