故障排除指南
概述
本指南概述了与 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 运行时的状态,它有助于将其可视化。Crash Dump Viewer 工具 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 是用于捕获和分析网络流量的行业标准开源工具。