CES Agent如何通过授权获取临时AK/SK?
为了更加安全高效的使用云监控服务提供的主机监控功能,我们提供了最新方式的Agent授权方法。在安装主机监控Agent前,仅需要一键式单击该区域的授权按钮或者在创建弹性云主机页面勾选云监控Agent委托,则系统会自动对该区域下所有云主机或物理机安装的Agent做临时AK/SK授权,并且以后在该区域新创建的资源都会自动获得此授权。本节针对本授权做以下说明:
- 授权对象:
当您在云监控服务管理控制台“主机监控 > 弹性云主机”(或“主机监控 > 物理机”)所示页面单击“一键配置”后,系统会在IAM自动创建名为“cesagency”的委托,该委托自动授权给CES服务的内部账户op_svc_ces。 - 授权范围:
仅为所在区域的内部账户“op_svc_ces”添加“CES Administrator”权限。 - 授权原因:
CES Agent运行在弹性云主机或物理机内,该Agent采集监控数据后需要上报到云监控服务,授权后CES Agent能够自动获取临时AK/SK,这样您就可以安全方便的使用云监控服务管理控制台或API查询Agent监控数据指标了。
a. 安全:Agent使用的AK/SK仅具有CES Administrator权限的临时AK/SK,不会使用客户全局AK/SK,即当前的临时AK/SK只具备操作云监控服务的权限。
b. 方便:您仅需在一个区域配置一次即可,无需对每个CES Agent手动配置。 - 如果授权后在IAM委托页面无法查询到“cesagency”,您可以手工在IAM管理控制台重新创建。
说明
新创建的委托名称必须为“cesagency”。
委托类型为“普通帐号”,委托的帐号必须为“op_svc_ces”。
什么是插件修复配置?
安装Agent插件后,修复插件配置为用户提供了一键配置 AK/SK 、RegionID 、ProjectId的功能,省去了繁琐的手动配置步骤,提升配置效率。
怎样让新购ECS实例中带有操作系统监控功能?
操作场景
本章节指导用户如何让新购买的ECS实例带有操作系统监控功能。
说明制作的私有镜像不可跨Region使用,因为跨Region使用私有镜像创建的ECS实例无法取得监控数据。
前提条件
已有安装Agent的ECS实例。
操作步骤
- 进入ECS控制台的实例管理页面,单击该实例右侧的“更多 > 关机”,将已安装Agent的ECS实例关机。
- 单击该实例右侧的“更多 > 镜像/磁盘/备份 > 创建镜像”。
- 将私有镜像名称设置为“Image_with_agent”,单击“立即创建”。
- 购买新的ECS时选择创建的私有镜像“”。
- 创建ECS实例后,登录ECS,修改Agent配置文件(/usr/local/telescope/bin/conf.json)中的InstanceId为对应ECS的ID,即可完成复制流程,如下图所示。
图 修改Agent配置文件
如何查询当前正在使用的Agent版本?
您可以通过登录管理控制台查询当前云主机的Agent版本,详细操作步骤如下:
- 登录管理控制台。
- 在管理控制台左上角选择区域和项目。
- 在服务列表中选择“云监控服务”。
进入云监控服务页面。 - 在左侧导航栏选择“主机监控 > 弹性云主机”。
进入主机监控页面。 - 单击资源所在行的“更多 > 修改升级方式”。
说明只有“插件状态”是“运行中”的资源才可以选择修改升级方式。
- 查看“当前版本”配置项。
例如,“当前版本”显示1.1.4时,表示当前云主机安装的Agent版本为1.1.4版本。
Agent不同插件状态说明及处理方式
Agent有以下五种状态:
- 未安装/未启动:指未在该ECS/BMS中安装Agent或手动停止了Agent。
- 运行中:Agent运行正常,可正常上报监控数据。
- 故障:监控插件每1分钟发送1次心跳;当服务端3分钟收不到插件心跳时,“插件状态”显示为“故障”。
- 帐号余额不足。
- Agent进程故障,请参照管理Agent(Linux)或者管理Agent(Windows)重启,如果无法重启则说明相关文件被误删,请重新安装Agent。
- Agent插件配置出错,请先确认DNS地址配置正确,然后参考修改DNS与添加安全组(Linux)和手动配置Agent(Linux,可选)检查配置是否正确。
- 具体原因可查看日志文件/usr/local/telescope/log/common.log。
- 配置异常:ECS/BMS主机没有配置委托、当前委托权限异常、当前委托已失效、默认网卡安全组规则配置错误或DNS配置错误。
- 已停止:Agent被手动停止,可参考管理Agent(Linux)或者管理Agent(Windows)启动Agent。
Agent状态切换或监控面板有断点该如何处理?
问题现象
当云监控服务的Agent进程出现以下现象时,可能是因为Agent负载过高,状态不稳定导致:
- 管理控制台主机监控页面的“插件状态”参数在“运行中”和“故障”两个状态切换。
- 监控指标面板中存在断点。
问题原因
为避免Agent负载过高,影响主机上的其他业务,云监控服务在Agent占用CPU或内存过高时,提供了熔断机制。当Agent负载过高时,会自动触发熔断,触发熔断机制后,Agent暂时停止工作,不上报监控数据。
熔断机制原理
默认情况下,Agent检测机制为:
1分钟查检测一次Agent是否超过第二阈值(占用CPU超过30%或占用内存超过700M)。如果CPU或内存任何一个超出,Agent直接退出:如果没有超过第二阈值,查看Agent是否超过第一阈值(占用CPU超过10%或占用内存超过200M),连续三次超过第一阈值,则退出Agent进程并记录。
退出后,守护进程会自动拉起Agent进程,首先检测退出记录,如果有连续三次退出记录,则休眠20分钟,休眠期间,不会采集监控数据。
当主机挂载磁盘数量较多时,Agent占用的CPU或内存可能较高。您可以根据实际观测主机的资源占用率,参考下文操作,配置Agent熔断机制中的第一阈值和第二阈值。
操作步骤
- 使用root帐号,登录Agent不上报数据的ECS或BMS。
- 执行以下命令,切换至Agent安装路径的bin下。
cd /usr/local/telescope/bin
说明Windows系统下为telescope_windows_amd64\bin目录。
-
修改配置文件conf.json。
a. 执行以下命令,打开配置文件conf.json。vi conf.json
b. 在conf.json文件中,添加如下四行参数,具体参数请参见下表。
表 参数说明
参数 说明 cpu_first_pct_threshold 第一阈值(CPU),若Agent进程^a^的CPU使用率为20%左右,此处建议配置为35,单位为%。说明 Agent的CPU使用率和内存使用率查询方法: Linux: top -ptelescope**的PIDWindows: 在任务管理器中查看Agent进程详情。 memory_first_threshold 第一阈值(内存),若Agent进程使用的内存大小为100M左右,此处建议配置为314572800(300MB),单位为Byte。 cpu_second_pct_threshold 第二阈值(CPU),若Agent进程的CPU使用率为20%左右,此处建议配置为55,单位为%。 memory_second_threshold 第二阈值(内存),若Agent进程使用的内存大小为100M左右,此处建议配置为734003200(700MB),单位为Byte。 { "InstanceId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "ProjectId":"b5b92ee0xxxxxxxxxxxxxxxxcab92396", "AccessKey":"QZ0XGJXFxxxxxxxxT65R", "SecretKey":"lEv2aXAGwxxxxxxxxxxxxxxxxxxxxF8t0Bf18Tn2", "RegionId":"cn-hz1", "cpu_first_pct_threshold":35, "memory_first_threshold":314572800, "cpu_second_pct_threshold":70, "memory_second_threshold":734003200 }
c. 执行如下命令,保存并退出conf.json文件。
:wq
4.请执行如下命令,重启Agent。
/usr/local/telescope/telescoped restart
业务端口被Agent占用该如何处理?
云监控服务的Agent插件会使用HTTP请求上报数据,使用过程中会随机占用动态端口,范围取自/proc/sys/net/ipv4/ip_local_port_range。若发现使用的业务端口与Agent使用的端口冲突,可以修改/proc/sys/net/ipv4/ip_local_port_range,并重启Agent解决此问题。
操作步骤
- 使用root用户登录ECS或BMS。
- 执行如下命令,打开sysctl.conf文件。
vim /etc/sysctl.conf
- (永久修改)在sysctl.conf文件添加新的端口配置。
net.ipv4.ip_local_port_range=49152 65536
- 执行如下命令,使修改生效。
sysctl -p /etc/sysctl.conf
说明永久性修改,重启ECS或BMS后依旧生效。若要临时修改(重启ECS或BMS后失效),请执行 # echo 49152 65536 > /proc/sys/net/ipv4/ip_local_port_range
-
请执行如下命令,重启Agent。
/usr/local/telescope/telescoped restart
说明Windows系统下:在Agent安装包存放目录下,先双击执行shutdown.bat脚本,停止Agent,再执行start.bat脚本,启动Agent。
如何创建委托?
操作场景
通过创建委托,可以让Agent自动获取用户的访问密钥,从而不需要把密钥(AK/SK)暴露在配置文件中。
操作步骤
-
登录管理控制台。
-
在管理控制台左上角选择区域和项目。
-
在服务列表中选择“统一身份认证服务”。
-
选择“委托 > 创建委托”,进入创建委托页面。
参照下表,完成创建委托页面参数填写。表 创建委托
名称 说明 委托名称 标识该委托代理的名称。 样例:CESAgentAutoConfigAgency 委托类型 选择“云服务”。 云服务 选择“弹性云主机ECS物理机BMS”。 持续时间 选择永久。 描述 可选参数,用于补充说明该委托代理的详细信息。 -
在“权限选择”区域,单击当前region所在行的“修改”,弹出权限选的“策略”页面。
-
在左侧“可选择的策略”搜索框中输入“CES”,在查找结果中选择“CES”及“CES Administrator”。
-
单击页面下方的“确定”按钮,委托关系创建成功。
配置代理
当主机没有配置代理时,可按照如下操作配置代理。
- 登录管理控制台。
- 在服务列表选择“计算 > 弹性云主机”。
说明当主机为物理机时,选择“计算 > 物理机”。
- 单击Agent插件所在的弹性云主机名称,进入弹性云主机参数配置页面。
- 在“代理名称”选择创建的委托名称,确认后即可生效。
不能创建委托该如何处理?
修复插件配置时若委托配额已满,会无法创建委托,您可以删除无效委托或扩大委托配额后重新修复插件配置。
委托被占用该如何处理?
修复插件配置时会自动创建一个名为CESAgentAutoConfigAgency的委托,若用户之前已创建了一个CESAgentAutoConfigAgency委托,且非ECS和BMS云服务,这种情况下,会出现委托被占用的错误。
用户可删除该委托,重新使用修复插件配置,或手动配置代理。
委托已失效该如何处理?
当前委托已经失效,说明配置的委托时间已过期,过期后就无法使用,可通过修改委托时间为永久进行修复。
主机监控Agent对主机的性能会有影响吗?
主机监控Agent占用的系统资源很小,性能基本不会受到影响。
- 在弹性云主机中安装Agent资源占用情况如下:
CPU用率<5%、内存<100MB - 在物理机中安装Agent资源占用情况如下:
CPU用率<5%、内存<100MB
Agent插件状态显示“故障”该如何处理?
操作系统监控插件每1分钟发送1次心跳;当服务端3分钟收不到插件心跳时,“插件状态”显示为“故障”。
“故障”原因可能为:
- 帐号余额不足。
- Agent进程故障,请参照管理Agent重启,如果无法重启则说明相关文件被误删,请重新安装Agent。
- 服务器内部时间和本地标准时间不一致。
- Agent插件版本不同,日志路径也不同。
日志路径分别如下:- Linux:
新版本Agent:/usr/local/uniagent/extension/install/telescope/log/ces.log
老版本Agent:/usr/local/telescope/log/ces.log - Windows:
新版本Agent:C:\Program Files\uniagent\extension\install\telescope\log\ces.log
老版本Agent:C:\Program Files\telescope\log\ces.log
- Linux:
- Agent插件配置出错,请先确认DNS地址配置正确,然后参考修改DNS与添加安全组(Linux)和手动配置Agent(Linux,可选)检查配置是否正确。
具体原因可查看日志文件/usr/local/telescope/log/common.log。
Agent插件状态显示“已停止”该如何处理?
Agent状态显示“已停止”
请执行以下命令来启动Agent:
service telescoped start
若报障则说明已卸载Agent或者相关文件已被删除,请重新安装Agent。
Agent插件状态显示“运行中”但没有数据该如何处理?
Agent安装完成后请等待10分钟,若仍然无数据,一般为conf文件中InstanceId配置错误。
请参考手动配置Agent(Linux,可选)检查配置是否正确。
Agent一键修复后无监控数据问题排查
问题现象
Agent一键修复后运行正常,但仍然没有监控数据。
问题分析
弹性云主机或物理机安装Agent后仍然无操作系统监控数据时,一般考虑有如下几个原因:
- Agent进程运行状态异常
- 委托异常
- 路由配置异常导致的获取临时AK/SK失败
- 网络问题
问题解决(Linux)
-
以root用户登录弹性云主机或物理机。
-
执行如下命令,检查telescope进程是否存在:
ps -ef |grep telescope
当显示如下内容时,表示telescope进程正常。
图 查看telescope进程
- 进程正常:请执行4。
- 进程异常:请执行3。
- 如果进程异常,执行如下命令,启动Agent。
/usr/local/telescope/telescoped start
- 执行如下命令,确认云主机委托已创建。
curl http://169.254.169.254/openstack/latest/securitykey
- 当有数据返回时,表示获取AK/SK正常。排查结束。
- 调用失败或者回显如下时,请执行5。
图 获取AK/SK失败
- 在管理控制台的云监控服务页面,选择“主机监控 > 弹性云主机”,选择对应的目标弹性云主机并单击“修复插件配置”。
- 问题解决,排查结束。
- 未解决,请执行6。
-
执行如下命令,检查路由:
route -n
当返回如下信息时,表示路由正常:
图 路由配置正常-Linux
- 路由正常:排查结束。
- 路由异常:请执行7。
- 当路由不存在时,执行如下命令,添加路由:
route add -host 169.254.169.254 gw 192.168.0.1
问题是否解决?
- 解决:排查结束。
- 未解决:执行8。
- 执行如下命令,打开telescope的配置文件。
cat /usr/local/telescope/bin/conf_ces.json
- 获取telescope配置文件中的Endpoint。
- 执行如下命令,确认DNS解析是否正常。
ping 上一步获取得Endpoint
- 网络正常:排查结束。
问题解决(Windows)
- 以administrator权限用户登录弹性云主机或物理机。
- 进入任务管理器,查看telescope进程是否存在。
当包括图1和图2两个进程时,表示telescope进程正常。
图1 agent进程-Windows
图2 telescope进程-Windows
- 进程正常:请执行4。
- 进程异常:请执行3。
- 双击start.bat,启动Agent。
- 访问http://169.254.169.254/openstack/latest/meta_data.json,确认云主机委托已创建。
- 可访问:表示委托正常,排查结束。
- 不可访问:请执行6。
-
执行如下命令,检查路由:
route print
当返回如下信息时,表示路由正常:
图 路由配置正常-Windows
- 路由正常:排查结束。
- 路由异常:请执行7。
- 当路由不存在时,执行如下命令,添加路由:
route add -host 169.254.169.254 gw 192.168.0.1
说明上述命令*192.168.0.1*为云主机的网关,请根据实际情况修改配置。
问题是否解决?
- 解决:排查结束。
- 未解决:执行7。
- 打开telescope安装包存放目录bin/conf_ces.json配置文件。
- 获取telescope配置文件中的Endpoint。
- 执行如下命令,确认DNS解析是否正常。
ping 上一步获取得Endpoint地址
- 网络正常:排查结束。