更新 Logtail 流水線配置。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
|
操作 |
存取層級 |
資源類型 |
條件關鍵字 |
關聯操作 |
|
log:UpdateLogtailPipelineConfig |
update |
*全部資源。
|
|
無 |
請求文法
PUT /pipelineconfigs/{configName} HTTP/1.1
路徑參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| configName |
string |
是 |
Logtail 流水線配置名稱。 |
test-config |
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| project |
string |
是 |
Project 名稱。 |
test-project |
| body |
object |
否 |
Logtail 流水線配置內容。 |
|
| aggregators |
array<object> |
否 |
聚合外掛程式清單。 重要 僅當使用了擴充處理外掛程式時有效,且最多允許使用 1 個聚合外掛程式。 |
|
|
object |
否 |
聚合外掛程式。 |
||
| configName |
string |
是 |
配置名稱。 重要 需要與外層的 configName 參數保持一致。 |
test-config |
| flushers |
array<object> |
是 |
輸出外掛程式清單。 重要 目前,只允許存在 1 個 SLS 輸出外掛程式。 |
|
|
object |
否 |
輸出外掛程式。 |
{ "Type": "flusher_sls", "Logstore": "test" } |
|
| global |
object |
否 |
全域配置。 |
|
| inputs |
array<object> |
是 |
輸入外掛程式清單。 重要 目前,只允許配置 1 個輸入外掛程式。 |
|
|
object |
否 |
輸入外掛程式。 |
{ "Type": "input_file", "FilePaths": ["/var/log/*.log"] } |
|
| logSample |
string |
否 |
日誌範例。支援多條日誌。 |
2022-06-14 11:13:29.796 | DEBUG | __main__: |
| processors |
array<object> |
否 |
處理外掛程式清單。 說明
可分為原生處理外掛程式和擴充處理外掛程式,詳情請參見處理外掛程式。 重要
說明
|
|
|
object |
否 |
處理外掛程式。 說明
詳情請參見處理外掛程式。 |
{ "Type": "processor_parse_json_native", "SourceKey": "content" } |
|
| task |
object |
否 |
全域配置
| 參數 | 類型 | 是否必填 | 預設值 | 範例 | 說明 |
| TopicType | string | 否 | 空 | filepath | Topic 類型。可選值包括:
|
| TopicFormat | string | 否,當 TopicType 取值為 filepath 或 custom 時必填 | / | /var/log/(.*).log | Topic 格式。 |
| EnableTimestampNanosecond | bool | 否 | false | false | 是否啟用時間奈秒精度。 |
| PipelineMetaTagKey | object | 否 | 空 | {"HOST_NAME":"__hostname__"} | 重要 僅 LoongCollector 3.0.10 之後支援。
|
輸入外掛程式。
檔案輸入外掛程式
| 參數 | 類型 | 是否必填 | 預設值 | 範例 | 說明 |
| Type | string | 是 | / | input_file | 外掛程式類型。固定為 input_file。 |
| FilePaths | [string] | 是 | / | ["/var/log/*.log"] | 待採集的日誌檔案路徑清單(目前僅限 1 個路徑)。路徑中支援使用*和**萬用字元,其中**萬用字元僅能出現一次且僅限用於檔案名稱前。 |
| MaxDirSearchDepth | uint | 否 | 0 | 0 | 檔案路徑中**萬用字元符合的最大目錄深度。僅當日誌路徑中存在**萬用字元時有效,取值範圍為 0~1000。 |
| ExcludeFilePaths | [string] | 否 | 空 | ["/home/admin/*.log"] | 檔案路徑黑名單。路徑必須為絕對路徑,支援使用*萬用字元 |
| ExcludeFiles | [string] | 否 | 空 | ["app*.log", "password"] | 檔案名稱黑名單。支援使用*萬用字元 |
| ExcludeDirs | [string] | 否 | 空 | ["/home/admin/dir1", "/home/admin/dir2*"] | 目錄黑名單。路徑必須為絕對路徑,支援使用*萬用字元 |
| FileEncoding | string | 否 | utf8 | utf8 | 檔案編碼格式。可選值包括 utf8 和 gbk。 |
| TailSizeKB | uint | 否 | 1024 | 1024 | 配置首次生效時,符合檔案的起始採集位置距離檔案結尾的大小。如果檔案大小小於該值,則從頭開始採集,取值範圍為 0~10485760KB。 |
| Multiline | object | 否 | 空 | / | 多行聚合選項。 |
| Multiline.Mode | string | 否 | custom | custom | 多行聚合模式。可選值包括 custom 和 JSON。 |
| Multiline.StartPattern | string | 當 Multiline.Mode 取值為 custom 時必填 | 空 | \d+-\d+-\d+.* | 行首正規表示式。 |
| EnableContainerDiscovery | bool | 否 | false | true | 是否啟用容器探索功能。僅當 Logtail 以 Daemonset 模式執行,且採集檔案路徑為容器內路徑時有效。 |
| ContainerFilters | object | 否 | 空 | / | 容器過濾選項。多個選項之間為「且」的關係,僅當 EnableContainerDiscovery 取值為 true 時有效。 |
| ContainerFilters.K8sNamespaceRegex | string | 否 | 空 | default | 對於部署於 K8s 環境的容器,指定待採集容器所在 Pod 所屬的命名空間條件。如果未新增該參數,則表示採集所有容器。支援正規匹配。 |
| ContainerFilters.K8sPodRegex | string | 否 | 空 | test-pod | 對於部署於 K8s 環境的容器,指定待採集容器所在 Pod 的名稱條件。如果未新增該參數,則表示採集所有容器。支援正規匹配。 |
| ContainerFilters.IncludeK8sLabel | map | 否 | 空 | / | 對於部署於 K8s 環境的容器,指定待採集容器所在 pod 的標籤條件。多個條件之間為「或」的關係,如果未新增該參數,則表示採集所有容器。支援正規匹配。 map 中的 key 為 Pod 標籤名,value 為 Pod 標籤的值,說明如下:
|
| ContainerFilters.ExcludeK8sLabel | map | 否 | 空 | / | 對於部署於 K8s 環境的容器,指定需要排除採集容器所在 pod 的標籤條件。多個條件之間為「或」的關係,如果未新增該參數,則表示採集所有容器。支援正規匹配。 map 中的 key 為 pod 標籤名,value 為 pod 標籤的值,說明如下:
|
| ContainerFilters.K8sContainerRegex | string | 否 | 空 | test-container | 對於部署於 K8s 環境的容器,指定待採集容器的名稱條件。如果未新增該參數,則表示採集所有容器。支援正規匹配。 |
| ContainerFilters.IncludeEnv | map | 否 | 空 | / | 指定待採集容器的環境變數條件。多個條件之間為「或」的關係,如果未新增該參數,則表示採集所有容器。支援正規匹配。 map 中的 key 為環境變數名,value 為環境變數的值,說明如下:
|
| ContainerFilters.ExcludeEnv | map | 否 | 空 | / | 指定需要排除採集容器的環境變數條件。多個條件之間為「或」的關係,如果未新增該參數,則表示採集所有容器。支援正規匹配。 map 中的 key 為環境變數名,value 為環境變數的值,說明如下:
|
| ContainerFilters.IncludeContainerLabel | map | 否 | 空 | / | 指定待採集容器的標籤條件。多個條件之間為「或」的關係,如果未新增該參數,則預設為空,表示採集所有容器。支援正規匹配。 map 中的 key 為容器標籤名,value 為容器標籤的值,說明如下:
|
| ContainerFilters.ExcludeContainerLabel | map | 否 | 空 | / | 指定需要排除採集容器的標籤條件。多個條件之間為「或」的關係,如果未新增該參數,則預設為空,表示採集所有容器。支援正規匹配。 map 中的 key 為容器標籤名,value 為容器標籤的值,說明如下:
|
| ExternalK8sLabelTag | map | 否 | 空 | / | 對於部署於 K8s 環境的容器,需要在日誌中額外新增的與 Pod 標籤相關的 tag。map 中的 key 為 Pod 標籤名,value 為對應的 tag 名。 例如:在 map 中新增app: k8s\_label\_app,則若 pod 中包含app=serviceA的標籤時,會將該資訊以 tag 的形式新增到日誌中,即新增欄位__tag__:k8s_label_app: serviceA;若不包含app標籤,則會新增空欄位__tag__:k8s_label_app: 。 |
| ExternalEnvTag | map | 否 | 空 | / | 對於部署於 K8s 環境的容器,需要在日誌中額外新增的與容器環境變數相關的 tag。map 中的 key 為環境變數名,value 為對應的 tag 名。 例如:在 map 中新增VERSION: env\_version,則當容器中包含環境變數VERSION=v1.0.0時,會將該資訊以 tag 的形式新增到日誌中,即新增欄位__tag__:env_version: v1.0.0;若不包含VERSION環境變數,則會新增空欄位__tag__:env_version: 。 |
| CollectingContainersMeta | bool | 否 | false | true | 是否啟用容器中繼資料預覽。 |
| AppendingLogPositionMeta | bool | 否 | false | false | 是否在日誌中新增該條日誌所屬檔案的中繼資料,包括__tag__:__inode__欄位和__file_offset__欄位。 |
| AllowingIncludedByMultiConfigs | bool | 否 | false | false | 是否允許目前配置採集其它配置已符合的檔案。 |
| Tags | object | 否 | 空 | {"FileInodeTagKey":"__inode__"} | 重要 僅 LoongCollector 3.0.10 之後支援。
|
| FileOffsetKey | string | 否 | 空 | __file_offset__ | 重要 僅 LoongCollector 3.0.10 之後支援。 |
容器標準輸出(舊版)
| 參數 | 類型 | 是否必填 | 預設值 | 範例 | 說明 |
| Type | string | 是 | / | service_docker_stdout | 外掛程式類型。固定為 service_docker_stdout。 |
| Stdout | Boolean | 否 | true | true | 是否採集標準輸出 stdout。 |
| Stderr | Boolean | 否 | true | true | 是否採集標準出錯資訊 stderr。 |
| StartLogMaxOffset | Integer | 否 | 128×1024 | 131072 | 首次採集時回溯歷史資料長度,單位:位元組。建議取值在[131072,1048576]之間。 |
| IncludeLabel | Map,其中 LabelKey 和 LabelValue 為 String 類型 | 否 | 空 | 容器 Label 白名單,用於指定待採集的容器。預設為空,表示採集所有容器的標準輸出。如果您要設定容器 Label 白名單,那麼 LabelKey 必填,LabelValue 可選填。
多個白名單之間為或關係,即只要容器 Label 滿足任一白名單即可符合。 | |
| ExcludeLabel | Map,其中 LabelKey 和 LabelValue 為 String 類型 | 否 | 空 | 容器 Label 黑名單,用於排除不採集的容器。預設為空,表示不排除任何容器。如果您要設定容器 Label 黑名單,那麼 LabelKey 必填,LabelValue 可選填。
多個黑名單之間為或關係,即只要容器 Label 滿足任一黑名單對即可被排除。 | |
| IncludeEnv | Map,其中 EnvKey 和 EnvValue 為 String 類型 | 否 | 空 | 設定環境變數白名單,用於指定待採集的容器。預設為空,表示採集所有容器的標準輸出。如果您要設定環境變數白名單,那麼 EnvKey 必填,EnvValue 可選填。
| |
| ExcludeEnv | Map,其中 EnvKey 和 EnvValue 為 String 類型 | 否 | 空 | 環境變數黑名單,用於排除不採集的容器。預設為空,表示不排除任何容器。如果您要設定環境變數黑名單,那麼 EnvKey 必填,EnvValue 可選填。
多個黑名單之間為或關係,即只要容器的環境變數滿足任一鍵值對即可被排除。 | |
| IncludeK8sLabel | Map,其中 LabelKey 和 LabelValue 為 String 類型 | 否 | 空 | 透過 Kubernetes Label(定義在 template.metadata 中)白名單指定待採集的容器。如果您要設定 Kubernetes Label 白名單,那麼 LabelKey 必填,LabelValue 可選填。
多個白名單之間為或關係,即只要 Kubernetes Label 滿足任一白名單即可符合。 | |
| ExcludeK8sLabel | Map,其中 LabelKey 和 LabelValue 為 String 類型 | 否 | 空 | 透過 Kubernetes Label(定義在 template.metadata 中)黑名單排除不採集的容器。如果您要設定 Kubernetes Label 黑名單,那麼 LabelKey 必填,LabelValue 可選填。
多個黑名單之間為或關係,即只要 Kubernetes Label 滿足任一黑名單對即可被排除。 | |
| K8sNamespaceRegex | String | 否 | 空 | ^(default|nginx)$ | 透過 Namespace 名稱指定採集的容器,支援正規匹配。例如設定為^(default|nginx)$,表示符合 nginx 命名空間、default 命名空間下的所有容器。 |
| K8sPodRegex | String | 否 | 空 | ^(nginx-log-demo.*)$ | 透過 Pod 名稱指定待採集的容器,支援正規匹配。例如設定為^(nginx-log-demo.*)$,表示符合以 nginx-log-demo 開頭的 Pod 下的所有容器。 |
| K8sContainerRegex | String | 否 | 空 | ^(container-test)$ | 透過容器名稱指定待採集的容器(Kubernetes 容器名稱是定義在 spec.containers 中),支援正規匹配。例如設定為^(container-test)$,表示符合所有名為 container-test 的容器。 |
資料處理參數
| 參數 | 類型 | 是否必填 | 預設值 | 範例 | 說明 |
| BeginLineRegex | String | 否 | 空 | 行首符合的正規表示式。 該配置項為空,表示單行模式。 如果該表示式符合某行的開頭,則將該行作為一條新的日誌,否則將此行拼接到上一條日誌。 | |
| BeginLineCheckLength | Integer | 否 | 空 | 行首符合的長度,單位:位元組。 預設取值為 10×1024 位元組。 如果行首符合的正規表示式在前 N 個位元組即可體現,推薦設定此參數,提升行首符合效率。 | |
| BeginLineTimeoutMs | Integer | 否 | 空 | 行首符合的逾時時間,單位:毫秒。 預設取值為 3000 毫秒。 如果 3000 毫秒內沒有出現新日誌,則結束符合,將最後一條日誌上傳到日誌服務。 | |
| MaxLogSize | Integer | 否 | 空 | 日誌最大長度,預設取值為 0,單位:位元組。 預設取值為 512×1024 位元組。 如果日誌長度超過該值,則不再繼續尋找行首,直接上傳。 | |
| ExternalK8sLabelTag | Map,其中 LabelKey 和 LabelValue 為 String 類型 | 否 | 空 | 設定 Kubernetes Label(定義在 template.metadata 中)日誌標籤後,iLogtail 將在日誌中新增 Kubernetes Label 相關欄位。 例如設定 LabelKey 為 app,LabelValue 為 | |
| ExternalEnvTag | Map,其中 EnvKey 和 EnvValue 為 String 類型 | 否 | 空 | 設定容器環境變數日誌標籤後,iLogtail 將在日誌中新增容器環境變數相關欄位。 例如設定 EnvKey 為 |
資料處理環境變數
| 環境變數 | 類型 | 是否必填 | 預設值 | 範例 | 說明 |
| ALIYUN_LOG_ENV_TAGS | String | 否 | 空 | 設定全域環境變數日誌標籤後,iLogtail 將在日誌中新增 iLogtail 所在容器環境變數相關欄位。多個環境變數名以 例如設定為 node_name|node_ip,當 iLogtail 容器中暴露相關環境變數時,會將該資訊以 tag 形式新增到日誌中,即新增欄位 node_ip:172.16.0.1 和 node_name:worknode。 |
MySQL 輸入外掛
| 參數 | 類型 | 是否必填 | 預設值 | 範例 | 說明 |
| Type | string | 是 | / | service_mysql | 外掛類型。固定為 service_mysql。 |
| Address | string | 否 | 127.0.0.1:3306 | rm-*.mysql.rds.aliyuncs.com | MySQL 位址。 |
| User | string | 否 | root | root | 用於登入 MySQL 資料庫的使用者名稱。 |
| Password | string | 否 | 空 | 用於登入 MySQL 資料庫的使用者密碼。如果安全性需求較高,建議將使用者名稱和密碼設定為 xxx,待採集設定同步至本機機器後,在本機檔案 /usr/local/ilogtail/user_log_config.json 中找到對應設定進行修改。具體操作,請參閱修改本機設定。重要 如果您在主控台上修改了此參數,同步至本機後會覆蓋本機的設定。 | |
| DataBase | string | 否 | / | project_database | 資料庫名稱。 |
| DialTimeOutMs | int | 否 | 5000 | 5000 | 連線 MySQL 資料庫逾時時間,單位:ms。 |
| ReadTimeOutMs | int | 否 | 5000 | 5000 | 讀取 MySQL 查詢結果的逾時時間,單位:ms。 |
| StateMent | string | 否 | / | SELECT 陳述式。設定 CheckPoint 為 true 時,Statement 中 SELECT 陳述式的 where 條件中必須包含 CheckPoint 欄位(CheckPointColumn)。支援使用半形問號(?)表示取代符,與 CheckPoint 欄位配合使用。例如設定 CheckPointColumn 為 id,設定 CheckPointStart 為 0,設定 StateMent 為 SELECT * from ... where id > ?。則每次採集後,系統會儲存最後一筆資料的 ID 作為 Checkpoint,下次採集時查詢陳述式中的半形問號(?)將被取代為該 Checkpoint 對應的 ID。 | |
| Limit | bool | 否 | false | true | 是否使用 Limit 分頁。
|
| PageSize | int | 否 | / | 10 | 分頁大小,Limit 為 true 時必須設定。 |
| MaxSyncSize | int | 否 | 0 | 0 | 每次同步最大記錄數。預設值為 0,表示無限制。 |
| CheckPoint | bool | 否 | false | true | 是否使用 CheckPoint。
|
| CheckPointColumn | string | 否 | 空 | 1 | CheckPoint 欄位名稱。設定 CheckPoint 為 true 時,需要設定。 警告 該欄位的值必須遞增,否則可能會出現資料漏採集問題(每次查詢結果中的最大值將作為下次查詢的輸入)。 |
| CheckPointColumnType | string | 否 | 空 | int | CheckPoint 欄位的資料類型,支援 int 和 time。int 類型的內部儲存為 int64,time 類型支援 MySQL 的 date、datetime、time 類型。設定 CheckPoint 為 true 時,需要設定。 |
| CheckPointStart | string | 否 | 空 | CheckPoint 欄位的初始值。設定 CheckPoint 為 true 時,需要設定。 | |
| CheckPointSavePerPage | bool | 否 | true | true | 是否每次分頁時儲存一次 CheckPoint。
|
| IntervalMs | int | 否 | 60000 | 60000 | 同步間隔,預設值為 60000,單位:ms。 |
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
當前API暫無返回參數
樣本
正常返回樣本
JSON格式
{}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。