故障排除指南
概述
本指南概述了与 RabbitMQ 安装和基于消息的系统故障排除相关的几个主题
- 监控和健康检查
- 日志记录
- 节点配置
- 客户端连接
- 客户端身份验证 和授权
- CLI 工具连接 和身份验证
- 运行时崩溃转储
- 集群形成
- 节点内存使用情况
- 连接 和连接泄漏
- 通道 和通道泄漏
- TLS
- LDAP
- OAuth 2.0
- 流量捕获
节点内存使用情况、指标和监控、TLS 等。
监控、指标和健康检查
生产系统故障排除的一个非常重要的方面是 监控和健康检查。它们收集可以检查和分析的数据,帮助识别和检测异常。
日志记录
日志是故障排除的另一个重要信息来源。单独的 日志记录指南 说明了在哪里查找日志文件、如何调整日志级别、存在哪些日志类别、可以使用日志文件检测的连接生命周期事件等等。
节点配置
可以使用 rabbitmqctl environment
以及许多 rabbitmq-diagnostics 命令来检查有效的节点配置。
CLI 工具连接和身份验证
CLI 工具指南 说明了 CLI 工具如何对节点进行身份验证、Erlang cookie 文件是什么以及 CLI 工具无法在服务器节点上执行操作的最常见原因。
集群形成
内存使用情况分析
关于内存使用的推理 是关于该主题的专用指南。
网络和连接
网络故障排除 是关于网络和连接主题的专用指南。
身份验证和授权
访问控制指南 包含关于 客户端身份验证故障排除 和 授权故障排除 的部分。
运行时崩溃转储文件
当 Erlang 运行时系统异常退出时,名为 erl_crash.dump
的文件将写入 RabbitMQ 启动的目录。此文件包含运行时在异常退出时的状态。终止原因将在前几行中显示,以 Slogan
开头,例如:
head -n 3 ./erl_crash.dump
# => =erl_crash_dump:0.5
# => Sun Aug 25 00:57:34 2019
# => Slogan: Kernel pid terminated (application_controller) ({application_start_failure,rabbit,{{timeout_waiting_for_tables,[rabbit_user,rabbit_user_permission,rabbit_topic_permission,rabbit_vhost,rabbit_durable_r
在此特定示例中,标语(未捕获的异常消息)表示已启动的节点超时 与其对等节点同步模式元数据,这可能是因为它们未在配置的时间窗口内上线。
为了更好地理解来自 崩溃转储文件 的 Erlang 运行时状态,可以将其可视化。崩溃转储查看器工具 cdv
是 Erlang 安装的一部分。cdv
二进制文件路径取决于 Erlang 版本及其安装位置。
这是一个调用它的示例
/usr/local/lib/erlang/lib/observer-2.9.1/priv/bin/cdv ./erl_crash.dump
上述命令的成功结果将打开一个类似于此的新应用程序窗口
为了使上述操作正常工作,系统必须具有图形用户界面,并且 Erlang 必须同时使用 observer 和 Wx 支持进行编译。
连接
连接指南 说明了如何识别应用程序连接泄漏和其他相关主题。
通道
通道指南 说明了 通道级异常 的含义、如何识别应用程序通道泄漏和其他相关主题。
TLS
TLS 故障排除 是关于 TLS 主题的专用指南。
LDAP
LDAP 指南 说明了如何启用 LDAP 决策和查询日志记录。
OAuth 2.0
OAuth 2.0 是关于 OAuth 2.0 主题的专用指南。
捕获流量
流量捕获 可以提供大量有用的信息,这些信息在对网络连接、应用程序行为、连接泄漏、通道泄漏等进行故障排除时很有用。tcpdump 和 Wireshark 是用于捕获和分析网络流量的行业标准开源工具。