更新Logtail采集配置

更新时间:2025-03-17 02:31:04

通过UpdateConfig接口更新Logtail采集配置。

前提条件

您已完成以下操作:

参数说明

def update_logtail_config(self, project_name, config_detail):

请求参数

参数

类型

是否必填

说明

参数

类型

是否必填

说明

project_name

String

Project名称:项目(Project)是日志服务的资源管理单元,是进行多用户隔离与访问控制的主要边界。更多信息,请参见管理Project

config_detail

LogtailConfig

Logtail采集配置的信息。支持LogtailConfigGeneratorSeperatorFileConfigDetailSimpleFileConfigDetailFullRegFileConfigDetailJsonFileConfigDetailApsaraFileConfigDetailSyslogConfigDetail方法。

本示例使用SimpleFileConfigDetail方法生成简单文本日志采集配置对象。

SimpleFileConfigDetail参数说明

名称

类型

是否必填

说明

logstoreName

String

Logstore名称:Logstore是日志服务中日志数据的采集、存储和查询单元。更多信息,请参见管理Logstore

configName

String

Logtail采集配置名称在Project中全局唯一,且创建后不可修改。更多信息,请参见什么是Logtail

其命名规则如下:

  • 仅支持小写字母、数字、连字符(-)和下划线(_)。

  • 必须以小写字母或者数字作为开头和结尾。

  • 长度必须在 2~128 字符之间。

logPath

String

日志文件绝对路径。

filePattern

String

日志文件名称。支持使用通配符*

localStorage

bool

是否开启本地缓存。

  • True(默认):在logtail脱机时使用1GB的本地缓存。

  • False:不启用本地缓存。

enableRawLog

bool

是否上传原始日志。可选值如下:

  • True:上传原始日志。

  • False(默认):不上传原始日志。

topicFormat

String

Topic生成方式。可选值如下:

  • none(默认):不生成日志主题。

  • group_topic:将应用该Logtail配置的机器组的Topic作为日志主题。

  • 文件路径正则表达式:将日志文件路径的某一部分作为日志主题。例如/var/log/(.*).log

更多信息,请参见日志主题

fileEncoding

String

日志文件编码格式,取值为utf8gbk

maxDepth

int

设置日志最大目录监控深度。取值范围:0~1000,0代表只监控本层目录。

preserve

bool

如果一个日志文件在指定时间内没有任何更新,则认为该文件已超时。可选值如下:

  • True(默认):永不超时。

  • False:如果日志文件在30分钟内没有更新,则认为已超时,并不再监控该文件。

preserveDepth

String

当设置preserveFalse时,需指定最大超时目录深度,取值范围:1~3。

filterKey

List

用于过滤日志的字段。只有该字段的值满足filterRegex参数中设置的正则表达式时,对应的日志才会被采集。

filterRegex

String

filterKey对应的正则表达式。filterRegex中的元素个数和filterKey中的元素个数必须相同。

返回参数

返回参数请参见:UpdateConfig - 更新Logtail采集配置

示例代码

from aliyun.log import LogClient
from aliyun.log.logtail_config_detail import SimpleFileConfigDetail
import os

# 本示例从环境变量中获取AccessKey ID和AccessKey Secret
access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
access_key_secret = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')

# 日志服务的服务接入点
endpoint = "cn-hangzhou.log.aliyuncs.com"

client = LogClient(endpoint, access_key_id, access_key_secret)


project = "slsproject-1"
logstore = "logstore-1"
configName = logstore + "-stt1-logtail"
logPath = "/data/logs"
filePattern = "*_json.log"


# 更新简单文本采集配置
def main():
    try:
        config_detail = SimpleFileConfigDetail(logstore, configName, logPath, filePattern)
        res = client.update_logtail_config(project, config_detail)
        res.log_print()
    except Exception as error:
        print(error)


if __name__ == '__main__':
    main()

示例返回结果

UpdateLogtailConfigResponse:
headers: {'Server': 'AliyunSLS', 'Content-Length': '0', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Date': 'Fri, 22 Nov 2024 07:26:50 GMT', 'x-log-time': '1732260410', 'x-log-requestid': '6740323AFB9C5EFB9980****'}

Process finished with exit code 0

相关文档

  • 本页导读 (1)
  • 前提条件
  • 参数说明
  • 请求参数
  • SimpleFileConfigDetail参数说明
  • 返回参数
  • 示例代码
  • 示例返回结果
  • 相关文档