pt-k8s-debug-collector
从 Kubernetes/OpenShift 集群收集调试数据(日志、资源状态等),打包为当前工作目录下的 cluster-dump.tar.gz 归档。
语法
pt-k8s-debug-collector <flags>用法示例
以下命令在已配置好 kubectl 与各数据库摘要工具(如 pt-mysql-summary、pt-mongodb-summary、psql)的机器上运行,产物为当前目录的 cluster-dump.tar.gz。替换其中的资源类型、命名空间与集群名即可。
场景:自动探测全集群
最省事的一键收集,自动探测集群里的 Percona 自定义资源并全量打包:
pt-k8s-debug-collector场景:只收某命名空间的 PXC
只针对生产命名空间里的 PXC 集群收集,缩小范围:
pt-k8s-debug-collector --resource pxc --namespace db-prod场景:收集 MySQL Operator 集群
针对 MySQL Operator(ps)所在命名空间收集:
pt-k8s-debug-collector --resource ps --namespace mysql-ns场景:只收通用 Kubernetes 数据
不想收集任何具体 operator 的数据,只看集群通用资源与事件:
pt-k8s-debug-collector --resource none场景:指定 kubeconfig 与集群
用指定 kubeconfig 连接某集群,并对其中 PXC 命名空间收集:
pt-k8s-debug-collector --kubeconfig ~/.kube/config-prod --resource pxc --namespace db-prod场景:大集群调高并发
集群资源很多时提高并发 worker 数(推荐 8–20,勿超过 20 以免压垮 API server):
pt-k8s-debug-collector --resource pxc --concurrent-export-workers 20场景:调高日志级别排障
收集异常时打开 debug 日志看清每一步在做什么:
pt-k8s-debug-collector --resource auto --log-level debug场景:跳过 Pod 摘要更快收集
只关心资源与事件、不需要 pod 级摘要时,跳过以加快速度:
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 | 目标集群;默认从所有可用集群收集 |
--kubeconfig | kubeconfig 路径;未指定时使用默认配置 |
--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 调试安全提示、系统要求基线,见 通用说明。
更多细节请阅读 官方文档。