Skip to content

pt-k8s-debug-collector

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

语法

bash
pt-k8s-debug-collector <flags>

用法示例

以下命令在已配置好 kubectl 与各数据库摘要工具(如 pt-mysql-summarypt-mongodb-summarypsql)的机器上运行,产物为当前目录的 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 资源

podsreplicasetsdeploymentsstatefulsetsreplicationcontrollerseventsconfigmapscronjobsjobspodsecuritypoliciespoddisruptionbudgetsperconaxtradbbackupsperconaxtradbclusterbackupsperconaxtradbclusterrestoresperconaxtradbclustersclusterrolebindingsclusterrolesrolebindingsrolesstorageclassespersistentvolumeclaimspersistentvolumesmodes, 以及 --resource 指定的自定义资源。

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

  • PXCperconaxtradbbackupsperconaxtradbclusterbackupsperconaxtradbclusterrestoresperconaxtradbclusters; 汇总信息来自 pt-mysql-summary(写入 summary.txt); 另收集单个文件:var/lib/mysql/mysqld-error.loginnobackup.backup.loginnobackup.move.loginnobackup.prepare.loggrastate.datgvwstate.datmysqld.post.processing.logauto.cnf
  • MySQL(PS)perconaservermysqlbackupsperconaservermysqlrestoresperconaservermysqls;汇总来自 pt-mysql-summary
  • MongoDB(PSMDB)perconaservermongodbbackupsperconaservermongodbrestoresperconaservermongodbs;汇总来自 pt-mongodb-summary
  • PostgreSQLperconapgclusterspgclusterspgpoliciespgreplicaspgtasks;汇总来自 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日志级别:debuginfowarnerrorfatalpanic,默认 warn
--no-version-check启动时不检查工具更新
--skip-pod-summary跳过收集 pod 专属的摘要数据
--version打印版本信息

系统要求

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

  • kubectl
  • PXC / MySQL:pt-mysql-summarymysql
  • 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 中文文档 · 社区维护的第三方学习站