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采集过。
后续操作
导入历史文件采集成功后,查询和分析请参见通过索引模式查询和分析日志。