安裝LoongCollector後,您還需要瞭解如何管理LoongCollector的生命週期,回合組態等內容。
LoongCollector常用命令
啟動LoongCollector
對採集效能有要求時,可修改啟動參數設定檔(ilogtail_config.json)後再啟動LoongCollector。
sudo /etc/init.d/loongcollectord start停止LoongCollector
sudo /etc/init.d/loongcollectord stop查看LoongCollector狀態
sudo /etc/init.d/loongcollectord status #返回loongcollector is running表示啟動成功。查看LoongCollector版本
cat /usr/local/ilogtail/app_info.json #版本資訊儲存在loongcollector_version欄位中。重啟LoongCollector
sudo /etc/init.d/loongcollectord restart卸載LoongCollector
範例程式碼中
${region_id}可使用cn-hangzhou替換,若想加快執行速度,請參考地區替換${region_id}為ECS所屬地區。wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh;執行卸載命令。
chmod +x loongcollector.sh; sudo ./loongcollector.sh uninstall;
升級LoongCollector
升級包含LoongCollector版本升級與Logtail升級到LoongCollector兩種情況,兩種情況的升級命令相同。
LoongCollector版本升級/Logtail升級到LoongCollector
LoongCollector在升級時停止運行,升級完成後自動啟動。升級僅覆蓋必要檔案,設定檔和Checkpoint檔案將被保留,確保升級期間日誌不會丟失。
在伺服器上執行下載命令擷取最新安裝包,範例程式碼中
${region_id}可使用cn-hangzhou替換,若想加快安裝包下載速度,請參考地區替換${region_id}為ECS所屬地區。wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh;執行升級命令:升級請使用
upgrade命令。若使用install命令,將執行覆蓋安裝,丟失原配置。chmod +x loongcollector.sh; sudo ./loongcollector.sh upgrade;若顯示以下資訊,則表示升級成功。
Upgrade loongcollector files successfully. Starting loongcollector ... Upgrade loongcollector successfully.
LoongCollector復原到Logtail
必須要重新下載logtail.sh指令碼,不能使用原來的logtail.sh指令碼。
在伺服器上執行下載命令擷取安裝包,範例程式碼中
${region_id}可使用cn-hangzhou替換,若想加快安裝包下載速度,請參考地區替換${region_id}為ECS所屬地區。wget https://logtail-release-${region_id}.oss-${region_id}.aliyuncs.com/linux64/logtail.sh -O logtail.sh;執行復原命令。如需指定版本,如指定 1.8.7 版本,參考注釋,根據實際情況替換版本號碼。
chmod +x logtail.sh; sudo ./logtail.sh upgrade; #chmod +x logtail.sh; sudo ./logtail.sh upgrade -v -v 1.8.7;
啟動參數設定檔(ilogtail_config.json)
檔案描述:配置LoongCollector的啟動參數,啟動參數配置不合理會影響採集效能,配置錯誤可能導致採集異常問題發生。
檔案路徑:/usr/local/ilogtail/ilogtail_config.json。
使用情境:Log Service限制了LoongCollector的採集效能,以防消耗過多伺服器資源,影響其他服務運行。當LoongCollector採集效能不滿足要求時,可通過修改啟動參數進行嘗試。
檔案樣本 :
{ "primary_region" : "cn-beijing", // 預設地區,可忽略 "config_servers" : //擷取採集配置時的地址 [ "http://logtail.cn-beijing.log.aliyuncs.com" ], "data_servers" : //與Log Service進行資料轉送的地址 [ { "region" : "cn-beijing", "endpoint_list": [ "cn-beijing.log.aliyuncs.com" ] } ], "cpu_usage_limit" : 0.4, "mem_usage_limit" : 384, "max_bytes_per_sec" : 20971520, "bytes_per_sec" : 1048576, "buffer_file_num" : 25, "buffer_file_size" : 20971520, "buffer_map_num" : 5 }參數表:下表僅列出需要關注的常用啟動參數,請根據需要新增或修改。未列出的參數請保持預設配置。
樣本情境:以下列舉一些常見的情境下的操作樣本供參考:
採集效能配置規劃
為防止採集器消耗過多伺服器資源,影響其他服務運行,Log Service對採集效能做了限制。當需要提升採集效能時,可修改啟動參數。
推薦參數值樣本
根據實際經驗推薦如下參數配置,適用於普通JSON檔案的採集情境。完整正則模式和分隔字元模式的效能與JSON模式相近,極簡模式效能為JSON模式的5倍。由於資料、規則的複雜度、採集目錄和檔案的數量都會對CPU和記憶體消耗帶來影響,請參照下述表格並結合實際情況按需調整。
添加或修改/usr/local/ilogtail/ilogtail_config.json中參數取值,並重啟LoongCollector使修改生效。不同採集速率下的建議值參考如下:
按表格中的採集速率大於40 MB/s列配置啟動參數時,採集效能已接近極限。
參數 | 描述 | 採集速率大於10 MB/s | 採集速率大於20 MB/s | 採集速率大於40 MB/s |
cpu_usage_limit | CPU使用閾值,以單核計算。
0.4表示Log Service將儘可能限制採集器對CPU單核使用不超過40%,超出後LoongCollector自動重啟。 該項為軟式節流,實際佔用的CPU可能超過限制值,超限5分鐘後將觸發熔斷保護自動重啟。 | 1 | 2 | 4 |
mem_usage_limit | 記憶體使用量閾值。
採集速率、監控目錄和檔案數量、發送阻塞程度與該參數有關。更多請參見限制說明 該項為軟式節流,實際佔用的記憶體可能超過限制值,超限5分鐘後將觸發熔斷保護自動重啟。 | 1024 | 2048 | 4096 |
process_thread_count | 採集器處理資料的線程數。
單線程可以處理極簡模式下24 MB/s的資料寫入或完整正則模式12 MB/s的資料寫入。預設情況下無需調整該參數取值。 | 2 | 4 | 8 |
send_request_concurrency | 非同步並發的個數。
如果寫入TPS很高,可以設定更高的非同步並發個數。可以按照一個並發支援0.5 MB/s~1 MB/s網路吞吐來計算,實際根據網路延時而定。 | 20 | 40 | 80 |
日誌傳輸網路延遲高、傳輸不穩定
發生日誌丟失或重複發送,LoongCollector 發送日誌時頻繁重試,網路連接中斷或波動頻繁等現象。可能的原因是:
網路頻寬不足:當採集的日誌量較大時,若網路頻寬不足以支撐傳輸需求,會導致日誌堆積、延遲增加。
網路環境不穩定:跨地區、跨網路可能導致網路延遲或丟包。
解決方案
利用阿里雲CDN邊緣節點進行日誌採集加速,相對公網採集在網路延遲、穩定性上具有很大優勢。開啟該功能將根據實際傳輸的資料量進行額外計費。
需要先開啟Project的日誌跨域傳輸加速功能。
停止LoongCollector:登入安裝LoongCollector的伺服器,執行
sudo /etc/init.d/loongcollectord stop命令。修改傳輸網域名稱:替換
/usr/local/ilogtail/ilogtail_config.json中data_servers參數下的endpoint_list參數的值為log-global.aliyuncs.com。這表明將資料轉送所使用的網域名稱變更為傳輸加速網域名稱。啟動LoongCollector:執行
sudo /etc/init.d/loongcollectord start命令。
單條日誌過大被截斷
發生單條日誌長度過大,採集後日誌被截斷的現象,原因是每條日誌讀取的最大值預設為524288(512 KB),若超過該值Log Service將截斷日誌。多行日誌按行首Regex劃分後,每條日誌大小限制仍為512 KB,若超限會被強制拆分為多條進行採集。
解決方案
在
/usr/local/ilogtail/ilogtail_config.json中修改max_read_buffer_size參數的值,若該參數不存在則新增。該參數取值最大為8388608(8 MB)。請注意記憶體佔用線性增長,需預留
max_read_buffer_size*檔案並發數記憶體。重啟LoongCollector:執行
sudo /etc/init.d/loongcollectord restart命令。
傳輸時發生間隔15分鐘以上日誌丟失
發生採集日誌時可以正常傳輸,但部分日誌丟失,且丟失日誌時間戳記與當前Log Service服務端時間相差15分鐘以上的現象,原因可能是出於資料安全考慮,Log Service會對請求(包括LoongCollector發起的請求)所攜帶的時間進行校正,拒絕與Log Service端時間相差超過15分鐘的請求。當伺服器本地時間被修改後(例如某些測試情境下需要調整本地時間為未來時間),則導致請求被拒絕,寫入資料失敗。
解決方案
在
/usr/local/ilogtail/ilogtail_config.json中修改enable_log_time_auto_adjust參數的值為true,若該參數不存在則新增。設定後日誌時間可自適應伺服器本地時間。開啟該功能後,日誌時間將被加上Log Service端的時間與伺服器本地時間的位移量。由於位移量只在請求被Log Service端拒絕時更新,因此可能出現Log Service端所查詢到的日誌的時間和日誌實際的寫入時間不一致的情況。
重啟LoongCollector:執行
sudo /etc/init.d/loongcollectord restart命令。
切換至其他地區Project
由於某些原因,在伺服器上採集的日誌需要儲存到新的Project中。
解決方案
若需要複用採集配置,請先儲存採集設定檔中內容,卸載操作會刪除該檔案。
卸載伺服器上的LoongCollector。
根據新Project與伺服器的關係,選擇對應的LoongCollector安裝方案。
如果要將歷史資料也一併轉移到新Project,此處提供兩種方式:
日誌傳輸延時過長最佳化
發生Log Service的日誌時間戳記和伺服器生產日誌的時間相差在三秒以上的現象,原因可能是:
同時採集的檔案數超過100個或者監控的目錄下的檔案數超過5000個,佔用大量記憶體。
日誌資料流量大(例如極簡模式下超過2 MB/s,正則模式下超過1 MB/s),CPU佔用率過高。
開通CloudLens for SLS,在採集監控可以查看當前主機的CPU佔用率。
LoongCollector發送資料到Log Service的速率超過10MB/s。
開通CloudLens for SLS,在採集監控可以查看當前主機的採集速率。
解決方案
參考上述可能原因調整檔案數量或資料流量。如果無法減少記憶體使用量或降低傳輸串流量,建議參考採集效能配置規劃調整採集效能。
其他常用設定檔
LoongCollector運行時一系列設定檔與資訊記錄檔案如下:
LoongCollector採集設定檔(user_log_config.json)
描述:檔案記錄LoongCollector從Log Service擷取的採集配置資訊,每次採集配置更新時會同步更新該檔案。除手動設定AccessKey資訊、資料庫密碼等敏感資訊外,不建議修改該檔案。
路徑:/usr/local/ilogtail/user_log_config.json。
使用情境:可通過查看該檔案確認採集配置是否已經下發到伺服器。若該檔案存在,且內容與Log Service上的採集配置一致,表示採集配置已下發。
AppInfo記錄檔案(app_info.json)
描述:app_info.json檔案記錄LoongCollector的啟動時間、擷取到的IP地址、主機名稱等資訊。該檔案僅作記錄,任何修改操作均不會生效。
路徑:/usr/local/ilogtail/app_info.json。
使用情境:可查看Log Service採集時識別到的伺服器ip資訊,判斷與Log Service控制台中IP型機器組內IP資訊是否一致,一般用於解決IP型機器組心跳失敗問題。
如果已在伺服器的/etc/hosts檔案中設定了主機名稱與IP地址綁定,則自動擷取綁定的IP地址。如果沒有設定主機名稱綁定,會自動擷取原生第一塊網卡的IP地址。若設定了ilogtail_config.json中的working_ip參數,則以working_ip值作為伺服器的IP地址。
LoongCollector作業記錄(loongcollector.LOG)
描述:loongcollector.LOG檔案記錄了LoongCollector的作業記錄,記錄層級從低到高分別為INFO、WARN和ERROR。
路徑:/usr/local/ilogtail/loongcollector.LOG。
使用情境:如果採集異常,請先使用LoongCollector運行情況診斷與監控排查錯誤,根據日誌採集錯誤類型排查具體的錯誤類型和LoongCollector作業記錄排查問題。
使用者ID檔案
描述:包含日誌採集到的Project所屬的阿里雲主帳號ID資訊,檔案名稱即帳號ID,無需尾碼,用於標識該帳號有許可權訪問、採集這台伺服器的日誌。
路徑:/etc/ilogtail/users/{阿里雲帳號ID}。
使用情境:只有在採集非本帳號ECS、自建伺服器、其他雲廠商伺服器日誌時需要配置使用者ID。多個帳號對同一台伺服器進行日誌採集時,支援在同一台伺服器上建立多個使用者ID檔案。
使用者自訂標識檔案
描述:用於配置使用者自訂標識,作為使用者自訂標識機器組的內容,協助Log Service探索服務器上的LoongCollector並建立心跳。
路徑:/etc/ilogtail/user_defined_id。
使用情境:使用使用者自訂機器組時需要配置,瞭解更多資訊請參考機器組與LoongCollector採集配置關聯指南。
CheckPoint檔案
描述:checkpoint機制用於記錄Log Service當前採集位置以確保日誌完整性。
路徑:預設為
/tmp/logtail_checkpoint。使用情境:可參考限制說明修改啟動參數檔案進行管理。
常見問題
伺服器無法串連外部網路時如何升級
在需要升級
LoongCollector的伺服器上執行uname -m查看系統架構後,在可以訪問公網的伺服器上選擇對應命令執行:${region_id}需替換為Project所屬地區的地區。ARM架構:
wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh;wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/aarch64/main/loongcollector-linux64.tar.gz;x86-64架構:
wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh;wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/x86_64/main/loongcollector-linux64.tar.gz;
將安裝指令碼和安裝包拷貝至需要升級
LoongCollector的伺服器上後,執行命令:chmod +x loongcollector.sh;./loongcollector.sh upgrade-local;