Skip to content

Commit

Permalink
Clinic: add new docs (#8226)
Browse files Browse the repository at this point in the history
  • Loading branch information
qqqdan authored Mar 3, 2022
1 parent a175009 commit 1314f8a
Show file tree
Hide file tree
Showing 4 changed files with 553 additions and 0 deletions.
4 changes: 4 additions & 0 deletions TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,10 @@
- [tiup-cluster 部署运维生产集群](/tiup/tiup-cluster.md)
- [tiup-mirror 定制离线镜像](/tiup/tiup-mirror.md)
- [tiup-bench 进行 TPCC/TPCH 压力测试](/tiup/tiup-bench.md)
- TiDB Clinic 诊断服务 (Beta)
- [概述](/clinic/clinic-introduction.md)
- [使用 TiDB Clinic](/clinic/clinic-user-guide-for-tiup.md)
- [数据采集说明](/clinic/clinic-data-instruction-for-tiup.md)
- [TiDB Operator](/tidb-operator-overview.md)
- [Dumpling](/dumpling-overview.md)
- TiDB Lightning
Expand Down
140 changes: 140 additions & 0 deletions clinic/clinic-data-instruction-for-tiup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
---
title: TiDB Clinic 数据采集说明
summary: 详细说明 TiDB Clinic 诊断服务在使用 TiUP 部署的 TiDB 集群和 DM 集群中能够采集哪些诊断数据。
---

# TiDB Clinic 数据采集说明

本文提供了 TiDB Clinic 诊断服务(以下简称为 TiDB Clinic)在使用 TiUP 部署的 TiDB 集群和 DM 集群中能够采集的诊断数据类型,并列出了各个采集项对应的采集参数。当[执行 Clinic Diag 诊断工具(以下简称为 Diag)数据采集命令](/clinic/clinic-user-guide-for-tiup.md)时,你可以依据需要采集的数据类型,在命令中添加所需的采集参数。

通过 TiDB Clinic 在使用 TiUP 部署的集群中采集的数据****用于诊断和分析集群问题。

Clinic Server 是部署在云端的云服务,位于 PingCAP 内网(中国境内)。如果你把采集的数据上传到了 Clinic Server 供 PingCAP 技术人员远程定位集群问题,这些数据将存储于 PingCAP 设立在 AWS S3 中国区(北京)的服务器。PingCAP 对数据访问权限进行了严格的访问控制,只有经授权的内部技术人员可以访问该数据。

在对应的技术支持 Case 关闭后,PingCAP 会在 90 天内对相关数据进行永久删除或匿名化处理。

## TiDB 集群

本节列出了 Diag 在使用 TiUP 部署的 TiDB 集群中能够采集的诊断数据类型。

### Cluster 基础信息

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 集群基础信息,包括集群 ID | `cluster.json` | 每次收集默认采集 |
| 集群详细信息 | `meta.yaml` | 每次收集默认采集 |

### TiDB 诊断数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 日志 | `tidb.log` | `--include=log` |
| Error 日志 | `tidb_stderr.log` | `--include=log` |
| 慢日志| `tidb_slow_query.log` | `--include=log` |
| 配置文件 | `tidb.toml` | `--include=config` |
| 实时配置| `config.json` | `--include=config` |

### TiKV 诊断数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 日志 | `tikv.log` | `--include=log` |
| Error 日志 | `tikv_stderr.log` | `--include=log` |
| 配置文件 | `tikv.toml` | `--include=config` |
| 实时配置 | `config.json` | `--include=config` |

### PD 诊断数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 日志 | `pd.log` | `--include=log` |
| Error 日志 | `pd_stderr.log` | `--include=log` |
| 配置文件 | `pd.toml` | `--include=config` |
| 实时配置 | `config.json` | `--include=config` |
| `tiup ctl pd -u http://${pd IP}:${PORT} store` 的输出结果 | `store.json` | `--include=config` |
| `tiup ctl pd -u http://${pd IP}:${PORT} config placement-rules show` 的输出结果 | `placement-rule.json` | `--include=config` |

### TiFlash 诊断数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 日志 | `tiflash.log` | `--include=log` |
| Error 日志 | `tiflash_stderr.log` | `--include=log` |
| 配置文件 | `tiflash-learner.toml``tiflash-preprocessed.toml``tiflash.toml` | `--include=config` |
| 实时配置 | `config.json` | `--include=config` |

### TiCDC 诊断数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 日志 | `ticdc.log` | `--include=log`|
| Error 日志 | `ticdc_stderr.log` | `--include=log` |
| 配置文件 | `ticdc.toml` | `--include=config` |

### Prometheus 监控数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 所有的 Metrics 数据 | `{metric_name}.json` | `--include=monitor` |
| Alert 列表 | `alerts.json` | `--include=monitor` |

### TiDB 系统变量

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 获取 TiDB 系统变量(默认不采集,采集需要额外提供数据库帐号) | `mysql.tidb.csv` | `--include=db_vars` |
| | `global_variables.csv` | `--include=db_vars` |

### 集群系统信息

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 内核日志 | `dmesg.log` | `--include=system` |
| 系统和硬件的基础信息 | `insight.json` | `--include=system` |
| 系统 `/etc/security/limits.conf` 中的内容 | `limits.conf` | `--include=system` |
| 内核参数列表 | `sysctl.conf` | `--include=system` |
| socket 统计信息(即 ss 的命令结果) | `ss.txt` | `--include=system` |

## DM 集群

本节列出了 Diag 在使用 TiUP 部署的 DM 集群中能够采集的诊断数据类型。

### Cluster 基础信息

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 集群基础信息,包括集群 ID | `cluster.json`| 每次收集默认采集 |
| 集群详细信息 | `meta.yaml` | 每次收集默认采集 |

### dm-master 诊断数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 日志 | `m-master.log` | `--include=log` |
| Error 日志 | `dm-master_stderr.log` | `--include=log` |
| 配置文件 | `dm-master.toml` | `--include=config` |

### dm-worker 诊断数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 日志| `dm-worker.log` | `--include=log`|
| Error 日志 | `dm-worker_stderr.log` | `--include=log` |
| 配置文件 | `dm-work.toml` | `--include=config` |

### Prometheus 监控数据

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 所有的 Metrics 数据 | `{metric_name}.json` | `--include=monitor` |
| Alert 列表 | `alerts.json` | `--include=monitor` |

### 集群系统信息

| 诊断数据类型 | 输出文件 | TiDB Clinic 采集参数 |
| :------ | :------ |:-------- |
| 内核日志 | `dmesg.log` | `--include=system` |
| 系统和硬件基础信息 | `insight.json` | `--include=system` |
| 系统 `/etc/security/limits.conf` 中的内容 | `limits.conf` | `--include=system` |
| 内核参数列表 | `sysctl.conf` | `--include=system` |
| socket 统计信息(即 ss 的命令结果) | `ss.txt` | `--include=system` |
61 changes: 61 additions & 0 deletions clinic/clinic-introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: TiDB Clinic 诊断服务简介
summary: 介绍 TiDB Clinic 诊断服务,包括工具组件、使用场景和工作原理。
---

## TiDB Clinic 诊断服务简介

TiDB Clinic 诊断服务(以下简称为 TiDB Clinic)是 PingCAP 为 TiDB 集群提供的诊断服务,支持对使用 TiUP 或 TiDB Operator 部署的集群进行远程定位集群问题和本地快速检查集群状态,用于从全生命周期确保 TiDB 集群稳定运行、预测可出现的集群问题、降低问题出现概率、快速定位并修复问题。

TiDB Clinic 目前处于 Beta 受邀测试使用阶段。该服务提供以下两个组件进行集群诊断:

- Diag:部署在集群侧的工具,用于采集集群的诊断数据 (collect)、上传诊断数据到 Clinic Server、对集群进行本地快速健康检查 (check)。如需了解 Diag 工具可采集的详细的数据列表,请参阅 [TiDB Clinic 数据采集说明](/clinic/clinic-data-instruction-for-tiup.md)

> **注意:**
>
> - Diag 暂时**不支持**对使用 TiDB Ansible 部署的集群进行数据采样。
> - TiDB Clinic 目前处于 Beta 受邀测试使用阶段,如需使用 Diag 把数据上传到 Clinic Server,请联系与你对接的 PingCAP 技术人员获取试用账号。
- Clinic Server:部署在云端的云服务。Clinic Server 提供 SaaS 模式的诊断服务,不仅能接收上传到该组件的诊断数据,也可以提供在线诊断环境,用于存储、查看和诊断已上传的诊断数据,并提供集群诊断报告。

> **注意:**
>
> TiDB Clinic Beta 版本的 Server 端功能暂**未开放**给外部用户使用。当你将采集好的数据上传到 Clinic Server 并获取了数据链接后,只有经过授权的 PingCAP 技术支持人员可以访问其链接并查看数据。
## 使用场景

- 远程定位集群问题

当集群出现无法快速修复的问题时,可以求助社区论坛或者联系 PingCAP 技术支持。当申请远程协助时,你需要先保存问题现场的各种诊断数据,然后将其转发给相关技术人员。此时,你可以使用 Clinic Diag 工具,对诊断数据进行一键采集,快速收集完整的诊断数据,替代复杂的手动数据采集操作。随后,你可以将其诊断数据上传到 Clinic Server,供 PingCAP 技术人员查看。Clinic Server 为诊断数据提供了安全的存储,并支持在线诊断,提升了技术人员进行问题定位的效率。

- 本地快速检查集群状态

即使集群可以正常运行,也需要定期检查集群是否有潜在的稳定性风险。TiDB Clinic 提供的本地快速诊断功能,用于检查集群潜在的健康风险。目前 TiDB Clinic Beta 版本主要提供对集群配置项的合理性检查,用于发现不合理的配置,并提供修改建议。

## 工作原理

本章节主要介绍 TiDB Clinic 的集群侧工具 Diag 采集集群诊断数据的工作原理。

首先,Diag 需要从部署工具 TiUP (tiup-cluster) 或 TiDB Operator (tidb-operator) 获取集群拓扑信息,然后通过不同的数据采集方式来采集不同类型的诊断数据,具体采集方式如下:

- 通过 SCP 传输服务器文件

对于使用 TiUP 部署的集群,Diag 可通过 SCP (Secure copy protocol) 直接从目标组件的节点采集日志文件和配置文件。

- 通过 SSH 远程执行命令采集数据

对于 TiUP 部署的集群,Diag 可以通过 SSH (Secure Shell) 连接到目标组件系统,并可执行 Insight 等命令获取系统信息,包括内核日志、内核参数、系统和硬件的基础信息等。

- 通过 HTTP 调用采集数据

- 通过调用 TiDB 组件的 HTTP 接口,Diag 可获取 TiDB、TiKV、PD 等组件的实时配置采样信息与实时性能采样信息。
- 通过调用 Prometheus 的 HTTP 接口,Diag 可获取报警信息和 metrics 监控数据。

- 通过 SQL 语句查询数据库参数

通过 SQL 语句,Diag 可查询 TiDB 数据库的系统参数等信息。对于这种方式,你需要在采集数据时**额外提供**访问 TiDB 数据库的用户名和密码。

## 探索更多

- [使用 TiDB Clinic](/clinic/clinic-user-guide-for-tiup.md)
- [TiDB Clinic 数据采集说明](/clinic/clinic-data-instruction-for-tiup.md)
Loading

0 comments on commit 1314f8a

Please sign in to comment.