全部產品
Search
文件中心

Simple Log Service:建立Logtail採集配置

更新時間:Feb 06, 2025

通過CreateConfig介面建立Logtail採集配置。

前提條件

您已完成以下操作:

參數說明

def create_logtail_config(self, project_name, config_detail):

請求參數

參數

類型

是否必填

說明

project_name

String

Project名稱:專案(Project)是Log Service的資源嵌入式管理單元,是進行多使用者隔離與存取控制的主要邊界。更多資訊,請參見管理Project

config_detail

LogtailConfig

Logtail採集配置的資訊。支援LogtailConfigGeneratorSeperatorFileConfigDetailSimpleFileConfigDetailFullRegFileConfigDetailJsonFileConfigDetailApsaraFileConfigDetailSyslogConfigDetail方法。

本樣本使用SimpleFileConfigDetail方法產生簡單文本日誌採集設定物件。

SimpleFileConfigDetail參數說明

名稱

類型

是否必填

說明

logstoreName

String

Logstore名稱:Logstore是Log Service中日誌資料的採集、儲存和查詢單元。更多資訊,請參見管理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作為日誌主題。

  • 檔案路徑Regex:將記錄檔路徑的某一部分作為日誌主題。例如/var/log/(.*).log

更多資訊,請參見日誌主題

fileEncoding

String

日誌檔案編碼格式,取值為utf8gbk

maxDepth

int

設定日誌最大目錄監控深度。取值範圍:0~1000,0代表只監控本層目錄。

preserve

bool

如果一個記錄檔在指定時間內沒有任何更新,則認為該檔案已逾時。可選值如下:

  • True(預設):永不逾時。

  • False:如果記錄檔在30分鐘內沒有更新,則認為已逾時,並不再監控該檔案。

preserveDepth

String

當設定preserve為False時,需指定最大逾時目錄深度,取值範圍:1~3。

filterKey

List

用於過濾日誌的欄位。只有該欄位的值滿足filterRegex參數中設定的Regex時,對應的日誌才會被採集。

filterRegex

String

filterKey對應的Regex。filterRegex中的元素個數和filterKey中的元素個數必須相同。

返回參數

返回參數請參見:CreateConfig - 建立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', '')

# Log Service的服務存取點
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 = "*.log"


# 建立簡單文本採集配置
def main():
    try:
        config_detail = SimpleFileConfigDetail(logstore, configName, logPath, filePattern)
        res = client.create_logtail_config(project, config_detail)
        res.log_print()
    except Exception as error:
        print(error)


if __name__ == '__main__':
    main()

樣本返回結果

CreateLogtailConfigResponse:
headers: {'Server': 'AliyunSLS', 'Content-Length': '0', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Date': 'Fri, 22 Nov 2024 06:40:40 GMT', 'x-log-time': '1732257640', 'x-log-requestid': '67402768AA8C117B143D****'}

Process finished with exit code 0

相關文檔