
# ICAgent限制
本文介绍日志采集器ICAgent的限制。
表1ICAgent安装限制 
| 限制项       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 备注                        |
|:---|:---|:---|
| CCE集群类型   | 当前只支持以下类型的CCE集群安装ICAgent： - CCE Standard集群。  - CCE Turbo集群。   当前不支持以下类型的CCE集群安装ICAgent： - CCE Autopilot集群。  - CCE敏捷版集群。   当前只支持以下类型的CCE节点安装ICAgent： - 华为云弹性云服务器ECS   | -                         |
| 自建k8s集群规模 | 通过自建k8s方式安装ICAgent时，k8s集群规模如下： - 节点数量不超过50个。  - 集群中所有pod数量不超过400个。                                                                                                                                                                                                                                                                                                                                                                                         | -                         |
| 主机安装方式    | 主机安装场景不支持使用其他已安装ICAgent的主机镜像进行系统和ICAgent安装。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 若强行通过镜像安装，会导致ICAgent功能异常。 |
   
表2ICAgent文件采集限制 
| 限制项          | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 备注   |
|:---|:---|:---|
| 文件编码         | 支持UTF8、GBK，其他编码可能会产生乱码。 不支持采集其他类型日志文件，例如：二进制文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | -    |
| 日志文件大小       | 无限制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -    |
| 日志文件轮转       | ICAgent目前支持配置固定日志文件名或者模糊匹配文件名，用户需要自己处理日志文件轮转。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | -    |
| 日志采集路径       | **Linux**： - 采集路径支持递归路径，\*\*表示递归5层目录。示例：/var/logs/\*\*/a.log。  - 采集路径支持模糊匹配，匹配目录或文件名中的任何字符。示例：/var/logs/\*/a.log、/var/logs/service/a\*.log。  - 采集路径如果配置的是目录，示例：/var/logs/，则只采集目录下后缀为".log"、".trace"和".out"的文件；如果配置的是文件名，则直接采集对应文件，只支持文本类型的文件。  - 开启"允许文件多次采集"后，同一主机下的同一日志文件支持被采集到多个日志流。关闭"允许文件多次采集"后，采集路径不能重复配置，即同一主机下的同一路径，即使跨日志组和日志流，也只能配置一次。   **Windows**： - Windows环境日志采集路径支持递归路径，\*\*表示递归5层目录。配置样例：C:\\var\\service\\\*\*\\a.log。  - Windows环境日志采集路径支持模糊匹配，匹配目录或文件名中的任何字符。配置样例：C:\\var\\service\\\*\\a.log、C:\\var\\service\\a\*.log。  - 采集路径不能重复配置，即同一主机下的同一路径，即使跨日志组和日志流，也只能配置一次。  - Windows事件日志采集不能重复配置，即同一主机下，即使跨日志组和日志流，也只能配置一次。   | -    |
| 软链接          | 不支持软链接。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | -    |
| 单条日志大小       | 每条日志默认500KB，最大1024KB，超出限制部分ICAgent将截断后丢弃。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -    |
| 正则表达式        | ICAgent只支持RE2风格的正则表达式，详细请参考[语法](https://github.com/google/re2/wiki/syntax)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | -    |
| 同一文件对应多个采集配置 | **允许文件多次采集功能只支持Linux，暂不支持Windows。** - 开启"允许文件多次采集"后，同一主机下的同一日志文件支持被采集到多个日志流。  - 关闭"允许文件多次采集"后，采集路径不能重复配置，即同一主机下的同一日志文件，即使跨日志流，也只能配置一次。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | -    |
| 文件打开行为       | 读取时打开，读取完后关闭。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | -    |
| 首次日志采集行为     | 全量采集，从头开始。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | -    |
| 容器日志         | 容器场景下通过卷挂载日志的路径，仅支持采集以下类型的存储卷： - HostPath类型的存储卷，并且挂载子路径必须为空。  - EmptyDir类型的存储卷，并且挂载子路径必须为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 容器场景 |
   
表3**ICAgent性能规格** 
| 限制项           | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 备注                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| 日志采集速率        | 原始日志单节点最大采集速率50MB/S。                                                                                                                                                                                                                                                                                                                                                                                                                                            | 超过限制尽可能提供服务，不保证服务质量。                                                                                                                                                                                                                                                         |
| 监控目录数         | 目录递归深度默认5层，最大20层，最大不超过500个文件。                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                                                                                                                                                                                                                                                                            |
| 监控文件数         | 容器场景下： - 每个通过卷挂载日志的路径下，ICAgent最多采集20个日志文件。  - 每个ICAgent最多采集1000个容器标准输出日志文件，容器标准输出日志只支持json-file类型。   虚机场景下：最大1000个文件。                                                                                                                                                                              | 容器场景下通过卷挂载日志的路径，仅支持采集以下类型的存储卷： - HostPath类型的存储卷，并且挂载子路径必须为空。  - EmptyDir类型的存储卷，并且挂载子路径必须为空。                   |
| 默认资源限制        | CPU： - ICAgent版本低于5.12.200时，对CPU资源的消耗最大不超过2核。  - ICAgent版本为5.12.200及以上，节点规格小于等于4核时，对CPU资源的消耗最大不超过2核；节点规格大于4核时，对CPU资源的消耗根据节点规格动态调整。详细请参考[表4]。   内存： 对内存的消耗不超过min{4G，节点物理内存/2}，超过时将启动重启保护（min{4G，节点物理内存/2}表示取"节点物理内存的一半"和"4G"中的较小值）。 | -                                                                                                                                                                                                                                                                            |
| 资源超限处理策略      | 强制重启，若期间日志轮转，可能会丢失或重复。                                                                                                                                                                                                                                                                                                                                                                                                                                          | -                                                                                                                                                                                                                                                                            |
| Agent安装、升级或卸载 | 无限制。                                                                                                                                                                                                                                                                                                                                                                                                                                                            | -                                                                                                                                                                                                                                                                            |
| CCE资源限制       | CCE场景下： - CPU最小需要300m。  - 内存最小需要300Mi。                                                                                                                                                                                                                                                  | - CPU最小300m表示ICAgent daemonset的resource.requests.cpu值为300m。  - 内存最小300Mi表示ICAgent daemonset的resource.requests.memory值为300Mi。   |
   
 表4ICAgent CPU核数限制 
| 节点CPU规格  | ICAgent CPU核数限制 |
|:---|:---|
| 1        | 1               |
| 2\~7     | 2               |
| 8\~15    | 3               |
| 16\~31   | 4               |
| 32\~63   | 5               |
| 64\~127  | 6               |
| 128\~255 | 7               |
   
表5**ICAgent其他限制** 
| 限制项            | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 备注 |
|:---|:---|:---|
| 配置更新           | 配置更新生效的延时约1-3分钟。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -  |
| 配置动态加载         | 支持console的配置动态下发，且其中某一配置更新不影响其他采集。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | -  |
| 配置数            | 无限制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | -  |
| 多租户隔离          | 默认隔离。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | -  |
| 日志采集延迟         | 正常情况下从日志写入磁盘到采集日志延迟\<10秒（阻塞状态下除外）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | -  |
| 日志上传策略         | 检测到文件变更，会立即读取上传，单次可以上报1条或者多条日志。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -  |
| 网络错误处理         | 在出现网络异常时会主动重试，间隔5秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -  |
| 资源配额超限处理       | 当日志量太大，分配给ICAgent的资源无法满足日志上报的要求时，ICAgent尽量上报，失败会重试，持续资源不足日志采集会积压。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | -  |
| 超时最大尝试时间       | 周期性重试。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | -  |
| 状态自检           | 通过心跳检测采集器状态是否正常。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -  |
| Checkpoint超时时间 | 12小时无更新，则自动删除Checkpoint。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | -  |
| Checkpoint保存策略 | 上报成功则更新Checkpoint的内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | -  |
| Checkpoint保存位置 | 默认保存路径为/var/share/oss/manager/ICProbeAgent/internal/TRACE。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | -  |
| 日志丢失/日志重复      | 采集器使用多种机制保证日志采集的可靠性，尽可能保证数据不丢失，但在如下场景可能导致日志丢失或日志重复。 - 日志文件未使用CCE提供的logPolicy轮转策略。  - 日志文件轮转速度过快，如1秒轮转一次。  - 若系统不存在rsyslog服务或rsyslog服务关闭时，ICAgent无法采集系统日志，不影响其他日志采集。  - 容器运行时间过短，例如小于30s。  - 单节点总日志产生速度过快，超过了单节点网络发送带宽或日志采集速度，建议单节点总日志产生速度\<50MB/s。   当采集器被重启后，重启时间点附近可能会产生一定的数据重复。 | -  |
| 游标文件数          | 当日志游标文件数量超过5w个时，ICAgent将停止新增采集任务，不再受理后续任务添加请求。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -  |
   
表6**ICAgent支持访问的IP地址** 
| 组件/服务     | IP地址                                                   | 说明                           |
|:---|:---|:---|
| openstack | http://169.254.169.254/openstack/latest/meta_data.json | 获取节点元数据，节点名称和节点id。           |
| openstack | http://169.254.169.254/openstack/latest/securitykey    | 委托方式获取临时ak/sk和securitytoken。 |
| openstack | http://169.254.169.254/latest/meta-data/public-ipv4    | 获取节点绑定的弹性IP地址。               |
| CCE       | http://127.0.0.1:4194/api/v2.0/ps                      | cadvisor接口获取进程信息。            |
| CCE       | http://127.0.0.1:4194/api/v1.2/docker                  | cadvisor接口获取容器全量指标。          |
| CCE       | http://nodeip:10255/pods                               | k8s接口获取pod信息。                |
   
表7ICAgent支持访问的端口号 
| 端口号                                    | 说明           |
|:---|:---|
| ``` #icmgr-service {podlb}:30200 ```   | ICAgent注册。   |
| ``` icmgr-controller {podlb}:30201 ``` | ICAgent状态配置。 |
| ``` #als-access {podlb}:8102 ```       | 日志上报。        |
| ``` #ams-access {podlb}:8149 ```       | 上报监控指标。      |
| ``` #ats-access apm {podlb}:8923 ```   | 上报数据到APM。    |
   
