PingCAP Clinic 诊断服务(以下简称为 PingCAP Clinic)是 PingCAP 为 TiDB 集群提供的诊断服务,支持对使用 TiUP 或 TiDB Operator 部署的集群进行远程定位集群问题和本地快速检查集群状态,用于从全生命周期确保 TiDB 集群稳定运行、预测可出现的集群问题、降低问题出现概率、快速定位并修复问题。
PingCAP Clinic 服务提供以下两个组件进行集群诊断:
Diag 诊断客户端:部署在集群侧的工具,用于采集集群的诊断数据 (collect)、上传诊断数据到 Clinic Server、对集群进行本地快速健康检查 (check)。如需了解 Diag 工具可采集的详细的数据列表,请参阅 PingCAP Clinic 数据采集说明。
注意
Diag 诊断客户端支持 TiDB v4.0 及以上的集群,不支持使用 TiDB Ansible 部署的集群。
Clinic Server:部署在云端的云服务。Clinic Server 提供 SaaS 模式的诊断服务,不仅能接收上传到该组件的诊断数据,也可以提供在线诊断环境,用于存储、查看和诊断已上传的诊断数据,并提供集群诊断报告。根据数据存储的位置不同,Clinic Server 分为以下两个独立的服务:
远程定位集群问题
当集群出现无法快速修复的问题时,可以求助社区论坛或者联系 PingCAP 技术支持。当申请远程协助时,你需要先保存问题现场的各种诊断数据,然后将其转发给相关技术人员。此时,你可以使用 Diag 诊断客户端,对诊断数据进行一键采集,快速收集完整的诊断数据,替代复杂的手动数据采集操作。随后,你可以将其诊断数据上传到 Clinic Server,供 PingCAP 技术人员查看。Clinic Server 为诊断数据提供了安全的存储,并支持在线诊断,提升了技术人员进行问题定位的效率。
快速检查集群状态
即使集群可以正常运行,也需要定期检查集群是否有潜在的稳定性风险。PingCAP Clinic 提供的本地和 Server 端的快速诊断功能,用于检查集群潜在的健康风险。
本章节主要介绍 Diag 诊断客户端(以下简称为 Diag)采集集群诊断数据的工作原理。
首先,Diag 需要从部署工具 TiUP (tiup-cluster) 或 TiDB Operator (tidb-operator) 获取集群拓扑信息,然后通过不同的数据采集方式来采集不同类型的诊断数据,具体采集方式如下:
通过 SCP 传输服务器文件
对于使用 TiUP 部署的集群,Diag 可通过 SCP (Secure copy protocol) 直接从目标组件的节点采集日志文件和配置文件。
通过 SSH 远程执行命令采集数据
对于 TiUP 部署的集群,Diag 可以通过 SSH (Secure Shell) 连接到目标组件系统,并可执行 Insight 等命令获取系统信息,包括内核日志、内核参数、系统和硬件的基础信息等。
通过 HTTP 调用采集数据
通过 SQL 语句查询数据库参数
通过 SQL 语句,Diag 可以查询 TiDB 数据库的系统参数等信息。对于这种方式,你需要在采集数据时额外提供访问 TiDB 数据库的用户名和密码。
注意
诊断服务类型 | 使用限制 |
---|---|
每个组织最多可以创建的集群数量 | 10 个 |
诊断数据存储容量 | 50 GB/集群 |
诊断数据最长存储时间 | 180 天 |
数据包最大大小 | 3 GB |
诊断数据重建保存时间 | 最长 3 天 |