Skip to content

pt-k8s-debug-collector ​

从 Kubernetes/OpenShift 集群收集调试数据(日志、资源状态等),打包为当前工作目录下的 cluster-dump.tar.gz 归档。

语法 ​

bash
pt-k8s-debug-collector <flags>

用法示例 ​

以下命令在已配置好 kubectl 与各数据库摘要工具(如 pt-mysql-summary、pt-mongodb-summary、psql)的机器上运行,产物为当前目录的 cluster-dump.tar.gz。替换其中的资源类型、命名空间与集群名即可。

场景:自动探测全集群 ​

最省事的一键收集,自动探测集群里的 Percona 自定义资源并全量打包:

bash
pt-k8s-debug-collector

场景:只收某命名空间的 PXC ​

只针对生产命名空间里的 PXC 集群收集,缩小范围:

bash
pt-k8s-debug-collector --resource pxc --namespace db-prod

场景:收集 MySQL Operator 集群 ​

针对 MySQL Operator(ps)所在命名空间收集:

bash
pt-k8s-debug-collector --resource ps --namespace mysql-ns

场景:只收通用 Kubernetes 数据 ​

不想收集任何具体 operator 的数据,只看集群通用资源与事件:

bash
pt-k8s-debug-collector --resource none

场景:指定 kubeconfig 与集群 ​

用指定 kubeconfig 连接某集群,并对其中 PXC 命名空间收集:

bash
pt-k8s-debug-collector --kubeconfig ~/.kube/config-prod --resource pxc --namespace db-prod

场景:大集群调高并发 ​

集群资源很多时提高并发 worker 数(推荐 8–20,勿超过 20 以免压垮 API server):

bash
pt-k8s-debug-collector --resource pxc --concurrent-export-workers 20

场景:调高日志级别排障 ​

收集异常时打开 debug 日志看清每一步在做什么:

bash
pt-k8s-debug-collector --resource auto --log-level debug

场景:跳过 Pod 摘要更快收集 ​

只关心资源与事件、不需要 pod 级摘要时,跳过以加快速度:

bash
pt-k8s-debug-collector --resource psmdb --skip-pod-summary

功能说明 ​

收集的 Kubernetes 资源 ​

pods、replicasets、deployments、statefulsets、replicationcontrollers、events、 configmaps、cronjobs、jobs、podsecuritypolicies、poddisruptionbudgets、 perconaxtradbbackups、perconaxtradbclusterbackups、perconaxtradbclusterrestores、 perconaxtradbclusters、clusterrolebindings、clusterroles、rolebindings、roles、 storageclasses、persistentvolumeclaims、persistentvolumes、modes, 以及 --resource 指定的自定义资源。

按运维器(Operator)收集的数据 ​

  • PXC:perconaxtradbbackups、perconaxtradbclusterbackups、perconaxtradbclusterrestores、perconaxtradbclusters; 汇总信息来自 pt-mysql-summary(写入 summary.txt); 另收集单个文件:var/lib/mysql/mysqld-error.log、innobackup.backup.log、innobackup.move.log、innobackup.prepare.log、grastate.dat、gvwstate.dat、mysqld.post.processing.log、auto.cnf。
  • MySQL(PS):perconaservermysqlbackups、perconaservermysqlrestores、perconaservermysqls;汇总来自 pt-mysql-summary。
  • MongoDB(PSMDB):perconaservermongodbbackups、perconaservermongodbrestores、perconaservermongodbs;汇总来自 pt-mongodb-summary。
  • PostgreSQL:perconapgclusters、pgclusters、pgpolicies、pgreplicas、pgtasks;汇总来自 pg_gather。

选项 ​

选项说明
--config逗号分隔的 Percona Toolkit 配置文件列表(不带等号),必须是第一个选项;缺省时使用默认配置文件位置
--resource目标自定义资源:pxc(PXC)、psmdb(MongoDB)、pg(PostgreSQL Operator v1,已废弃)、pgv2(PostgreSQL Operator v2)、ps(MySQL)、none(只收集通用 Kubernetes 数据)、auto(自动探测)。默认 auto
--namespace目标命名空间;默认从所有命名空间收集
--cluster目标集群;默认从所有可用集群收集
--kubeconfigkubeconfig 路径;未指定时使用默认配置
--forwardport收集数据库摘要时使用的端口;默认 PXC 和 MySQL 用 3306,MongoDB 用 27017,PostgreSQL 用 5432
--concurrent-export-workers导出 Kubernetes 资源的并发 worker 数,默认 16。更高值可加快大集群收集速度,但可能给 API server 带来压力;推荐 8–20,超过 20 可能触发 API server 限流
--log-level日志级别:debug、info、warn、error、fatal、panic,默认 warn
--no-version-check启动时不检查工具更新
--skip-pod-summary跳过收集 pod 专属的摘要数据
--version打印版本信息

系统要求 ​

PATH 中需已安装并配置好以下程序:

  • kubectl
  • PXC / MySQL:pt-mysql-summary 和 mysql
  • MongoDB:pt-mongodb-summary
  • PostgreSQL:psql

已知问题 ​

在 Kubernetes 1.21–1.24 上会打印关于 policy/v1beta1 PodSecurityPolicy 已废弃的警告。 该警告无害,不影响数据收集;建议忽略,待环境升级到 Kubernetes 1.25+ 后即可消除。

其他信息 ​

  • 作者:Max Dudin, Andrii Dema, Carlos Salguero, Sveta Smirnova

  • 通用说明:已知问题的反馈方式、PTDEBUG 调试安全提示、系统要求基线,见 通用说明。

更多细节请阅读 官方文档。

Percona Toolkit 中文文档 · 社区维护的第三方学习站