本文简介Logtail采集数据时在文件采集、Checkpoint管理、配置、资源、性能、错误处理等方面的限制。

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

    Logtail内存最大可调整至2 GB,表示每个Logtail采集配置可监控100,000个文件,每个Logtail客户端可监控的文件数对应提高至1,000,000个。

默认资源限制 默认Logtail最多会占用40%CPU、256 MB内存,如果日志产生速率较高,可调整参数,更多信息,请参见配置Logtail启动参数
资源超限处理策略 若Logtail占用相关资源超过最大限制的时间超过5分钟,则Logtail会强制重启,此时数据可能会丢失或重复。
表 5. 错误处理限制
项目 能力与限制
网络错误处理 在出现网络异常时会主动重试并自动调整重试间隔。
资源配额超限处理 若数据发送速率超出Logstore最大配额,Logtail会阻塞采集并自动重试。更多信息,请参见相关技术文章
超时最大尝试时间 若数据持续发送失败超过6小时,则丢弃该数据。
状态自检 支持异常情况下自动重启,例如程序异常退出及使用资源超限等。
表 6. 其他限制
项目 能力与限制
日志采集延迟 正常情况下从日志写入磁盘到Logtail采集改日志延迟不超过1秒(阻塞状态下除外)。
日志上传策略 Logtail会将同一文件的日志自动聚合上传,聚合条件为:日志超过2000条、日志总大小超过2 M或者日志采集时间超过3秒,任一条件满足则触发上传行为。