本文介紹使用Logtail採集日誌時,如何選擇網路來保障採集速度,如何配置啟動參數來調整採集效能,以及Logtail運行中依賴的一系列設定檔與資訊記錄檔案。
網路類型與選擇
在安裝Logtail時,根據伺服器與Log Service之間的關係,選擇對應的網路類型有利於日誌資料的傳輸更快速穩定。網路類型選擇樣本如下:

網路類型 | 描述 | 適用情境 | 樣本 |
阿里雲內網 | 阿里雲內網為千兆共用網路,日誌資料通過阿里雲內網傳輸比公網傳輸更快速、穩定,內網包括VPC和傳統網路。 | ECS執行個體和Log ServiceProject屬於同一地區。 說明 推薦在ECS執行個體所在地區建立Log ServiceProject,Log Service通過阿里雲內網採集ECS執行個體的日誌,不消耗公網頻寬。 | ECS執行個體和Project屬於同一地區
|
公網 | 使用公網傳輸日誌資料,不僅會受到網路頻寬的限制,還可能會因網路抖動、延遲、丟包等影響資料擷取的速度和穩定性。 | 以下兩種情況,可以選擇公網傳輸資料。
| ECS執行個體和Project屬於不同地區
自建IDC
|
傳輸加速 | 利用阿里雲CDN邊緣節點進行日誌採集加速,相對公網採集在網路延遲、穩定性上具有很大優勢。 | 如果商務服務器、Log ServiceProject分別屬於國內地區和國外地區,使用公網傳輸資料可能會出現網路延遲高、傳輸不穩定等問題,您可以選擇傳輸加速傳輸資料。更多資訊,請參見傳輸加速。 | 自建IDC
說明 如果Log ServiceProject在國內地區,伺服器在國外,建議使用傳輸加速採集伺服器日誌,相比公網傳輸的網路穩定性更高、效能更好。 |
傳輸加速
若您選擇網路類型為傳輸加速,需要先為Project開啟此項功能。
登入Log Service控制台。進入Project的專案概覽頁面,按下圖指示開啟傳輸加速網域名稱。

閱讀對話方塊的提示,然後單擊確認修改。
您可以通過如下方式配置Logtail採集加速。
採用傳輸加速方式安裝Logtail
如果開啟傳輸加速後再安裝Logtail,則您可以選擇傳輸加速方式安裝Logtail。具體操作,請參見安裝Logtail。
修改Logtail配置
如果開啟傳輸加速前已安裝Logtail,則需要修改Logtail配置。
停止Logtail。
Linux系統
執行
sudo /etc/init.d/ilogtaild stop命令。Windows系統
選擇。
在服務對話方塊中,找到LogtailDaemon服務(Logtail 1.0.0.0及以上版本)或LogtailWorker服務(Logtail 0.x.x.x版本),按右鍵停止。
修改Logtail啟動設定檔ilogtail_config.json。
將data_server_list參數中的endpoint一行替換為
log-global.aliyuncs.com。檔案路徑,請參見啟動參數設定檔(ilogtail_config.json)。啟動Logtail。
Linux系統
執行
sudo /etc/init.d/ilogtaild start命令。Windows系統
選擇。
在服務對話方塊中,找到LogtailDaemon服務(Logtail 1.0.0.0及以上版本)或LogtailWorker服務(Logtail 0.x.x.x版本),按右鍵啟動。
更多相關操作可參考管理傳輸加速。
設定Logtail啟動參數
為防止Logtail消耗過多伺服器資源,影響其他服務運行,Log Service對Logtail採集效能做了限制。當您需要提升Logtail採集效能時,可修改Logtail啟動參數。
使用情境
遇到以下情境時,可修改Logtail啟動參數。
需要採集的記錄檔數目大(同時採集的檔案數超過100個或所監控的目錄下的檔案數超過5000個),佔用大量記憶體。
日誌資料流量大(例如極簡模式下超過2 MB/s,正則模式下超過1 MB/s),導致CPU佔用率高。
Logtail發送資料到Log Service的速率超過10 MB/s。
推薦參數值樣本
根據實際經驗推薦如下參數配置,適用於普通JSON檔案的採集情境。完整正則模式和分隔字元模式的效能與JSON模式相近,極簡模式效能為JSON模式的5倍。由於資料、規則的複雜度、採集目錄和檔案的數量都會對CPU和MEM消耗帶來影響,請參照下述表格並結合實際情況按需調整。
主機環境
參數
預設的採集速率
採集速率大於10 MB/s
採集速率大於20 MB/s
採集速率大於40 MB/s
cpu_usage_limit
0.4
1
2
4
mem_usage_limit
384
1024
2048
4096
max_bytes_per_sec
20971520
209715200
209715200
209715200
process_thread_count
1
2
4
8
send_request_concurrency
4
20
40
80
容器或Kubernetes環境
環境變數
預設的採集速率
採集速率大於10 MB/s
採集速率大於20 MB/s
採集速率大於40 MB/s
cpu_usage_limit
2
3
5
9
mem_usage_limit
2048
2048
2048
4096
max_bytes_per_sec
209715200
209715200
209715200
209715200
process_thread_count
1
2
4
8
send_request_concurrency
20
20
40
80
resources.limits.cpu
500M
1000M
2000M
4000M
resources.limits.memory
2 Gi
2 Gi
3 Gi
5 Gi
容器或Kubernetes環境中的Logtail啟動參數修改說明如下:
如果Logtail部署在阿里雲Kubernetes叢集中,且為Logtail-ds 1.7.3及以上版本,則推薦通過Container Service管理主控台修改,即在組件管理頁面,修改logtail-ds組件中對應的各個參數。
如果Logtail部署在自建容器或Kubernetes環境中,且為Logtail-ds 1.7.3及以上版本,則需要通過修改daemonset環境變數來修改Logtail啟動參數。部分環境引用configmap,configmap路徑為。
如果Logtail為Logtail-ds 1.7.3之前版本,則需要通過修改daemonset環境變數來修改Logtail啟動參數。部分環境引用configmap,configmap路徑為。同時還需調整中的resources.limits.cpu和resources.limits.memory,避免Container資源超限。
按照上述表格中的採集速率大於40 MB/s列配置Logtail啟動參數時,Logtail的採集效能接近極限,繼續增加線程對效能提升效果不顯著。採集端的效能極限說明如下表所示。
因測試環境與生產環境不同,實際採集效能可能存在差異。
採集模式 | 效能極限 |
極簡模式 | 440 MB/s |
完整正則模式 | 70 MB/s |
分隔字元模式 | 75 MB/s |
JSON模式 | 75 MB/s |
啟動參數設定
在安裝Logtail的伺服器上,開啟/usr/local/ilogtail/ilogtail_config.json檔案。
此步驟適用於主機環境。
在容器或Kubernetes環境下,您需要通過修改daemonset環境變數來修改Logtail啟動參數。部分環境引用configmap,configmap路徑為
根據需求設定啟動參數。
啟動參數樣本如下:
{ ... "cpu_usage_limit" : 0.4, "mem_usage_limit" : 384, "max_bytes_per_sec" : 20971520, "process_thread_count" : 1, "send_request_concurrency" : 4, "buffer_file_num" : 25, "buffer_file_size" : 20971520, "buffer_file_path" : "", ... }說明下表中只列出您需要關注的常用啟動參數,未列出的啟動參數,保持預設配置即可。
您可以根據需要新增或修改指定啟動參數。
表 1. Logtail啟動參數
參數
類型
說明
樣本
cpu_usage_limit
double
CPU使用閾值,以單核計算。取值如下:
取值範圍:0.1~當前機器的CPU核心數
預設值:0.4
警告cpu_usage_limit為軟式節流,實際Logtail佔用的CPU可能超過限制值,超限5分鐘後將觸發熔斷保護,Logtail自動重啟。
例如設定為0.4,表示Log Service將儘可能限制Logtail的CPU使用為CPU單核的40%,超出後Logtail自動重啟。
一般情況下,通過極簡模式採集日誌時,單核處理能力約100 MB/s;通過完整正則模式採集日誌時,單核處理能力約20 MB/s 。
說明如果Logtail部署在阿里雲Kubernetes叢集中,且為Logtail-ds 1.7.3及以上版本,則推薦通過Container Service管理主控台設定CPU使用閾值,即在組件管理頁面,修改logtail-ds組件中的LogtailDSLimitCPU參數。具體操作,請參見管理組件。
"cpu_usage_limit" : 0.4
mem_usage_limit
int
記憶體使用量閾值。取值如下:
取值範圍:128 MB ~ 8192 MB
預設值:384 MB(主機),2048 MB(ACK組件)
警告mem_usage_limit為軟式節流,實際Logtail佔用的記憶體可能超過限制值,超限5分鐘後將觸發熔斷保護,Logtail自動重啟。
採集速率、監控目錄和檔案數量、發送阻塞程度與mem_usage_limit參數有關。更多資訊,請參見Logtail限制說明。
說明如果Logtail部署在阿里雲Kubernetes叢集中,且為Logtail-ds 1.7.3及以上版本,則推薦通過Container Service管理主控台設定記憶體使用量閾值,即在組件管理頁面,修改logtail-ds組件中的LogtailDSLimitMemory參數。具體操作,請參見管理組件。
"mem_usage_limit" : 384
max_bytes_per_sec
int
每秒鐘Logtail發送未經處理資料的流量限制。取值如下:
取值範圍:1024 Byte/s ~ 52428800 Byte/s
預設值:20971520 Byte/s
重要設定的值超過20971520 Byte/s(20MB/s),表示不限速。
例如設定為2097152,表示Logtail發送資料的速率為2 MB/s。
說明如果Logtail部署在阿里雲Kubernetes叢集中,且為Logtail-ds 1.7.3及以上版本,則推薦通過Container Service管理主控台設定流量限制,即在組件管理頁面,修改logtail-ds組件中的LogtailDSMaxBytePerSec參數。具體操作,請參見管理組件。
"max_bytes_per_sec" : 2097152
process_thread_count
int
Logtail處理資料的線程數。 取值如下:
取值範圍:1~64
預設值:1
一般情況下,可以處理極簡模式下24 MB/s的資料寫入或完整正則模式12 MB/s的資料寫入。預設情況下無需調整該參數取值。
說明如果Logtail部署在阿里雲Kubernetes叢集中,且為Logtail-ds 1.7.3及以上版本,則推薦通過Container Service管理主控台設定線程路,即在組件管理頁面,修改logtail-ds組件中的LogtailDSProcessThreadCount參數。具體操作,請參見管理組件。
"process_thread_count" : 1
send_request_concurrency
int
非同步並發的個數。取值如下:
取值範圍:1~50
預設值:20
如果寫入TPS很高,可以設定更高的非同步並發個數。可以按照一個並發支援0.5 MB/s~1 MB/s網路吞吐來計算,實際根據網路延時而定。
說明設定非同步並發個數過高容易導致網路連接埠佔用過多,需調整TCP相關參數。
如果Logtail部署在阿里雲Kubernetes叢集中,且為Logtail-ds 1.7.3及以上版本,則推薦通過Container Service管理主控台設定非同步並發個數,即在組件管理頁面,修改logtail-ds組件中的LogtailDSSendRequestConcurrency參數。具體操作,請參見管理組件。
"send_request_concurrency" : 4
buffer_file_num
int
限制快取檔案的最大數目。取值如下:
取值範圍:1~100
預設值:25
遇到網路異常、寫入配額超限等情況時,Logtail將即時解析後的日誌寫入本地檔案(安裝目錄下)緩衝起來,等待恢複後嘗試重新發送。
"buffer_file_num" : 25
buffer_file_size
int
單個快取檔案允許的最大位元組數。取值如下:
取值範圍:1048576 Byte ~ 104857600 Byte
預設值:20971520 Byte
buffer_file_size*buffer_file_num是快取檔案可以實際使用的最大磁碟空間。
"buffer_file_size" : 20971520
buffer_file_path
String
快取檔案存放目錄。 預設值為空白,即快取檔案存放於logtail安裝目錄/usr/local/ilogtail下。
當您設定此參數後,需手動將原目錄下名為logtail\_buffer\_file_*的檔案移動到此目錄,以保證Logtail可以讀取到該快取檔案並在發送後進行刪除。
"buffer_file_path" : ""
bind_interface
String
本機綁定的網卡名。預設值為空白,自動綁定可用的網卡。
如果設定為指定的網卡(例如eth1),則表示Logtail將強制使用該網卡上傳日誌。
只支援Linux版本。
"bind_interface" : ""
check_point_filename
String
Logtail的checkpoint檔案的儲存路徑, 預設值:/tmp/logtail_check_point。
建議Docker/Kubernetes使用者參見iLogtail容器重啟資料可靠性探討進行配置,避免Logtail容器重啟時丟失checkpoint資訊等而造成採集重複或丟失。
"check_point_filename" : /tmp/logtail_check_point
check_point_dump_interval
int
Logtail更新Checkpoint檔案的周期,預設值:900,單位:秒。即預設情況下每15分鐘更新一次Checkpoint檔案。
僅Linux Logtail 1.0.19及以上版本或Windows Logtail 1.0.19.0及以上版本支援該參數。
"check_point_dump_interval" : 900
user_config_file_path
String
Logtail設定檔的儲存路徑,預設為進程binary所在目錄,檔案名稱為user_log_config.json。
建議Docker/Kubernetes使用者參見iLogtail容器重啟資料可靠性探討進行配置,避免Logtail容器重啟導致採集重複或丟失。
"user_config_file_path" : user_log_config.json
docker_file_cache_path
String
該檔案記錄了容器檔案到宿主機檔案的路徑映射,預設為/usr/local/ilogtail/docker_path_config.json。
建議Docker/Kubernetes使用者參見iLogtail容器重啟資料可靠性探討進行配置,避免Logtail容器重啟導致採集重複或丟失。
僅Linux Logtail 0.16.54及以上版本或Windows Logtail 0.16.54.0及以上版本支援該參數。
"docker_file_cache_path": /usr/local/ilogtail/docker_path_config.json
discard_old_data
Boolean
是否丟棄歷史日誌。預設值:true,表示丟棄距離目前時間超過12小時的日誌。
"discard_old_data" : true
ilogtail_discard_interval
int
丟棄歷史日誌距離目前時間的閾值。預設值:43200(12小時),單位:秒。
"ilogtail_discard_interval": 43200
working_ip
String
預設值為空白,表示自動從本伺服器擷取IP地址。修改後Logtail將以該值作為伺服器的IP地址上報。
"working_ip" : ""
working_hostname
String
Logtail上報的本伺服器的主機名稱。預設值為空白,表示自動從本伺服器擷取主機名稱。
"working_hostname" : ""
max_read_buffer_size
long
每條日誌讀取的最大值。預設值:524288(512 KB),最大值:8388608(8 MB)。單位:Byte。
如果您的單條日誌超過524288 Byte,可修改此參數。
"max_read_buffer_size" : 524288
oas_connect_timeout
long
Logtail發起擷取Logtail配置、存取金鑰等請求時,串連階段的逾時時間。預設值:5,單位:秒。
網路條件較差,建立連線時間過長時可修改此參數。
"oas_connect_timeout" : 5
oas_request_timeout
long
Logtail發起擷取Logtail配置、存取金鑰等請求時,整個要求階段的逾時時間。預設值:10,單位:秒。
網路條件較差,建立連線時間過長時可修改此參數。
"" : 10
data_server_port
long
設定data_server_port為443後,Logtail將通過HTTPS協議傳輸資料到Log Service。
僅Linux Logtail 1.0.10及以上版本或Windows Logtail 1.0.10.0及以上版本支援該參數。
"data_server_port": 443
enable_log_time_auto_adjust
Boolean
設定enable_log_time_auto_adjust為true後,日誌時間可自適應伺服器本地時間。
出於資料安全考慮,Log Service會對請求(包括Logtail發起的請求)所攜帶的時間進行校正,拒絕與Log Service端時間相差超過15分鐘的請求。Logtail發起請求時所攜帶的時間為伺服器本地時間,當伺服器本地時間被修改後(例如某些測試情境下需要調整本地時間為未來時間),Logtail請求將被拒絕,導致寫入資料失敗。您可以使用該參數實現日誌時間自適應伺服器本地時間。
僅Linux Logtail 1.0.19及以上版本或Windows Logtail 1.0.19.0及以上版本支援該參數。
重要開啟該功能後,日誌時間將被加上Log Service端的時間與伺服器本地時間的位移量。由於位移量只在請求被Log Service端拒絕時更新,因此可能出現Log Service端所查詢到的日誌的時間和日誌實際的寫入時間不一致的情況。
Logtail的部分邏輯依賴於系統時間的遞增,建議在每次機器時間調整後重啟Logtail。
"enable_log_time_auto_adjust": true
accept_multi_config
Boolean
是否允許多個Logtail配置採集同一個檔案。預設值:false,表示不允許。
預設情況下,一個檔案只能被一個Logtail配置採集,您可以通過該參數消除限制。每個Logtail配置的處理過程是獨立的,當允許多個Logtail配置採集同一個檔案時,需要消耗多倍的CPU、記憶體開銷。
僅Linux Logtail 0.16.26及以上版本或Windows Logtail 0.16.26.0及以上版本支援該參數。
"accept_multi_config": true
enable_checkpoint_sync_write
Boolean
是否開啟sync寫功能。預設值:false,表示不開啟。
sync寫功能主要用於搭配ExactlyOnce寫入功能。開啟ExactlyOnce寫入功能後,Logtail會在本地磁碟記錄細粒度的Checkpoint資訊(檔案層級)。但出於效能考慮,預設寫入Checkpoint時不會調用sync落盤,所以如果機器重啟導致buffer資料來不及寫入磁碟時,可能導致Checkpoint丟失。此時,您可以設定enable_checkpoint_sync_write為true,開啟sync寫功能。更多資訊,請參見Logtail配置(舊版)。
僅Linux Logtail 1.0.20及以上版本或Windows Logtail 1.0.20.0及以上版本支援該參數。
"enable_checkpoint_sync_write": false
enable_env_ref_in_config
Boolean
是否啟用採集配置環境變數替換功能。預設值:false。
開啟該功能後,您可以在控制台的Logtail採集配置中使用
${xxx}作為環境變數xxx的預留位置。例如設定採集路徑為/${xxx}/logs,環境變數為xxx=user,則生效的採集路徑為/user/logs。如果配置中需要使用
${、},則您可以使用$${、$}進行轉義。僅Linux Logtail 1.0.31及以上版本或Windows Logtail 1.0.31.0及以上版本支援該參數。
"enable_env_ref_in_config": false
docker_config_update_interval
int
容器路徑更新的最小時間間隔。
與max_docker_config_update_times配合使用,任意一個參數達到閾值則不再更新容器路徑。
如果是Linux Logtail 1.0.32及以上版本或Windows Logtail 1.0.32.0及以上版本,預設值:3,單位:秒。
如果是Linux Logtail 1.0.32之前版本或Windows Logtail 1.0.32.0之前版本,預設值:10,單位:秒。
"docker_config_update_interval": 3
max_docker_config_update_times
int
3分鐘內更新容器路徑最大次數。預設情況下,3分鐘內容器路徑更新次數超過3次則不再更新容器路徑。
如果是Linux Logtail 1.0.32及以上版本或Windows Logtail 1.0.32.0及以上版本,預設值:10。
如果是Linux Logtail 1.0.32之前版本或Windows Logtail 1.0.32.0之前版本,預設值:3。
"max_docker_config_update_times": 10
DOCKER_HOST
String
與Docker通訊的Socket地址,需通過環境變數進行配置。
預設值:空,表示使用預設地址unix:///var/run/docker.sock。
DOCKER_HOST=unix:///var/run/docker.sock
CONTAINERD_SOCK_PATH
String
與Containerd通訊的Socket地址,需通過環境變數進行配置。
預設值:空,表示使用預設地址unix:///run/containerd/containerd.sock。如果是K3s叢集,可按照樣本修改。
CONTAINERD_SOCK_PATH=/run/k3s/containerd/containerd.sock
logreader_max_rotate_queue_size
Int
輪轉隊列最大長度。預設值:20。當日誌採集發生阻塞或延時時,待採集的檔案會持有檔案控制代碼在隊列中等待。
當採集延時時,如果需要控制磁碟最大用量,可考慮減小該值。
警告當延時的檔案數超過該值時,Logtail將直接跳過新檔案的採集。
"logreader_max_rotate_queue_size" : 10
force_release_deleted_file_fd_timeout
Int
容器退出或者檔案刪除將在一定時間內釋放控制代碼,您可以指定對應的時間。預設值:-1,表示關閉功能。值為0時,表示立刻釋放。單位:秒。
如果您要控制containerd容器的最大銷毀延時,可考慮將值設定該參數。
警告當採集發生延時時,延時超過配置的資料會丟失。
"force_release_deleted_file_fd_timeout" : 0
data_endpoint_policy
string
Logtail對Log Service訪問網域名稱的切換策略。可選值如下:
說明您可以在ilogtail_config.json檔案的data_server_list參數中,查看是否已配置預設網域名稱。更多資訊,請參見啟動參數設定檔(ilogtail_config.json)。
designated_first(預設)
如果已指定某個地區的預設網域名稱且預設網域名稱可用,則系統優先使用預設網域名稱。
如果已指定某個地區的預設網域名稱但預設網域名稱不可用,則系統會自動選擇一個可用網域名稱。
如果未指定某個地區的預設網域名稱,則系統會自動選擇一個可用網域名稱。
designated_locked
如果已指定某個地區的預設網域名稱,不管其是否可用,系統都將只使用預設網域名稱。
如果未指定某個地區的預設網域名稱,系統會自動選擇一個可用網域名稱。
僅Linux Logtail 1.5.0及以上版本或Windows Logtail 1.5.0.0及以上版本支援該參數。
"data_endpoint_policy" : "designated_first"
inotify_black_list
Array<String>
inotify監聽黑名單,黑名單為完全符合,此列表中的目錄不會啟用inotify監聽。
"inotify_black_list": ["/tmp"]
host_path_blacklist
String
全域主機路徑黑名單,黑名單為子串匹配。
Linux系統下多個子串以半形冒號(:)分隔。
Windows系統下多個子串以半形分號(;)分隔。
例如
"host_path_blacklist" : "/volumes/kubernetes.io~csi/nas-"表示禁止採集NAS掛載資料。僅Linux Logtail 1.8.0及以上版本或Windows Logtail 1.8.0.0及以上版本支援該參數。
"host_path_blacklist" : "/volumes/kubernetes.io~csi/nas-"
LOGTAIL_LOG_LEVEL
String
日誌列印層級,需通過環境變數進行配置。預設值:空,表示info,可選值trace、debug、info、warning、error和fatal。
僅Linux Logtail 1.8.0及以上版本或Windows Logtail 1.8.0.0及以上版本支援該參數。
LOGTAIL_LOG_LEVEL=info
FORCE_RELEASE_STOP_CONTAINER_FILE
Boolean
配置方式:僅支援通過環境變數方式進行配置。
功能描述:當該參數設定為
true時,Logtail 會在業務容器退出時立即釋放容器檔案控制代碼。此操作可防止因檔案控制代碼未釋放而導致容器無法正常退出。注意事項:
此時無法保證容器內資料擷取的完整性。
建議在業務退出前增加幾秒的延遲,以確保日誌能夠完整採集。
支援版本:
Linux Logtail 2.1.6及以上版本
"FORCE_RELEASE_STOP_CONTAINER_FILE" : "true"
default_reader_flush_timeout
int
最後一行日誌完整性判定逾時,預設值:60,單位:秒。
僅 Logtail 2.0.0及以上版本支援該參數。
"default_reader_flush_timeout" : 1
重啟Logtail使配置生效。
/etc/init.d/ilogtaild stop && /etc/init.d/ilogtaild start重啟後,您可以執行
/etc/init.d/ilogtaild status命令檢查Logtail狀態。
附錄:環境變數說明
環境變數與Logtail啟動參數的對應關係如下。
表 2. 環境變數與Logtail啟動參數對應關係
參數 | 環境變數 | 優先順序 | 支援版本 |
cpu_usage_limit | cpu_usage_limit | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
mem_usage_limit | mem_usage_limit | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
max_bytes_per_sec | max_bytes_per_sec | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
process_thread_count | process_thread_count | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
send_request_concurrency | send_request_concurrency | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
check_point_filename | check_point_filename或ALIYUN_LOGTAIL_CHECK_POINT_PATH | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
docker_file_cache_path | docker_file_cache_path | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
user_config_file_path | user_config_file_path | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
discard_old_data | discard_old_data | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
working_ip | working_ip或ALIYUN_LOGTAIL_WORKING_IP | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
working_hostname | working_hostname或ALIYUN_LOGTAIL_WORKING_HOSTNAME | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
max_read_buffer_size | max_read_buffer_size | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
oas_connect_timeout | oas_connect_timeout | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
oas_request_timeout | oas_request_timeout | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
data_server_port | data_server_port | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
accept_multi_config | accept_multi_config | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
enable_log_time_auto_adjust | enable_log_time_auto_adjust | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
check_point_dump_interval | check_point_dump_interval | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
enable_checkpoint_sync_write | enable_checkpoint_sync_write | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
docker_config_update_interval | docker_config_update_interval或ALIYUN_LOGTAIL_DOCKER_CONFIG_UPDATE_INTERVAL | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
max_docker_config_update_times | max_docker_config_update_times或ALIYUN_LOGTAIL_MAX_DOCKER_CONFIG_UPDATE_TIMES | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
logreader_max_rotate_queue_size | logreader_max_rotate_queue_size | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以設定檔為準。 |
|
force_release_deleted_file_fd_timeout | force_release_deleted_file_fd_timeout | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
host_path_blacklist | host_path_blacklist | 如果您通過環境變數和設定檔修改了Logtail啟動參數,以環境變數為準。 |
|
不支援 | FORCE_RELEASE_STOP_CONTAINER_FILE | 該參數只支援通過環境變數修改。 | Linux Logtail 2.1.6及以上版本 |
Logtail設定檔與記錄檔案
Logtail運行時依賴一系列的設定檔併產生部分資訊記錄檔案,下面將介紹常見檔案的基本資料及路徑。
啟動參數設定檔(ilogtail_config.json)
ilogtail_config.json檔案用於配置Logtail的啟動參數,檔案類型為JSON。更多資訊,請參見設定Logtail啟動參數。
該檔案必須為合法JSON,否則無法啟動Logtail。
修改該檔案後,必須重啟Logtail才會生效。具體操作,請參見啟動和停止Logtail。
Logtail預設使用HTTP協議和服務端進行管控面和資料面的通訊,使用HTTPS協議和服務端進行鑒權。
如果出於安全考慮,需要使用HTTPS協議和服務端進行通訊,則可以分別將
config_server_address和data_server_list.endpoint顯式指定為https。如果使用HTTPS協議傳輸資料,會增加傳輸延時,非關鍵情境不建議使用。
安裝Logtail後,您可以在ilogtail_config.json檔案進行如下操作。
修改Logtail的運行參數。
檢驗安裝命令是否正確。
ilogtail_config.json檔案中的
config_server_address參數和data_server_list參數的值取決於安裝時選擇的安裝命令,如果其中的地區和Simple Log Service所在地區不一致或地址無法聯通,說明安裝時選擇了錯誤的命令。這時Logtail無法正常採集日誌,需重新安裝。
檔案路徑
主機環境
作業系統
Logtail
ilogtail_config.json檔案路徑
Linux
Logtail(64位程式)
/usr/local/ilogtail/ilogtail_config.json
Windows(64位作業系統)
Logtail(64位程式)
C:\Program Files\Alibaba\Logtail\ilogtail_config.json
Logtail(32位程式)
C:\Program Files (x86)\Alibaba\Logtail\ilogtail_config.json
說明Windows 64位作業系統支援運行32/64位應用程式,但是出於相容性考慮,在Windows 64位作業系統上,Windows會使用單獨的x86目錄來存放32位應用程式。
Windows (32位作業系統)
Logtail(32位程式)
C:\Program Files\Alibaba\Logtail\ilogtail_config.json
容器環境
ilogtail_config.json檔案儲存體在Logtail容器中,檔案路徑配置在Logtail容器的環境變數
ALIYUN_LOGTAIL_CONFIG中,您可通過docker inspect ${logtail_container_name} | grep ALIYUN_LOGTAIL_CONFIG命令查看。例如:/etc/ilogtail/conf/cn-hangzhou/ilogtail_config.json。
檔案樣本
$cat /usr/local/ilogtail/ilogtail_config.json { "config_server_address" : "http://logtail.cn-hangzhou-intranet.log.aliyuncs.com", "data_server_list" : [ { "cluster" : "cn-hangzhou", "endpoint" : "cn-hangzhou-intranet.log.aliyuncs.com" } ], "cpu_usage_limit" : 0.4, "mem_usage_limit" : 100, "max_bytes_per_sec" : 2097152, "process_thread_count" : 1, "send_request_concurrency" : 4, "streamlog_open" : false }
使用者標識設定檔
使用者標識設定檔中包含阿里雲主帳號的ID資訊,用於標識這台伺服器有許可權被該帳號訪問、採集日誌。更多資訊,請參見配置使用者標識。
在採集非本帳號ECS、自建IDC、其他雲廠商伺服器日誌時需要配置使用者標識。
使用者標識設定檔中必須配置阿里雲帳號(主帳號)ID,不支援RAM使用者。
使用者標識設定檔只需設定檔名,無需設定檔尾碼。
一台伺服器上可配置多個使用者標識,Logtail容器中僅支援配置一個使用者標識。
檔案路徑
主機環境
Linux:/etc/ilogtail/users/。
Windows:C:\LogtailData\users\。
容器環境
使用者標識儲存在Logtail容器的環境變數
ALIYUN_LOGTAIL_USER_ID中,您可通過docker inspect ${logtail_container_name} | grep ALIYUN_LOGTAIL_USER_ID命令查看。
檔案樣本
$ls /etc/ilogtail/users/
使用者自訂標識檔案(user_defined_id)
user_defined_id檔案用於配置使用者自訂標識。更多資訊,請參見建立使用者自訂標識機器組。
建立自訂標識機器組時需要配置user_defined_id檔案。
檔案路徑
主機環境
Linux:/etc/ilogtail/user_defined_id。
Windows:C:\LogtailData\user_defined_id。
容器環境
使用者自訂標識配置在Logtail容器的環境變數
ALIYUN_LOGTAIL_USER_DEFINED_ID中,可通過docker inspect ${logtail_container_name} | grep ALIYUN_LOGTAIL_USER_DEFINED_ID命令查看。
檔案樣本
$cat /etc/ilogtail/user_defined_id aliyun-ecs-rs1e16355
Logtail採集設定檔(user_log_config.json)
user_log_config.json檔案記錄Logtail從Simple Log Service擷取的Logtail採集配置資訊,檔案類型為JSON,每次Logtail採集配置更新時會同步更新該檔案。可通過user_log_config.json檔案確認Logtail採集配置是否已經下發到伺服器。Logtail採集設定檔存在,且內容與Simple Log Service上的Logtail採集配置一致,表示Logtail採集配置已下發。
除手動設定AccessKey資訊、資料庫密碼等敏感資訊外,不建議修改該檔案。
檔案路徑
主機環境
作業系統
Logtail
user_log_config.json檔案路徑
Linux
Logtail(64位程式)
/usr/local/ilogtail/user_log_config.json
Windows(64位作業系統)
Logtail(64位程式)
C:\Program Files\Alibaba\Logtail\user_log_config.json
Logtail(32位程式)
C:\Program Files (x86)\Alibaba\Logtail\user_log_config.json
說明Windows 64位作業系統支援運行32/64位應用程式,但是出於相容性考慮,在Windows 64位作業系統上,Windows會使用單獨的x86目錄來存放32位應用程式。
Windows (32位作業系統)
Logtail(32位程式)
C:\Program Files\Alibaba\Logtail\user_log_config.json
容器環境
user_log_config.json檔案儲存體在Logtail容器中,檔案路徑為/usr/local/ilogtail/user_log_config.json。
檔案樣本
$cat /usr/local/ilogtail/user_log_config.json { "metrics" : { "##1.0##k8s-log-c12ba2028*****939f0b$app-java" : { "aliuid" : "16542189*****50", "category" : "app-java", "create_time" : 1534739165, "defaultEndpoint" : "cn-hangzhou-intranet.log.aliyuncs.com", "delay_alarm_bytes" : 0, "enable" : true, "enable_tag" : true, "filter_keys" : [], "filter_regs" : [], "group_topic" : "", "local_storage" : true, "log_type" : "plugin", "log_tz" : "", "max_send_rate" : -1, "merge_type" : "topic", "plugin" : { "inputs" : [ { "detail" : { "IncludeEnv" : { "aliyun_logs_app-java" : "stdout" }, "IncludeLable" : { "io.kubernetes.container.name" : "java-log-demo-2", "io.kubernetes.pod.namespace" : "default" }, "Stderr" : true, "Stdout" : true }, "type" : "service_docker_stdout" } ] }, "priority" : 0, "project_name" : "k8s-log-c12ba2028c*****ac1286939f0b", "raw_log" : false, "region" : "cn-hangzhou", "send_rate_expire" : 0, "sensitive_keys" : [], "tz_adjust" : false, "version" : 1 } } }
AppInfo記錄檔案(app_info.json)
app_info.json檔案記錄Logtail的啟動時間、擷取到的IP地址、主機名稱等資訊。
如果已在伺服器的/etc/hosts檔案中設定了主機名稱與IP地址綁定,則自動擷取綁定的IP地址。如果沒有設定主機名稱綁定,會自動擷取原生第一塊網卡的IP地址。
AppInfo記錄檔案僅用於記錄Logtail內部資訊。修改該檔案不會改變Logtail擷取的IP地址。
如果修改了伺服器的主機名稱等網路設定,請重啟Logtail,擷取新的IP地址。
檔案路徑
主機環境
作業系統
Logtail
app_info.json檔案路徑
Linux
Logtail(64位程式)
/usr/local/ilogtail/app_info.json
Windows(64位作業系統)
Logtail(64位程式)
C:\Program Files\Alibaba\Logtail\app_info.json
Logtail(32位程式)
C:\Program Files (x86)\Alibaba\Logtail\app_info.json
說明Windows 64位作業系統支援運行32/64位應用程式,但是出於相容性考慮,在Windows 64位作業系統上,Windows會使用單獨的x86目錄來存放32位應用程式。
Windows (32位作業系統)
Logtail(32位程式)
C:\Program Files\Alibaba\Logtail\app_info.json
容器環境
app_info.json檔案儲存體在Logtail容器中,檔案路徑為/usr/local/ilogtail/app_info.json。
檔案樣本
$cat /usr/local/ilogtail/app_info.json { "UUID" : "", "hostname" : "logtail-ds-slpn8", "instance_id" : "E5F93BC6-B024-11E8-8831-0A58AC14039E_1**.***.***.***_1536053315", "ip" : "1**.***.***.***", "logtail_version" : "0.16.13", "os" : "Linux; 3.10.0-693.2.2.el7.x86_64; #1 SMP Tue Sep 12 22:26:13 UTC 2017; x86_64", "update_time" : "2018-09-04 09:28:36" }欄位
說明
UUID
伺服器序號。
hostname
主機名稱。
instance_id
隨機產生的Logtail唯一標識。
ip
Logtail擷取到的IP地址。該欄位為空白時表示Logtail沒有擷取到IP地址,Logtail無法正常運行,請為伺服器設定IP地址並重啟Logtail。
說明如果您建立了IP地址機器組,請確保機器組中配置的IP與此處顯示的IP地址一致。若不一致,請確認主機IP的正確值,選擇在Simple Log Service控制台上修改機器組內IP地址,或者在設定Logtail啟動參數中修改參數working_ip的值。
logtail_version
Logtail用戶端版本。
os
作業系統版本。
update_time
Logtail最近一次啟動時間。
Logtail作業記錄(ilogtail.LOG)
ilogtail.LOG檔案記錄了Logtail的作業記錄,記錄層級從低到高分別為INFO、WARN和ERROR,其中INFO類型的日誌無需關注。
如果採集異常,請先診斷採集錯誤,根據具體的錯誤類型和Logtail作業記錄排查問題。更多資訊,請參見如何查看Logtail採集錯誤資訊。
如果因Logtail採集異常提交工單時,請同時上傳該日誌。
檔案路徑
主機環境
作業系統
Logtail
ilogtail.LOG件路徑
Linux
Logtail(64位程式)
/usr/local/ilogtail/ilogtail.LOG
Windows(64位作業系統)
Logtail(64位程式)
C:\Program Files\Alibaba\Logtail\ilogtail.LOG
Logtail(32位程式)
C:\Program Files (x86)\Alibaba\Logtail\ilogtail.LOG
說明Windows 64位作業系統支援運行32/64位應用程式,但是出於相容性考慮,在Windows 64位作業系統上,Windows會使用單獨的x86目錄來存放32位應用程式。
Windows (32位作業系統)
Logtail(32位程式)
C:\Program Files\Alibaba\Logtail\ilogtail.LOG
容器環境:
ilogtail.LOG檔案儲存體在Logtail容器中,檔案路徑為/usr/local/ilogtail/ilogtail.LOG。
檔案樣本
$tail /usr/local/ilogtail/ilogtail.LOG [2018-09-13 01:13:59.024679] [INFO] [3155] [build/release64/sls/ilogtail/elogtail.cpp:123] change working dir:/usr/local/ilogtail/ [2018-09-13 01:13:59.025443] [INFO] [3155] [build/release64/sls/ilogtail/AppConfig.cpp:175] load logtail config file, path:/etc/ilogtail/conf/ap-southeast-1/ilogtail_config.json [2018-09-13 01:13:59.025460] [INFO] [3155] [build/release64/sls/ilogtail/AppConfig.cpp:176] load logtail config file, detail:{ "config_server_address" : "http://logtail.ap-southeast-1-intranet.log.aliyuncs.com", "data_server_list" : [ { "cluster" : "ap-southeast-1", "endpoint" : "ap-southeast-1-intranet.log.aliyuncs.com" } ]
Logtail外掛程式日誌(logtail_plugin.LOG)
logtail_plugin.LOG檔案記錄Logtail外掛程式的作業記錄,記錄層級從低到高分別為INFO、WARN和ERROR,其中INFO類型的日誌無需關注。
如果在診斷採集錯誤時,提示CANAL_RUNTIME_ALARM等錯誤,可以通過logtail_plugin.LOG檔案排查。
如果因外掛程式異常提交工單時,請在工單中上傳該檔案。
檔案路徑
主機環境
作業系統
Logtail
logtail_plugin.LOG檔案路徑
Linux
Logtail(64位程式)
/usr/local/ilogtail/logtail_plugin.LOG
Windows(64位作業系統)
Logtail(64位程式)
C:\Program Files\Alibaba\Logtail\logtail_plugin.LOG
Logtail(32位程式)
C:\Program Files (x86)\Alibaba\Logtail\logtail_plugin.LOG
說明Windows 64位作業系統支援運行32/64位應用程式,但是出於相容性考慮,在Windows 64位作業系統上,Windows會使用單獨的x86目錄來存放32位應用程式。
Windows (32位作業系統)
Logtail(32位程式)
C:\Program Files\Alibaba\Logtail\logtail_plugin.LOG
容器環境
logtail_plugin.LOG檔案儲存體在Logtail容器中,檔案路徑為/usr/local/ilogtail/logtail_plugin.LOG。
檔案樣本
$tail /usr/local/ilogtail/logtail_plugin.LOG 2018-09-13 02:55:30 [INF] [docker_center.go:525] [func1] docker fetch all:start 2018-09-13 02:55:30 [INF] [docker_center.go:529] [func1] docker fetch all:stop 2018-09-13 03:00:30 [INF] [docker_center.go:525] [func1] docker fetch all:start 2018-09-13 03:00:30 [INF] [docker_center.go:529] [func1] docker fetch all:stop 2018-09-13 03:03:26 [INF] [log_file_reader.go:221] [ReadOpen] [##1.0##sls-zc-test-hz-pub$docker-stdout-config,k8s-stdout] open file for read, file:/logtail_host/var/lib/docker/containers/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624-json.log offset:40379573 status:794354-64769-40379963 2018-09-13 03:03:26 [INF] [log_file_reader.go:221] [ReadOpen] [##1.0##k8s-log-c12ba2028cfb444238cd9ac1286939f0b$docker-stdout-config,k8s-stdout] open file for read, file:/logtail_host/var/lib/docker/containers/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624-json.log offset:40379573 status:794354-64769-40379963 2018-09-13 03:04:26 [INF] [log_file_reader.go:308] [CloseFile] [##1.0##sls-zc-test-hz-pub$docker-stdout-config,k8s-stdout] close file, reason:no read timeout file:/logtail_host/var/lib/docker/containers/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624-json.log offset:40379963 status:794354-64769-40379963 2018-09-13 03:04:27 [INF] [log_file_reader.go:308] [CloseFile] [##1.0##k8s-log-c12ba2028cfb444238cd9ac1286939f0b$docker-stdout-config,k8s-stdout] close file, reason:no read timeout file:/logtail_host/var/lib/docker/containers/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624/7f46afec6a14de39b59ee9cdfbfa8a70c2fa26f1148b2e2f31bd3410f5b2d624-json.log offset:40379963 status:794354-64769-40379963 2018-09-13 03:05:30 [INF] [docker_center.go:525] [func1] docker fetch all:start 2018-09-13 03:05:30 [INF] [docker_center.go:529] [func1] docker fetch all:stop
容器路徑對應檔(docker_path_config.json)
docker_path_config.json檔案只有在採集容器日誌時才會建立,用於記錄容器檔案和宿主機檔案的路徑映射關係。檔案類型為JSON。
如果在診斷採集錯誤時,如果提示DOCKER_FILE_MAPPING_ALARM錯誤,表示添加Docker檔案對應失敗,可以通過docker_path_config.json檔案排查。
docker_path_config.json檔案為記錄檔案,任何修改操作均不會生效。刪除後會自動建立,不影響業務的正常運行。
因採集容器日誌異常而提交工單時,請在工單中上傳此檔案。
檔案路徑
/usr/local/ilogtail/docker_path_config.json
檔案樣本
$cat /usr/local/ilogtail/docker_path_config.json { "detail" : [ { "config_name" : "##1.0##k8s-log-c12ba2028cfb444238cd9ac1286939f0b$nginx", "container_id" : "df19c06e854a0725ea7fca7e0378b0450f7bd3122f94fe3e754d8483fd330d10", "params" : "{\n \"ID\" : \"df19c06e854a0725ea7fca7e0378b0450f7bd3122f94fe3e754d8483fd330d10\",\n \"Path\" : \"/logtail_host/var/lib/docker/overlay2/947db346695a1f65e63e582ecfd10ae1f57019a1b99260b6c83d00fcd1892874/diff/var/log\",\n \"Tags\" : [\n \"nginx-type\",\n \"access-log\",\n \"_image_name_\",\n \"registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest\",\n \"_container_name_\",\n \"nginx-log-demo\",\n \"_pod_name_\",\n \"nginx-log-demo-h2lzc\",\n \"_namespace_\",\n \"default\",\n \"_pod_uid_\",\n \"87e56ac3-b65b-11e8-b172-00163f008685\",\n \"_container_ip_\",\n \"172.20.4.224\",\n \"purpose\",\n \"test\"\n ]\n}\n" } ], "version" : "0.1.0" }