Logtail只採集增量日誌。如果下發Logtail配置後,記錄檔無更新,則Logtail不會採集該檔案中的日誌。如果您需要採集歷史日誌,可使用Logtail內建的匯入歷史記錄檔功能。
前提條件
已在伺服器上安裝0.16.15(Linux系統)或1.0.0.1(Windows系統)及以上版本的Logtail。具體操作,請參見安裝Logtail(Linux系統)或安裝Logtail(Windows系統)。
已建立Logtail配置並應用到機器組。具體操作,請參見文本日誌概述。
說明如果該Logtail配置只用來匯入歷史記錄檔,可以設定一個不存在的採集路徑。
背景資訊
Logtail基於監聽檔案的修改事件進行日誌採集,還支援從本地檔案中載入事件,以驅動日誌採集。採集歷史記錄檔就是基於本地事件載入實現的功能。
匯入本地事件最長延遲為1分鐘。
由於載入本地事件屬於特殊行為,Logtail會向伺服器發送
LOAD_LOCAL_EVENT_ALARM
訊息。如果您匯入的檔案量較大,建議修改Logtail啟動參數,建議將CPU調整至2.0及以上,記憶體調整至512MB及以上。更多資訊,請參見設定Logtail啟動參數。
如果您的記錄檔中存在中文,需要設定檔案字元集。
您需要在Logtail的安裝目錄下執行匯入歷史記錄檔的操作,該安裝目錄在不同作業系統中位於不同位置,具體說明如下表所示。
作業系統 | Logtail | Logtail安裝目錄 |
Linux | Logtail(64位程式) | /usr/local/ilogtail |
Windows(64位作業系統) | Logtail(64位程式) | C:\Program Files\Alibaba\Logtail |
Logtail(32位程式) | C:\Program Files (x86)\Alibaba\Logtail 說明 Windows 64位作業系統支援運行32/64位應用程式,但是出於相容性考慮,在Windows 64位作業系統上,Windows會使用單獨的x86目錄來存放32位應用程式。 | |
Windows (32位作業系統) | Logtail(32位程式) | C:\Program Files\Alibaba\Logtail |
操作步驟
擷取Logtail配置的唯一標識。
您可以在Logtail安裝目錄下的user_log_config.json檔案中擷取Logtail配置的唯一標識。此處以Linux系統為例,查看Logtail配置的唯一標識。
grep "##" /usr/local/ilogtail/user_log_config.json | awk '{print $1}'
添加本地事件。
在Logtail安裝目錄下,建立local_event.json檔案。
在local_event.json檔案中添加本地事件,類型為標準JSON,格式如下所示。
重要為了防止Logtail載入無效的JSON,建議您先將本地事件配置儲存在臨時檔案中,編輯完成後拷貝到local_event.json檔案中。
[ { "config" : "${your_config_unique_id}", "dir" : "${your_log_dir}", "name" : "${your_log_file_name}" }, { ... } ... ]
參數
說明
config
填寫步驟1中擷取的Logtail配置唯一標識,例如
##1.0##log-config-test$ecs-test
。dir
歷史記錄檔所在目錄,例如:/data/logs。
重要檔案夾不能以
/
結尾。檔案夾目錄不能是Logtail安裝目錄(
/usr/local/ilogtail
)。
name
歷史記錄檔名,支援萬用字元,例如access.log.2018-08-08、access.log*。
本文以Linux系統為例,介紹配置樣本。
$ cat /usr/local/ilogtail/local_event.json [ { "config": "##1.0##log-config-test$ecs-test", "dir": "/data/log", "name": "access.log*" }, { "config": "##1.0##log-config-test$tmp-test", "dir": "/tmp", "name": "access.log.2017-08-09" } ]
常見問題
檢查Logtail是否載入Logtail配置。
通常情況下,儲存local_event.json檔案後,Logtail會在1分鐘內將檔案內容載入到記憶體中,並將local_event.json檔案中的內容清空。
您可以通過以下方式檢查Logtail是否已載入Logtail採集配置。
local_event.json檔案中的內容被清空,則說明Logtail已讀取到事件資訊。
檢查Logtail安裝目錄中的ilogtail.LOG檔案中是否包含
process local event
參數。如果local_event.json檔案被清空但未查詢到process local event
參數,可能是因為local_event.json檔案內容不合法而被過濾。
已載入Logtail採集配置但未採集到資料,是什麼原因?
Logtail採集配置不合法。
local_event.json檔案配置不合法。
記錄檔不在Logtail採集配置已設定的路徑下。
該記錄檔已被Logtail採集過。
後續操作
匯入歷史檔案採集成功後,查詢和分析請參見通過索引模式查詢和分析日誌。