更新时间:2024-04-12 GMT+08:00

ICAgent

本文介绍日志采集器ICAgent的限制。

表1 ICAgent文件采集限制

限制项

说明

备注

文件编码

支持UTF8,其他编码可能会产生乱码。

可通过开关配置是否支持采集含有二进制内容的日志文件,二进制字符可能会展示为乱码。

不涉及。

主机类型

仅支持采集Linux云主机的日志。

不涉及。

日志文件大小

无限制。

不涉及。

日志文件轮转

ICAgent目前支持配置固定日志文件名或者模糊匹配文件名,用户需要自己处理日志文件轮转。

不涉及。

日志采集路径

Linux

  • 采集路径支持递归路径,**表示递归5层目录。示例:/var/logs/**/a.log。
  • 采集路径支持模糊匹配,匹配目录或文件名中的任何字符。示例:/var/logs/*/a.log、/var/logs/service/a*.log。
  • 采集路径如果配置的是目录,示例:/var/logs/,则只采集目录下后缀为“.log”、“.trace”和“.out”的文件;如果配置的是文件名,则直接采集对应文件,只支持文本类型的文件。
  • 采集路径不能重复配置,即同一主机下的同一路径,即使跨日志组和日志流,也只能配置一次。

不涉及。

软链接

不支持软链接。

不涉及。

单条日志大小

可通过开关配置是否支持日志拆分,单条日志大小限制不超过500KB,超过限制部分会被截断丢弃。

启用日志拆分,单条日志超过500KB会被拆分为多条采集。例如日志大小为600KB,被拆分为2条日志采集,第一条500KB,第二条100KB。仅支持linux主机,不支持windows主机;仅支持单行日志,不支持多行日志。

不涉及。

正则表达式

正则表达式类型支持Perl兼容正则表达式。

不涉及。

同一文件对应多个采集配置

同一个文件只能上报到一个日志组、日志流。如果配置一个文件采集到多个日志流,只会有一个配置生效。

不涉及。

文件打开行为

读取时打开,读取完后关闭。

不涉及。

首次日志采集行为

全量采集,从头开始。

不涉及。

表2 ICAgent性能规格

限制项

说明

备注

日志采集速率

原始日志单节点最大采集速率50MB/S。

超过限制尽可能提供服务,不保证服务质量。

监控目录数

目录递归深度最多5层,最大不超过1000个文件。

不涉及。

监控文件数

容器场景下:

  • 每个通过卷挂载日志的路径下,ICAgent最多采集20个日志文件。
  • 每个ICAgent最多采集1000个容器标准输出日志文件,容器标准输出日志只支持json-file类型。

虚机场景下:

  • 最大1000个文件。

不涉及。

默认资源限制

CPU:对CPU资源的消耗最大不超过2核。

内存:对内存的消耗不超过min{4G,节点物理内存/2},超过时将启动重启保护(min{4G,节点物理内存/2}表示取“节点物理内存的一半”和“4G”中的较小值)。

不涉及。

资源超限处理策略

强制重启,若期间日志轮转,可能会丢失或重复。

不涉及。

Agent安装、升级或卸载

无限制。

不涉及。

表3 ICAgent其他限制

限制项

说明

备注

配置更新

配置更新生效的延时约1-3分钟。

不涉及。

配置动态加载

支持console的配置动态下发,且其中某一配置更新不影响其他采集。

不涉及。

配置数

无限制。

不涉及。

多租户隔离

默认隔离。

不涉及。

日志采集延迟

正常情况下从日志写入磁盘到采集日志延迟<2秒(阻塞状态下除外)。

不涉及。

日志上传策略

检测到文件变更,会立即读取上传,单次可以上报1条或者多条日志。

不涉及。

网络错误处理

在出现网络异常时会主动重试,间隔5秒。

不涉及。

资源配额超限处理

当日志量太大,分配给ICAgent的资源无法满足日志上报的要求时,ICAgent尽量上报,失败会重试,持续资源不足日志采集会积压。

不涉及。

超时最大尝试时间

周期性重试。

不涉及。

状态自检

通过心跳检测采集器状态是否正常。

不涉及。

Checkpoint超时时间

12小时无更新,则自动删除Checkpoint。

不涉及。

Checkpoint保存策略

上报成功则更新checkpoint的内容。

不涉及。

Checkpoint保存位置

默认保存路径为

/var/share/oss/manager/ICProbeAgent/internal/TRACE

不涉及。

日志丢失

日志重复

采集器使用多种机制保证日志采集的可靠性,尽可能保证数据不丢失,但在如下场景可能导致日志丢失。

  • 日志文件轮转速度过快,如1秒轮转一次。
  • 系统安全设置或syslog自身原因导致无法转发日志。
  • 容器运行时间过短,例如小于30s。
  • 单节点总日志产生速度过快,超过了单节点网络发送带宽或日志采集速度,建议单节点总日志产生速度<50MB/s。

当采集器被重启后,重启时间点附近可能会产生一定的数据重复。

不涉及。