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