一键巡检
概述
对平台关键资源和服务进行全方位一键式健康检查,并根据巡检结果为巡检资源和服务进行健康评分,同时提供巡检建议和巡检报告,助力高效运维,确保平台资源和服务处于最佳状态。
功能原理
- 巡检类别和巡检项:
一键巡检提供平台、计算、网络、存储四大类巡检项,支持对物理机、镜像服务器、分布式存储、物理网络和网卡等平台关键资源和服务进行巡检:
- 平台:检测平台基础服务和组件的运行状态。
- 计算:检测计算资源的使用状况和运行状态。
- 网络:检测网络配置和状态。
- 存储:检测存储资源使用状态和运行状态。
同时,一键巡检支持用户自定义巡检项,巡检用户的应用,支持应用和容器组两种维度:- 应用:巡检程序对应用的健康检查地址发起 GET 请求,根据请求返回的状态码,判断巡检项的结果。支持对巡检程序能访问到的所有支持 HTTP 协议的应用进行巡检,不限于集群内外。
- 容器组:巡检程序分别对应用的各容器组发起 GET 请求,并结合预期副本数及容器组状态判断巡检项的结果。巡检的容器组只能是集群内工作负载下的容器组
用户可自定义根据类别选择巡检项进行一键巡检,启动巡检后,平台将对所选择的巡检项涉及的资源或服务进行健康检查。详细巡检项信息可参考巡检项总览。
- 巡检结果:
一键巡检针对所巡检的资源或服务提供四种巡检结果,分别为正常、警告、故障和失败。
- 正常:所巡检的资源或服务处于正常状态,通过绿色图标标识。
- 警告:所巡检的资源或服务状态欠佳,可能会在一定程度上影响相关资源和服务的性能和稳定性,通过黄色图标标识。
- 故障:所巡检的资源或服务状态非常危险,可能会严重影响业务的运行,通过红色图标标识。
- 失败:资源或服务巡检失败,可能会严重影响业务的运行,通过灰色图标标识。
- 健康评分:
一键巡检内置健康评分机制,支持对所巡检的资源或服务的健康状态进行量化评分,帮助用户直观准确把握平台整体运行状态。
- 巡检资源/服务评分:根据资源或服务的巡检结果进行评分。
- 若某资源或服务巡检结果为正常,评分为100分。
- 若某资源或服务巡检结果为警告,评分为50分。
- 若某资源或服务巡检结果为故障或失败,评分为0分。
- 巡检项评分:根据巡检项所涉及资源或服务的评分进行统计。具体如下:
- 评分机制:(资源1评分 + 资源2评分 + …… + 资源N评分)/(N*100)*100。
- 例子:假设某巡检项下涉及3个资源,巡检结果分别为正常、警告、故障/失败,对应的资源评分为100、50、0,则该巡检项的评分为:(100 + 50 + 0)/(3*100)*100=50分。
- 平台整体评分:根据各个巡检项所得评分及巡检项的权重按照如下评分机制进行综合统计:
- 评分机制:(巡检项1评分*巡检项1权重 + 巡检项2评分*巡检项2权重 + …… + 巡检项N评分*巡检项N权重)/(100*巡检项1权重+100*巡检项2权重+......100*巡检项N权重)*100
- 例子:假设用户共选择3个巡检项进行一键巡检,对应的评分为100、50、0,对应的权重分别为1、2、3,则平台总体评分为:(100*1 + 50*2 + 0*3)/(100*1+100*2+100*3)*100=33分。
- 巡检资源/服务评分:根据资源或服务的巡检结果进行评分。
- 巡检建议:
一键巡检针对警告和故障状态的巡检资源和服务,分析其面临的潜在风险以及对相关资源和服务的影响,并提供针对性的修复建议。详细巡检建议信息可参考巡检项总览。
- 巡检报告:
一键巡检支持导出WORD格式的巡检报告,展示巡检信息总览、结果统计,并汇总所有异常巡检项详情按异常级别排列,为每条异常巡检项提供巡检建议。
功能优势
ZStack Cube 双引擎版一键巡检具有以下优势:
- 全方位高效自定义巡检:四大类巡检项涵盖平台上所有关键资源和服务,支持自定义选择巡检,分钟级交付。
- 多级评分机制:内置资源/服务、巡检项、平台三级评分机制,助力用户从微观至宏观掌控平台运行状态。
- 智能风险排查建议:智能推送资源级风险分析和应对措施,助力精准高效运维。
- 支持免登录执行巡检:在平台服务异常的情况下,仍然支持执行一键巡检,助力快速定位问题。
管理一键巡检
在ZStack Cube 双引擎版主菜单,点击,进入一键巡检界面。
| 操作 | 描述 |
|---|---|
| 开始一键巡检 | 自定义选择巡检项后,对所选巡检项进行一键巡检。 |
| 暂停一键巡检 | 一键巡检进行中时,暂停对所选巡检项进行一键巡检。 |
| 继续一键巡检 | 暂停一键巡检后,恢复对所选巡检项进行一键巡检。 |
| 取消一键巡检 | 一键巡检进行中时,取消对所选巡检项进行一键巡检。 |
| 重新检测 | 一键巡检完成后,对上次一键巡检所选巡检项进行重新检查。 |
| 导出巡检报告 | 导出WORD格式的巡检报告。 |
| 设置自动巡检 | 支持设置自动巡检,平台将按照设置的巡检开始时间和巡检周期自动对所有巡检项进行巡检,巡检结束后,用户可进入一键巡检页面查看或导出巡检报告详情。
|

自定义巡检项
在ZStack Cube 双引擎版主菜单,点击,进入一键巡检界面。点击自定义巡检项,弹出自定义巡检项界面。
- 巡检项名称:设置巡检项名称。命名规则:长度限制1-128字符,只能包含中文汉字、英文字母、数字和以下7种特殊字符:(-) (_) (.) (() ()) (:) (+)
- 简介:可选项,备注巡检项相关信息
- 巡检地址:选择巡检地址,支持应用地址和容器组IP两种。巡检时将对巡检地址发起 GET 请求,根据请求返回的
HTTP 状态码,判断巡检结果如选择应用地址,将对应用地址发起 GET 请求,请设置以下参数:
- 应用地址:填写要巡检的应用的完整接口地址,巡检时将对该地址发起 GET 请求。必须以http://或https://开头,如http://172.23.45.12:8080/healthy。
如选择容器组IP,将由巡检程序动态获取指定的工作负载各容器组IP,并结合填写的协议、端口和路径,拼接出巡检地址进行巡检,巡检结果将根据请求返回的状态码、容器组状态、工作负载预期副本数一起综合判断。如需对工作负载的每个容器组单独进行巡检时,可选择容器组IP,请设置以下参数:- 容器组所属工作负载:选择要巡检的工作负载
- 协议:选择工作负载使用的协议,支持HTTP和HTTPS两种
- 端口:填写请求端口
- 路径:可选项,填写请求的路径
- 巡检正常状态码:设置巡检结果正常时的 HTTP 状态码。只能填写数字和半角逗号Note:
- 巡检时将对巡检地址发起 GET 请求,若请求返回的 HTTP 状态码与巡检正常状态码相符,则巡检结果为正常,否则巡检结果为故障。例如:巡检正常状态码设置为 200 ,则对巡检地址发起 GET 请求,返回的状态为 200 时,巡检结果为正常,返回的状态不是 200 时,巡检结果为故障。
- 巡检正常状态码支持填写多个状态码,多个状态码间使用半角逗号(,)隔开。多个状态码取或,即只要返回的状态码是巡检正常状态码的任意一个,巡检结果都是正常。
- 超时时间:设置对巡检地址发起 GET 请求后等待请求返回的超时时间,最大允许设置600秒Note: 若在超时时间内请求未返回,则巡检结果为故障。
- 权重:设置巡检项的权重Note:
- 权重在计算巡检总分时使用,总分=(巡检项1评分*巡检项1权重 + 巡检项2评分*巡检项2权重 + …… + 巡检项N评分*巡检项N权重)/(100*巡检项1权重+100*巡检项2权重+......100*巡检项N权重)*100
- 权重可选“1”、“2”、“3”,可根据巡检项的重要程度或巡检结果故障时产生的影响程度选择。
- 巡检建议:可选项,设置巡检结果故障时的巡检建议Note: 当巡检结果为故障时将在巡检详情中展示巡检建议,巡检建议可以分析故障面临的潜在风险以及对相关资源和服务的影响,并提供针对性的修复建议。

查看巡检结果
在ZStack Cube 双引擎版主菜单,点击,进入一键巡检界面。选择需进行巡检的条目后,点击开始一键巡检。完成巡检后,可查看巡检报告。
巡检结果通过分数量化的方式展示所选巡检项整体健康运行状态,并将所选巡检项根据状态进行分类汇总,方便用户快速查找状态异常的巡检项。同时通过列表形式清晰展示各个巡检项涉及资源的信息和状态,并提供相应的巡检建议。
- 整体健康检查结果
巡检结果页面上半栏汇总统计本次所有巡检项数量以及处于异常状态的巡检项数量,并根据健康评分机制为本次巡检项进行整体统计打分,直观展示巡检项整体健康状态。同时,巡检结果记录本次一键巡检的用时以及完成时间,方便用户安排下次巡检时间。若需了解详细健康评分机制,可参考健康评分。
- 巡检项状态分类展示巡检结果页面左下栏汇总展示本次所有巡检项,同时将所有巡检项根据其涉及资源巡检结果分别归类为异常和正常。用户可自由切换正常和异常页面,快速搜索定位巡检项。巡检项具体分类机制如下:
- 若巡检项所涉资源或服务的所有巡检结果均为正常,则该巡检项通过绿色图标标识,归类为正常。
- 若巡检项所涉资源或服务的所有巡检结果为警告,或部分资源或服务的巡检结果为警告、其余为正常,则该巡检项通过黄色图标标识,归类为异常。
- 若巡检项所涉资源或服务的所有巡检结果为故障,或部分资源或服务的巡检结果为故障、其余为正常或警告,则该巡检项通过红色图标标识,归类为异常。
- 若巡检项所涉资源或服务的所有巡检结果为失败,或部分资源或服务的巡检结果为失败、其余为正常、警告或故障,则该巡检项通过灰色图标标识,归类为异常。
- 巡检资源信息状态和巡检建议用户可点击巡检报告页面左下栏任一巡检项,右下栏将以列表形式详细展示该巡检项所涉巡检资源的基本信息和巡检结果,并为巡检结果为警告和故障的巡检资源提供巡检建议。
- 列表信息:
- 基本信息:一键巡检为不同的巡检资源和服务展示不同的基本信息,例如物理机时间同步检查巡检项可展示物理机IP、物理机时间及chronyd服务状态等。
- 巡检结果:根据巡检资源和服务的健康状态展示相应的巡检结果,包括失败、故障、警告、正常。
- 失败:无法对资源或服务进行巡检,通过灰色图标标识。
- 故障:所巡检的资源或服务状态非常危险,可能会严重影响业务的运行,通过红色图标标识。
- 警告:所巡检的资源或服务状态欠佳,可能会在一定程度上影响相关资源和服务的性能和稳定性,但不会严重影响业务的运行,通过黄色图标标识。
- 正常:所巡检的资源或服务处于正常状态,通过绿色图标标识。
- 巡检建议:一键巡检针对警告和故障状态的巡检资源和服务,分析其面临的潜在风险以及对相关资源和服务的影响,并提供针对性的修复建议,助力用户高效运维。详细巡检建议信息可参考巡检项总览。
- 列表信息:

免登录执行一键巡检
在平台服务异常无法登录的情况下,支持免登录执行一键巡检,方便快速定位问题。
- 从登录页面点击一键巡检进入。
- 直接访问免登录一键巡检地址进入,免登录一键巡检地址:http://${ZStack Cube 双引擎版IP或域名}/ze/#/cs/inspection。
kubectl get secret
inspection-secret -n zstack -o yaml获取巡检密码,获取到的密码需进行base64解码。巡检项总览
| 巡检类型 | 巡检项 | 巡检项含义 | 巡检建议 | 权重 |
|---|---|---|---|---|
| 平台 (检测平台基础服务和组件的运行状态) | 许可证管理服务状态检查 | 检查平台许可证管理服务是否正常。 | 许可证管理服务状态异常。请登录管理服务所在节点,执行zsha2
status命令检查管理服务状态。 |
3 |
| etcd状态检查 | 检查etcd服务状态是否正常。 | etcd服务状态异常,请执行systemctl status
etcd命令检查etcd服务状态,如etcd服务未启动,请执行systemctl start
etcd启动etcd服务。 |
3 | |
| kubelet状态检查 | 检查kubelet服务状态是否正常。 | kubelet服务状态异常,请执行systemctl status
kubelet检查kubelet服务状态,如kubelet服务未启动,请执行systemctl
start kubelet启动kubelet服务。 |
3 | |
| containerd状态检查 | 检查containerd服务是否正常。 | containerd服务状态异常,请执行systemctl status
containerd检查containerd服务状态,如containerd服务未启动,请执行systemctl
start containerd启动containerd服务。 |
3 | |
| kube-apiserver状态检查 | 检查kube-apiserver连通性。 | kube-apiserver状态异常,请执行kubectl get pod -n
kube-system确认kube-apiserver的pod状态,如发现pod异常,请重启异常pod。 |
3 | |
| kube-controller-manager状态检查 | 检查kube-controller-manager状态是否正常。 | kube-controller-manager状态异常,请执行kubectl get
pod -n kube-system确认
kube-apiserver和kube-controller-manager的pod状态,如发现pod异常,请重启异常pod。 |
3 | |
| kube-scheduler状态检查 | 检查kube-scheduler状态是否正常。 | kube-scheduler状态异常,请执行kubectl get pod -n
kube-system确认kube-apiserver和kube-scheduler的pod状态,如发现pod异常,请重启异常pod。 |
3 | |
| PostgreSQL状态检查 | 检查PostgrSQL状态是否健康。 |
|
3 | |
| Redis状态检查 | 检查Redis状态是否健康。 | Redis状态异常,请执行kubectl -n zstack-middleware get
svc -lapp.kubernetes.io/name=redis -l
app.kubernetes.io/component=sentinel获取redis sentinel
service ip,并执行kubectl -n zstack-middleware get pod -l
app.kubernetes.io/name=redis -l
app.kubernetes.io/component=sentinel获取redis
sentinel的pod,获取后,请使用kubectl -n zstack-middleware exec [redis
sentinel pod 名称] -c sentinel -- redis-cli -h [redis sentinel service
ip] -p 26379 info sentinel | grep
status命令分别确认每个Redis的pod状态,如发现pod异常,请重启异常pod。 |
3 | |
| 容器镜像仓库检查 | 检查容器镜像仓库是否正常。 | 容器镜像仓库异常,请执行kubectl get pod -n
harbor检查harbor服务是否正常。 |
3 | |
| Docker Registry状态检查 | 检查管理节点Docker Registry状态是否正常。 | 部分管理节点Docker
Registry状态异常。请登录各个管理节点,执行systemctl status
registry.service检查节点Docker Registry状态,并通过journalctl
-u registry.service命令查看Docker
Registry日志,根据日志内容进行故障处理。 |
3 | |
| ChartMuseum状态检查 | 检查管理节点ChartMuseum状态是否正常。 | 部分管理节点ChartMuseum状态异常,请登录各个管理节点,执行systemctl
status
chartmuseum.service检查节点ChartMuseum状态,并通过journalctl
-u
chartmuseum.service命令查看ChartMuseum日志,根据日志内容进行故障处理。 |
3 | |
| zstack-edge-nginx状态检查 | 检查管理节点zstack-edge-nginx状态是否正常。 | 部分管理节点zstack-edge-nginx状态异常,请登录各个管理节点,执行systemctl status
zstack-edge-nginx.service检查zstack-edge-nginx状态,并通过journalctl
-u
zstack-edge-nginx.service命令查看zstack-edge-nginx日志,根据日志内容进行故障处理。 |
3 | |
| Prometheus状态检查 | 检查Prometheus容器组状态是否为运行中。 | Prometheus状态异常,请执行kubectl get pod -n
monitoring确认Prometheus的pod状态,如发现pod异常,请重启异常pod。 |
1 | |
| 计算(检测计算资源的使用状况和运行状态) | 物理机CPU检查 | 检查物理机每个CPU的状态和温度。 |
|
3 |
| 物理机内存ECC告警检查 | 检查物理机是否存在ECC告警。 | 部分物理机出现ECC告警,请检查物理机内存是否存在故障情况,及时更换物理机内存。 | 3 | |
| 物理机CPU使用率检查 | 检查物理机CPU使用率。 | 部分物理机CPU使用率超过80%,请登录物理机系统,检查是否存在业务异常,并按需优化运行业务。必要时,建议对集群进行扩容。 | 1 | |
| 物理机内存使用率检查 | 检查物理机内存使用率。 | 部分物理机内存使用率超过80%,请登录物理机系统,检查是否存在业务异常,并按需优化运行业务。必要时,建议对集群进行扩容。 | 1 | |
| 物理机系统盘使用量检查 | 检查物理机系统盘使用率和使用量。 | 部分物理机系统盘使用率超过75%,请立即登录物理机系统,检查并清理无业务影响的数据。系统盘使用率超过85%,集群将自动驱逐容器组,影响业务正常访问。 | 1 | |
| 物理机时间同步检查 | 检查chronyd服务是否正常以及其它服务器和第一台服务器时间差是否小于等于2秒。 | chronyd服务异常或服务器时间不同步,请登录对应物理机检查。 | 3 | |
| 物理机tick值检查 | 检查物理机tick值是否正确 | 部分物理机tick值不在9990~10010范围内,请登录对应物理机执行tickadj
10000命令修改tick值,并持续关注tick值变化情况。 |
3 | |
| 物理机SWAP分区检查 | 检查物理机SWAP分区是否关闭。 | 部分物理机未关闭SWAP分区,可能导致存储服务异常,请立即登录对应物理机系统关闭SWAP分区。 | 3 | |
| 物理机僵尸进程检查 | 检查物理机上运行的僵尸进程数量。 | 部分物理机上存在僵尸进程,可能是由于系统服务进程未正常退出,请登录对应物理机,使用命令ps
-ef | grep [d]efunct查看是否存在未正常退出的进程,确认进程情况。 |
1 | |
| 物理机文件句柄数检查 | 检查物理机系统文件句柄数使用率。 | 部分物理机系统文件句柄数使用率大于50%,请依次检查以下几项:
|
3 | |
| 物理机就绪状态检查 | 检查物理机是否失联 | 部分物理机失联,请立即检查相关物理机系统状态。 | ||
| 容器节点CPU申请率检查 | 检查容器节点上所有 pod 的 CPU 请求量总和占 CPU 总量百分比。 | CPU申请率超过80%,请登录 Kubernetes 集群检查节点资源分配是否合理,必要时建议扩容节点 | 1 | |
| 容器节点内存申请率检查 | 检查容器节点上所有 pod 的内存请求量总和占内存总量百分比。 | 内存申请率超过 80%,请登录 Kubernetes 集群检查节点资源分配是否合理,必要时建议扩容节点 | 1 | |
| 容器节点状态检查 | 检查容器节点状态是否正常。 | 部分节点状态异常,请登录物理机系统,执行systemctl status
kubelet、systemctl status
docker检查kubelet和docker服务是否正常。 |
3 | |
| 网络(检测网络配置和状态) | 物理机网卡检查 | 检查物理机的网卡状态、连接模式、丢包率、速率、以及是否处于全双工模式。 |
|
3 |
| 物理机Bond内物理网口状态检查 | 检查物理机Bond内物理网口是否为UP状态。 | Bond内物理机网口状态为DOWN,请检查物理机网卡是否存在故障。 | 2 | |
| 网络冗余性检查 | 检查物理机网口是否配置Bond。 | 物理机网口未配置Bond,不具备网络冗余性,请确认是否需配置Bond。 | 1 | |
| 物理机管理网络检查 | 检查物理机管理网IP间的连通性,及是否存在丢包情况。 |
|
3 | |
| 物理机存储网络检查 | 检查物理机存储网IP间的连通性,及是否存在丢包情况。 |
|
3 | |
| Calico状态检查 | 检查Calico容器组状态是否为运行中。 | Calico状态异常,请执行kubectl get pod -n kube-system
|grep calico确认Calico的pod状态,如发现pod异常,请重启异常pod。 |
3 | |
| CoreDNS状态检查 | 检查CoreDNS组件状态是否正常。 | CoreDNS状态异常,请执行kubectl get pod -n kube-system
|grep coredns检查pod状态,并重启异常pod。 |
3 | |
| NodeLocalDNS状态检查 | 检查NodeLocalDNS组件状态是否正常。 | NodeLocalDNS状态异常,请执行kubectl get pod -n
kube-system |grep nodelocaldns检查pod状态,并重启异常pod。 |
3 | |
| ResolvConf文件状态检查 | 检查物理机ResolvConf文件状态是否正常。 | 检测到物理机ResolvConf文件状态异常,请检查以下几项:
|
1 | |
| 存储(检测资源存储使用状况和运行状态) | 物理机HDD检查 | 检查物理机HDD磁盘健康状态、I/O利用率、及是否存在坏道。 | 部分物理机HDD盘处于警告状态,可能会导致I/O读写卡顿。可参考以下建议逐一排查:
|
3 |
| 物理机SSD检查 | 检查物理机SSD磁盘健康状态、I/O利用率、剩余寿命、及温度。 |
|
3 | |
| 存储服务状态检查 | 检查存储服务状态是否正常。 | 存储服务状态异常,请使用ceph
-s命令查看存储服务状态,若存储服务状态不为HEALTH_OK,请使用ceph health
detail命令查看详细信息,并根据提示信息进行处理。 |
3 | |
| 存储已用容量检查 | 检查存储使用率和使用量。 |
|
2 | |
| 存储Mon节点状态检查 | 检查存储Mon节点连接状态是否正常。 | 存储Mon节点失联,请立即检查存储状态是否正常,并通过存储管理模块协助检查存储集群。 | 3 | |
| 存储Mon节点数量检查 | 检查存储Mon节点数量是否符合要求。 | 存储Mon节点数量不符合要求,建议调整Mon节点数量为奇数个,且保证 Mon 节点数量满足:3+2*N,N≥0。 | 1 | |
| 存储数据盘状态检查 | 检查存储数据盘的状态是否正常。 | 部分存储数据盘状态异常,请使用ceph
-s查看存储服务状态,使用ceph health
detail查看详细信息,并根据提示进行处理。 |
3 | |
| 存储集群慢I/O检查 | 检查存储集群是否存在慢I/O请求。 | 部分存储集群存在慢I/O请求,请使用ceph health
detail查看详细信息,并根据提示进行处理。 |
1 | |
| 存储CSI组件状态检查 | 检查存储CSI组件状态是否正常。 | 存储CSI组件状态异常,请使用kubectl get pod -n
zstack-storage检查pod是否存在,pod状态是否正常,并重启异常pod。 |
3 |
