表 1. 文件采集限制
分类 限制说明
文件编码 支持UTF8/GBK编码日志文件,建议使用UTF8编码以获得更好的处理性能。如果日志文件为其它编码格式则会出现乱码、数据丢失等错误。
日志文件大小 无限制。
日志文件轮转 支持,流转文件名支持配置为.log*或者.log
日志解析阻塞时采集行为 日志解析阻塞时,Logtail会将该日志文件FD保持打开状态;若解析阻塞期间出现多次日志文件轮转,Logtail会尽可能保持各个轮转日志解析顺序。若未解析的日志轮转超过20个,则后续文件不被处理。更多内容请参考相关技术文章
软链接 支持监控目录为软链接。
单条日志大小 单条日志大小限制为512KB。多行日志按行首正则表达式划分后,每条日志大小限制仍为512KB。若日志超过512KB后,会强制拆分多块进行采集。例如:日志单条1025KB,则第一次处理前512KB,第二次处理512KB,第三次处理1KB。
正则表达式 正则表达式类型支持Perl兼容正则表达式。
同一文件对应多个采集配置 不支持,建议文件采集到一个Logstore,可以配置多份订阅。若有相关需求,可通过为文件配置软连接的方式绕过该限制。
文件打开行为 Logtail会保持被采集文件处于打开状态,若该文件超过5分钟未修改,则会关闭该文件(未发生轮转情况下)。
首次日志采集行为 Logtail只采集增量的日志文件,首次发现文件修改后,若文件大小超过1M,则从最后1M处开始采集,否则从开始位置采集;若配置下发后日志文件一直无修改,则不采集该文件。
非标准文本日志 对于日志中包含’\0’的行,该条日志会被截断到第一个’\0’处。
表 2. Checkpoint管理
项目 能力与限制
Checkpoint超时时间 若文件超过30天未修改,则会删除该Checkpoint。
Checkpoint保存策略 定期保存(15分钟),程序退出时会自动保存。
Checkpoint保存位置 保存路径默认为/tmp/logtail_checkpoint,可根据 配置启动参数 调整参数。
表 3. 配置限制
项目 能力与限制
配置更新 用户的配置更新生效的延时约30秒。
配置动态加载 支持,且其中某一配置更新不影响其他采集。
配置数 理论无限制,建议一台服务器采集配置数不超过100。
多租户隔离 各个采集配置间隔离。详细内容请参考相关技术文章
表 4. 资源、性能限制
项目 能力与限制
日志处理吞吐能力 原始日志流量默认限制为2MB/s(数据会编码压缩后上传,一般压缩率为5-10倍)。超过该日志流量则有可能丢失日志,可根据 配置启动参数 调整参数。
最大性能 单核能力:极简模式日志最大处理能力为100MB/s,正则默认最大处理能力为20MB/s(和正则复杂度有关),分隔符日志最大处理能力为40MB/s,JSON日志最大处理能力为30MB/s;开启多个处理线程性能可提高1.5-3倍左右
监控目录数 主动限制监控的目录层深,避免出现过多消耗用户资源。如果监控上限已到,则放弃监控更多目录和日志文件。限制最多3000个目录(含子目录)。
默认资源限制 默认Logtail最多会占用40%CPU、256MB内存,如日志产生速率较高,可根据 配置启动参数 调整参数。
资源超限处理策略 若3分钟内Logtail占用的相关资源超过最大限制,则Logtail会强制重启,此时数据可能会丢失或重复。
表 5. 错误处理限制
项目 能力与限制
网络错误处理 在出现网络异常时会主动重试并自动调整重试间隔。
资源配额超限处理 若数据发送速率超出Logstore最大配额,Logtail会阻塞采集并自动重试。详细内容请参考相关技术文章
超时最大尝试时间 若数据持续发送失败超过6小时,则丢弃该数据。
状态自检 支持异常情况下自动重启,例如程序异常退出及使用资源超限等。
表 6. 其他限制
项目 能力与限制
日志采集延迟 正常情况下从日志flush磁盘到Logtail采集改日志延迟不超过1秒(阻塞状态下除外)。
日志上传策略 Logtail会将同一文件的日志自动聚合上传,聚合条件为:日志超过2000条、日志总大小超过2M或者日志采集时间超过3秒,任一条件满足则触发上传行为。