第 24 章 检索诊断和故障排除数据
report.sh
诊断工具是由红帽提供的脚本,用于为 OpenShift 上的 Apache Kafka 部署收集故障排除流的基本数据。它收集相关的日志、配置文件和其他诊断数据,以帮助识别和解决问题。运行脚本时,您可以指定额外的参数来检索特定数据。
先决条件
- Bash 4 或更新版本以运行脚本。
-
OpenShift
oc
命令行工具已安装并配置为连接到正在运行的集群。
这会为 oc
命令行工具建立必要的身份验证,以与集群交互并检索所需的诊断数据。
流程
下载并提取工具。
诊断工具可从 Apache Kafka 软件下载页面 的 Streams 中提供。
在提取工具的目录中打开一个终端并运行报告工具:
./report.sh --namespace=<cluster_namespace> --cluster=<cluster_name> --out-dir=<local_output_directory>
将
<cluster_namespace
> 替换为 Apache Kafka 部署的 Streams 的实际 OpenShift 命名空间,<cluster_name
> 替换为 Kafka 集群的名称,将 <local_output_directory
> 替换为您要保存生成的报告的本地目录的路径。如果您没有指定目录,则会创建一个临时目录。根据需要包括其他可选报告选项:
- --bridge=<string>
- 指定 Kafka Bridge 集群的名称,以获取其 pod 和日志上的数据。
- --connect=<string>
- 指定 Kafka Connect 集群的名称,以获取其 pod 和日志上的数据。
- --mm2=<string>
- 指定 Mirror Maker 2 集群名称,以获取其 pod 和日志的数据。
- --secrets=(off|hidden|all)
指定 secret 详细程度。默认为
hidden
。可用的选项如下:-
all
: 报告 Secret 密钥和数据值。 -
hidden
:仅报告带有密钥的 Secret。数据值(如密码)会被删除。 -
off
:不会报告 Secret。
-
使用数据收集选项的请求示例
./report.sh --namespace=my-amq-streams-namespace --cluster=my-kafka-cluster --bridge=my-bridge-component --secrets=all --out-dir=~/reports
注意如果需要,使用
chmod
命令将脚本的执行权限分配给您的用户。例如:chmod +x report.sh
.
执行完脚本后,输出目录包含为 Apache Kafka 部署的每个组件收集的日志、配置和其他诊断数据的文件和目录。
报告诊断工具收集的数据
如果存在,则返回以下组件中的数据:
Cluster Operator
- 部署 YAML 和日志
- 所有相关 pod 及其日志
- 与集群操作器相关的资源的 YAML 文件(ClusterRoles、ClusterRoleBindings)
drain Cleaner (如果存在)
- 部署 YAML 和日志
- Pod 日志
自定义资源
- 自定义资源定义(CRD) YAML
- 所有相关自定义资源(CR)的 YAML 文件
事件
- 与指定命名空间相关的事件
配置
-
Kafka pod 日志和配置文件(
strimzi.properties
) -
ZooKeeper pod 日志和配置文件(
zookeeper.properties
) - Entity Operator (Topic Operator, User Operator) pod 日志
- Cruise Control pod 日志
- Kafka Exporter pod 日志
- 如果在选项中指定,网桥 pod 日志
- 如果在选项中指定,请连接 pod 日志
- 如果在选项中指定,MirrorMaker 2 pod 日志
secret (如果在选项中请求)
- 与指定 Kafka 集群相关的所有 secret 的 YAML 文件