導(dǎo)入歷史日志文件
Logtail只采集增量日志。如果下發(fā)Logtail配置后,日志文件無更新,則Logtail不會(huì)采集該文件中的日志。如果您需要采集歷史日志,可使用Logtail自帶的導(dǎo)入歷史日志文件功能。
前提條件
已在服務(wù)器上安裝0.16.15(Linux系統(tǒng))或1.0.0.1(Windows系統(tǒng))及以上版本的Logtail。具體操作,請參見安裝Logtail(Linux系統(tǒng))或安裝Logtail(Windows系統(tǒng))。
已創(chuàng)建Logtail配置并應(yīng)用到機(jī)器組。具體操作,請參見文本日志概述。
說明如果該Logtail配置只用來導(dǎo)入歷史日志文件,可以設(shè)置一個(gè)不存在的采集路徑。
背景信息
Logtail基于監(jiān)聽文件的修改事件進(jìn)行日志采集,還支持從本地文件中加載事件,以驅(qū)動(dòng)日志采集。采集歷史日志文件就是基于本地事件加載實(shí)現(xiàn)的功能。
導(dǎo)入本地事件最長延遲為1分鐘。
由于加載本地事件屬于特殊行為,Logtail會(huì)向服務(wù)器發(fā)送
LOAD_LOCAL_EVENT_ALARM
消息。如果您導(dǎo)入的文件量較大,建議修改Logtail啟動(dòng)參數(shù),建議將CPU調(diào)整至2.0及以上,內(nèi)存調(diào)整至512MB及以上。更多信息,請參見設(shè)置Logtail啟動(dòng)參數(shù)。
如果您的日志文件中存在中文,需要設(shè)置文件字符集。
您需要在Logtail的安裝目錄下執(zhí)行導(dǎo)入歷史日志文件的操作,該安裝目錄在不同操作系統(tǒng)中位于不同位置,具體說明如下表所示。
操作系統(tǒng) | Logtail | Logtail安裝目錄 |
Linux | Logtail(64位程序) | /usr/local/ilogtail |
Windows(64位操作系統(tǒng)) | Logtail(64位程序) | C:\Program Files\Alibaba\Logtail |
Logtail(32位程序) | C:\Program Files (x86)\Alibaba\Logtail 說明 Windows 64位操作系統(tǒng)支持運(yùn)行32/64位應(yīng)用程序,但是出于兼容性考慮,在Windows 64位操作系統(tǒng)上,Windows會(huì)使用單獨(dú)的x86目錄來存放32位應(yīng)用程序。 | |
Windows (32位操作系統(tǒng)) | Logtail(32位程序) | C:\Program Files\Alibaba\Logtail |
操作步驟
獲取Logtail配置的唯一標(biāo)識。
您可以在Logtail安裝目錄下的user_log_config.json文件中獲取Logtail配置的唯一標(biāo)識。此處以Linux系統(tǒng)為例,查看Logtail配置的唯一標(biāo)識。
grep "##" /usr/local/ilogtail/user_log_config.json | awk '{print $1}'
添加本地事件。
在Logtail安裝目錄下,創(chuàng)建local_event.json文件。
在local_event.json文件中添加本地事件,類型為標(biāo)準(zhǔn)JSON,格式如下所示。
重要為了防止Logtail加載無效的JSON,建議您先將本地事件配置保存在臨時(shí)文件中,編輯完成后拷貝到local_event.json文件中。
[ { "config" : "${your_config_unique_id}", "dir" : "${your_log_dir}", "name" : "${your_log_file_name}" }, { ... } ... ]
參數(shù)
說明
config
填寫步驟1中獲取的Logtail配置唯一標(biāo)識,例如
##1.0##log-config-test$ecs-test
。dir
歷史日志文件所在目錄,例如:/data/logs。
重要文件夾不能以
/
結(jié)尾。文件夾目錄不能是Logtail安裝目錄(
/usr/local/ilogtail
)。
name
歷史日志文件名,支持通配符,例如access.log.2018-08-08、access.log*。
本文以Linux系統(tǒng)為例,介紹配置示例。
$ 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會(huì)在1分鐘內(nèi)將文件內(nèi)容加載到內(nèi)存中,并將local_event.json文件中的內(nèi)容清空。
您可以通過以下方式檢查Logtail是否已加載Logtail采集配置。
local_event.json文件中的內(nèi)容被清空,則說明Logtail已讀取到事件信息。
檢查Logtail安裝目錄中的ilogtail.LOG文件中是否包含
process local event
參數(shù)。如果local_event.json文件被清空但未查詢到process local event
參數(shù),可能是因?yàn)閘ocal_event.json文件內(nèi)容不合法而被過濾。
已加載Logtail采集配置但未采集到數(shù)據(jù),是什么原因?
Logtail采集配置不合法。
local_event.json文件配置不合法。
日志文件不在Logtail采集配置已設(shè)定的路徑下。
該日志文件已被Logtail采集過。
后續(xù)操作
導(dǎo)入歷史文件采集成功后,查詢和分析請參見通過索引模式查詢和分析日志。