深度诊断ECS
操作场景
ECS支持操作系统的深度诊断服务,提供GuestOS内常见问题的自诊断能力,您可以通过方便快捷的自诊断服务解决操作系统内的常见问题。
本文介绍支持深度诊断的操作系统版本以及诊断结论说明。
约束与限制
- 该功能依赖云运维中心(Cloud Operations Center,简称COC),需开通并授权COC服务。
对于IAM用户,需额外配置COC资源操作类权限,详细内容,请参见配置ECS自助运维自定义策略。
- 该功能依赖UniAgent。UniAgent是统一数据采集Agent,支持脚本下发和执行。
若ECS未安装UniAgent,则无法免登录发送命令,详细内容,请参见为ECS安装UniAgent。
- 仅Linux操作系统的ECS支持深度诊断。
- 支持深度诊断的操作系统类型及版本。
操作系统类型
版本
CPU架构
Huawei Cloud EulerOS
Huawei Cloud EulerOS 2.0
Huawei Cloud EulerOS 1.1
x86/鲲鹏
CentOS
CentOS 8.2 64bit
CentOS 8.0 64bit
CentOS 7.9 64bit
CentOS 7.8 64bit
CentOS 7.7 64bit
CentOS 7.6 64bit
CentOS 7.5 64bit
CentOS 7.4 64bit
CentOS 7.3 64bit
CentOS 7.2 64bit
x86
Ubuntu
Ubuntu 22.04 server 64bit
Ubuntu 20.04 server 64bit
x86
Debian
Debian 11.1.0 64bit
Debian 10.0.0 64bit
x86
操作步骤
- 登录管理控制台,进入弹性云服务器列表页面。
- 在待深度诊断的ECS的“操作”列,单击“更多 > 运维与监控 > 深度诊断”。
- (可选)在“开通云运维中心并添加权限”页面,阅读服务声明并勾选后,单击“开通并授权”。
- 在“深度诊断”页面,选择“深度诊断场景”为“全面诊断”。
深度诊断功能依赖UniAgent,如果提示未安装UniAgent或者安装失败,请参考为ECS安装UniAgent进行安装,否则无法发送命令。
图1 深度诊断
- 勾选“同意安装插件并采集数据”后,单击“确定”。
诊断结果及说明,请参见深度诊断结论。
- 在诊断结果的“诊断报告”页签查看诊断详情。
图2 诊断报告
- 在“诊断详情”区域,单击异常项左侧的“”查看异常详情,并根据“优化建议”进行处理。
图3 诊断异常项(示例)
深度诊断结论
诊断项ID |
诊断项名称 |
诊断结论 |
---|---|---|
guestos.cpu.high_total_usage |
总CPU占用率过高 |
实例整体CPU占用率已超过80%。 |
guestos.cpu.high_process_usage |
CPU使用率过高的进程 |
单进程CPU占用率超过整机的50%。 |
guestos.cpu.high_core_usage |
单核CPU占用率过高 |
单核CPU占用率超过85%。 |
guestos.disk.high_inode_usage |
磁盘使用率检查 |
该实例当前部分云盘对应文件系统的使用率或inode使用率已经超过了80%,可能导致在这些分区上无法创建新的文件 |
guestos.filesystem.invalid_device |
fstab中的设备检查 |
当前实例的/etc/fstab文件中配置的某个设备不存在,可能会导致实例无法启动。 |
guestos.filesystem.device_mount_failure |
fstab中的设备挂载状态检查 |
该实例存在未在/etc/fstab中配置自动挂载的云盘,可能会导致实例无法启动。 |
guestos.filesystem.invalid_format |
fstab文件格式检查 |
fstab文件存在配置格式错误,可能会导致实例无法启动。 |
guestos.network.firewall_status_check |
系统防火墙状态检查 |
当前实例的防火墙(即iptables设置)目前处于开启状态,如果服务器开启了防火墙,并设置了屏蔽外界访问的规则,可能会导致远程访问实例失败。 |
guestos.memory.oom_events |
检查操作系统是否OOM |
当前实例Guest OS内部曾经发生了OOM(out-of-memory)问题。 |
guestos.ssh.incorrect_file_permission |
SSH公钥或私钥访问权限检查 |
当前实例SSH依赖的公钥或私钥文件权限不正确,会导致实例无法通过SSH访问。 |
guestos.ssh.missing_critical_file |
SSH关键文件检查 |
当前实例SSH服务对应的关键文件或目录缺失,会导致实例无法通过SSH访问。 |
guestos.memory.high_total_usage |
内存使用率过高 |
实例当前内存使用率已经超过80%。 |
guestos.ssh.forbidden_root_login |
SSH是否允许root用户登录 |
当前实例SSH服务禁止root账号登录,会导致实例无法通过root用户SSH访问。 |
guestos.system.port_listenning |
常见业务端口监听状态检查 |
端口22不存在进程监听,请您登录实例,检查端口业务服务是否存在异常,并根据需要进行修复。 |
guestos.system.unreasonable_file_limits |
limits设置检查 |
当前实例系统文件/etc/security/limits.conf 中部分配置大于系统默认值,可能导致实例无法远程登录。 |
guestos.memory.unreasonable_hugepage_config |
内存大页配置检查 |
当前实例内核参数vm.nr_hugepages配置的大页内存数量过大,可能导致实例无法远程登录。 |
guestos.network.wrong_nat_config |
NAT环境内核参数检查 |
当前实例NAT相关的内核参数配置存在异常,导致用户无法通过ssh连接实例,还会导致当前实例上的HTTP服务访问出现异常。 |
guestos.network.wrong_tcp_sack |
TCP SACK配置检查 |
当前实例未开启tcp_sack,可能会影响Linux实例的网络性能。 |
guestos.system.wrong_selinux_status |
selinux状态检查 |
该实例开启了SELinux服务,会导致SSH远程连接实例时报错,请您视情况选择临时或永久关闭SELinux服务。 |
guestos.system.missing_critical_user |
系统关键用户状态和密码设置检查 |
当前实例的系统账号不存在,可能会导致实例无法登录。 |
guestos.network.disabled_multi_queue |
网卡多队列开启状态检查 |
网卡多队列特性状态未开启,可能对网络性能造成影响。请根据需要将该配置调整为开启状态。 |
guestos.filesystem.critical_file_exists |
系统文件状态检查 |
该实例系统目录中的部分关键系统文件缺失,可能导致实例无法登录。 |
guestos.system.critical_service_exists |
系统关键进程启动状态检查 |
该实例系统关键进程(比如SSH进程)处于未运行状态,可能会导致实例无法访问。 |
guestos.filesystem.critical_file_format_invalid |
系统关键文件格式检查 |
当前实例系统账号对应文件的文件格式错误(不是unix格式),可能会导致实例无法登录。 |