文档首页/ 云监控服务 CES/ 故障排除/ 主机监控/ Agent异常/ Agent插件状态在“运行中”和“故障”两个状态切换该如何处理?
更新时间:2026-11-10 GMT+08:00
分享

Agent插件状态在“运行中”和“故障”两个状态切换该如何处理?

问题现象

当云监控服务的Agent插件状态在“运行中”和“故障”两个状态切换时,可能是因为Agent负载过高,状态不稳定导致。

约束与限制

当前章节的修复方式只支持新版本Agent,若Agent版本为老版本,建议先升级到新版本。

  • Linux平台:
    1. 使用root账号,登录主机。
    2. 执行如下命令,确认使用Agent的版本。
      if [[ -f /usr/local/uniagent/extension/install/telescope/bin/telescope ]]; then
      /usr/local/uniagent/extension/install/telescope/bin/telescope -v; elif [[ -f /usr/local/telescope/bin/telescope ]]; then echo "old agent"; else echo 0; fi
      • 返回“old agent”,表示使用老版本Agent,请参考老版本操作指令。
      • 返回版本号,表示使用新版本Agent,请参考新版本操作指令。
      • 返回“0”,表示未安装Agent。
  • Windows平台:请根据安装路径确定Agent版本。
    • 新版本Agent默认安装路径为“C:\Program Files\uniagent\extension\install\telescope”
    • 老版本Agent默认安装路径为C:\Program Files\telescope

问题原因

为避免Agent负载过高,影响主机上的其他业务,云监控服务在Agent占用CPU或内存过高时,提供了熔断机制。当Agent负载过高时,会自动触发熔断,触发熔断机制后,Agent暂时停止工作,不上报监控数据。

熔断机制原理

默认情况下,Agent检测机制为:

1分钟检测一次Agent是否超过第二阈值(占用CPU超过30%或占用内存超过700M)。如果CPU或内存任何一个超出,Agent直接退出;如果没有超过第二阈值,查看Agent是否超过第一阈值(占用CPU超过10%或占用内存超过200M),连续三次超过第一阈值,则退出Agent进程并记录。

退出后,守护进程会自动拉起Agent进程,首先检测退出记录,如果有连续三次退出记录,则休眠20分钟,休眠期间,不会采集监控数据。

当主机挂载磁盘数量较多时,Agent占用的CPU或内存可能较高。您可以根据实际观测主机的资源占用率,参考问题解决配置Agent熔断机制中的第一阈值和第二阈值。

问题解决

  1. 登录Agent不上报数据的ECS或BMS。
  2. 可选:修改配置文件conf.json。
    1. 执行以下命令,切换至Agent安装路径的bin下。
      Windows系统:
      cd C:\Program Files\uniagent\extension\install\telescope\bin
      Linux系统:
      cd /usr/local/uniagent/extension/install/telescope/bin
    2. 执行以下命令,打开配置文件conf.json:
      vi conf.json
    3. 在conf.json文件中,添加如下参数,具体参数说明请参见:
      {
          "cpu_first_pct_threshold": xx,
          "memory_first_threshold": xxx,
          "cpu_second_pct_threshold": xx,
          "memory_second_threshold": xxx
      }
      表1 conf.json文件配置参数说明

      参数

      说明

      参数值查看方式

      cpu_first_pct_threshold

      第一阈值(CPU),默认值为10,单位为%。

      Agent的CPU使用率和内存使用率查询方法:

      • Linux:

        top -p telescope的PID

      • Windows:

        在任务管理器中查看Agent进程详情。

      memory_first_threshold

      第一阈值(内存),默认值为209715200(200MB),单位为Byte。

      cpu_second_pct_threshold

      第二阈值(CPU),默认值为30,单位为%。

      memory_second_threshold

      第二阈值(内存),默认值为734003200(700MB),单位为Byte。

    4. 执行如下命令,保存并退出conf.json文件:
      :wq
  3. 修改配置文件manifest.json。
    1. 执行以下命令,切换至manifest.json文件路径下。
      Windows系统:
      cd C:\Program Files\uniagent\extension\holder\telescope
      Linux系统:
      cd /usr/local/uniagent/extension/holder/telescope
    2. 执行以下命令,打开配置文件manifest.json:
      vi manifest.json
    3. 在manifest.json文件中,修改配置文件resourceLimit中的参数:mem和cpuUsage,共计三组。其他参数请不要修改。
      [
      	{
      		"arch": "amd64",
      		...
      		"resourceLimit": {
      			"mem": 200,
      			"cpuUsage": 10
      		}
      	},
      	{
      		"arch": "arm64",
      		...
      		"resourceLimit": {
      			"mem": 200,
      			"cpuUsage": 10
      		}
      	},
      	{
      		"arch": "amd64",
      		"os": "linux",
      		...
      		"resourceLimit": {
      			"mem": 200,
      			"cpuUsage": 10
      		}
      	}
      ]
      表2 manifest.json文件配置参数说明

      参数

      说明

      "resourceLimit": {

      "mem": 200,

      "cpuUsage": 10

      }

      mem:内存阈值,默认值为200,单位为MB;

      cpuUsage:CPU阈值,默认值为10,单位为%。

    4. 执行如下命令,保存并退出manifest.json文件:
      :wq
  4. 请执行如下命令,重启Agent:
    • Windows系统:
      1. 在“C:\Program Files\uniagent\extension\install\telescope”路径下,先双击执行shutdown.bat脚本,停止Agent,再执行start.bat脚本,启动Agent。
      2. 在“C:\Program Files\uniagent\script”路径下,先双击执行shutdown.bat脚本,停止Agent,再执行start.bat脚本,启动Agent。
    • Linux系统:
      service ces-uniagent stop
      service ces-uniagent start
      /usr/local/uniagent/extension/install/telescope/telescoped restart

相关文档