rabbitmq-diagnostics.8
名称
rabbitmq-diagnostics
— RabbitMQ 诊断、监控和健康检查工具
语法
rabbitmq-diagnostics | [-q ] [-s ] [-l ] [-n 节点] [-t 超时时间] 命令 [命令选项] |
描述
rabbitmq-diagnostics
是一个命令行工具,提供用于诊断、监控和检查 RabbitMQ 节点健康的命令。请参阅 RabbitMQ 文档指南,了解有关 RabbitMQ 诊断、监控和健康检查的更多信息。
rabbitmq-diagnostics
允许操作员检查节点和集群状态。提供了一些健康检查,可供交互式使用和监控工具使用。
默认情况下,如果无法连接到目标节点并对其进行身份验证(例如,如果它已停止),则操作将失败。要了解更多信息,请参阅 RabbitMQ 监控指南
选项
-n
节点默认节点为“rabbit@目标主机名”,其中 目标主机名 为本地主机。在名为“myserver.example.com”的主机上,节点名称通常为“rabbit@myserver”(除非已覆盖
RABBITMQ_NODENAME
)。“hostname -s”的输出通常是“@”符号后使用的正确后缀。有关配置 RabbitMQ 节点的详细信息,请参阅 rabbitmq-server(8)。-q
,--quiet
- 选择静默输出模式。启用静默模式时,信息消息会减少。
-s
,--silent
- 选择静默输出模式。启用静默模式时,信息消息会减少,并且表标题会被抑制。
-t
超时时间,--timeout
超时时间- 操作超时时间(秒)。并非所有命令都支持超时。默认值为
无限
。 -l
,--longnames
当集群配置为使用长(FQDN)节点名称时,必须指定此选项。要了解更多信息,请参阅 RabbitMQ 集群指南
--erlang-cookie
cookie用于对目标节点进行身份验证的共享密钥。建议使用本地文件或
RABBITMQ_ERLANG_COOKIE
环境变量,而不是在命令行上指定此选项。要了解更多信息,请参阅 RabbitMQ CLI 工具指南
命令
rabbitmq-diagnostics
提供的大多数命令用于检查节点和集群状态或执行健康检查。
列出拓扑实体(例如队列)的命令使用制表符作为列分隔符。这些命令及其参数被委托给 rabbitmqctl(8)。
某些命令(list_queues
、list_exchanges
、list_bindings
和 list_consumers
)接受可选的 虚拟主机 参数。
list_queues
、list_exchanges
和 list_bindings
命令接受一个可选的虚拟主机参数,用于显示结果。默认值为“/”。
帮助
节点
wait
请参阅 rabbitmqctl(8) 中的
wait
集群
cluster_status
请参阅 rabbitmqctl(8) 中的
cluster_status
用户
list_users
请参阅 rabbitmqctl(8) 中的
list_users
访问控制
list_permissions
[-p
虚拟主机]请参阅 rabbitmqctl(8) 中的
list_permissions
list_topic_permissions
[-p
虚拟主机]请参阅 rabbitmqctl(8) 中的
list_topic_permissions
list_user_permissions
用户名请参阅 rabbitmqctl(8) 中的
list_user_permissions
list_user_topic_permissions
用户名请参阅 rabbitmqctl(8) 中的
list_user_topic_permissions
list_vhosts
[虚拟主机信息项 ...]请参阅 rabbitmqctl(8) 中的
list_vhosts
监控、可观察性和健康检查
alarms
列出集群中(如果有)的资源警报。
请参阅 RabbitMQ 资源警报指南 以了解更多信息。
示例
rabbitmq-diagnostics alarms
certificates
显示目标节点上每个配置为使用 TLS 的侦听器的节点证书。
示例
rabbitmq-diagnostics certificates
check_alarms
健康检查,如果集群中的任何节点存在有效的警报,则失败(返回非零代码)。
请参阅 RabbitMQ 资源警报指南 以了解更多信息。
示例
rabbitmq-diagnostics check_alarms
check_certificate_expiration
[--unit
时间单位] [--within
秒数]检查目标节点上每个配置为使用 TLS 的侦听器的证书上的过期日期。支持的时间单位为
天
周
月
年
示例
rabbitmq-diagnostics check_certificate_expiration --unit weeks --within 6
check_local_alarms
健康检查,如果目标节点存在有效的警报,则失败(返回非零代码)。
请参阅 RabbitMQ 资源警报指南 以了解更多信息。
示例
rabbitmq-diagnostics check_local_alarms
check_port_connectivity
健康检查,如果目标节点上的任何侦听器端口无法接受由
rabbitmq-diagnostics
打开的新 TCP 连接,则失败(返回非零代码)。此检查仅验证是否接受了新的 TCP 连接。它不执行消息传递协议握手或身份验证。
请参阅 RabbitMQ 网络指南 以了解更多信息。
示例
rabbitmq-diagnostics check_port_connectivity
check_port_listener
端口健康检查,如果目标节点未在指定的端口上侦听(没有使用该端口的侦听器),则失败(返回非零代码)。
请参阅 RabbitMQ 网络指南 以了解更多信息。
示例
rabbitmq-diagnostics check_port_listener 5672
check_protocol_listener
协议健康检查,如果目标节点没有指定协议的侦听器,则失败(返回非零代码)。
请参阅 RabbitMQ 网络指南 以了解更多信息。
示例
rabbitmq-diagnostics check_protocol_listener mqtt
check_running
健康检查,如果 RabbitMQ 应用程序未在目标节点上运行,则失败(返回非零代码)。
如果使用
rabbitmqctl(8)
停止了应用程序,则此检查将失败。示例
rabbitmq-diagnostics check_running
check_virtual_hosts
健康检查,检查目标节点上所有虚拟主机是否正在运行
示例
rabbitmq-diagnostics check_virtual_hosts --timeout 60
cipher_suites
列出默认启用的密码套件。要列出所有可用的密码套件,请添加 --all 参数。
示例
rabbitmq-diagnostics cipher_suites --format openssl --all
command_line_arguments
显示目标节点由运行时报告的命令行参数和标志。
示例
rabbitmq-diagnostics command_line_arguments -n rabbit@hostname
consume_event_stream
[--duration
seconds |-d
seconds] [--pattern
pattern] [--timeout
milliseconds]从正在运行的节点流式传输内部事件。输出与 jq 兼容。
示例
rabbitmq-diagnostics consume_event_stream -n rabbit@hostname --duration 20 --pattern queue_.*
discover_peers
在目标节点上运行对等节点发现并打印发现的节点(如果有)。
请参阅RabbitMQ 集群形成指南了解更多信息。
示例
rabbitmq-diagnostics discover_peers --timeout 60
environment
请参阅rabbitmqctl(8)中的
environment
erlang_cookie_hash
输出目标节点用于对 CLI 工具和对等节点进行身份验证的共享密钥的哈希值。该值可以与在 CLI 工具的错误消息中找到的哈希值进行比较。
请参阅RabbitMQ 集群指南了解更多信息。
示例
rabbitmq-diagnostics erlang_cookie_hash -q
erlang_version
报告目标节点的 Erlang/OTP 版本。
示例
rabbitmq-diagnostics erlang_version -q
is_booting
报告 RabbitMQ 应用程序当前是否正在目标节点上启动(未启动/运行或已停止)。
示例
rabbitmq-diagnostics is_booting
is_running
报告 RabbitMQ 应用程序是否已完全启动并在目标节点上运行(即未停止)。
示例
rabbitmq-diagnostics is_running
list_bindings
[-p
vhost] [bindinginfoitem ...]请参阅rabbitmqctl(8)中的
list_bindings
list_channels
[channelinfoitem ...]请参阅rabbitmqctl(8)中的
list_channels
list_ciphers
请参阅rabbitmqctl(8)中的
list_ciphers
list_connections
[connectioninfoitem ...]请参阅rabbitmqctl(8)中的
list_connections
list_consumers
[-p
vhost]请参阅rabbitmqctl(8)中的
list_consumers
list_exchanges
[-p
vhost] [exchangeinfoitem ...]请参阅rabbitmqctl(8)中的
list_exchanges
list_hashes
请参阅rabbitmqctl(8)中的
list_hashes
list_queues
[-p
vhost] [--offline
|--online
|--local
] [queueinfoitem ...]请参阅rabbitmqctl(8)中的
list_queues
list_unresponsive_queues
[--local
] [--queue-timeout
milliseconds] [column ...] [--no-table-headers
]请参阅rabbitmqctl(8)中的
list_unresponsive_queues
listeners
列出此节点上的侦听器(绑定套接字)。使用此方法检查节点侦听哪些协议和端口以进行客户端、CLI 工具和对等节点连接。
请参阅 RabbitMQ 网络指南 以了解更多信息。
示例
rabbitmq-diagnostics listeners
log_tail
[--number
number |-N
number [--timeout
milliseconds]打印节点上日志的最后 N 行
示例
rabbitmq-diagnostics log_tail --number 100
]
log_tail_stream
[--duration
seconds |-d
seconds] [--timeout
milliseconds]在一段时间内从正在运行的节点流式传输日志
示例
rabbitmq-diagnostics log_tail_stream --duration 60
maybe_stuck
定期对节点上所有 Erlang 进程(“轻量级线程”)的堆栈跟踪进行采样。报告堆栈跟踪样本相同的进程。
相同的样本可能表示进程没有取得任何进展,但不一定是问题的指示。
示例
rabbitmq-diagnostics maybe_stuck -q
memory_breakdown
[--unit
memory_unit]按类别显示节点的内存使用情况。支持的内存单位为
字节
兆字节
千兆字节
太字节
请参阅RabbitMQ 内存使用指南了解更多信息。
示例
rabbitmq-diagnostics memory_breakdown --unit gigabytes
observer
[--interval
seconds]在目标节点上启动 CLI 观察器接口
示例
rabbitmq-diagnostics observer --interval 10
ping
最基本的健康检查。如果目标节点(运行时)正在运行并且
rabbitmq-diagnostics
可以成功对其进行身份验证,则成功。report
请参阅rabbitmqctl(8)中的
report
runtime_thread_stats
[--sample-interval
interval]对运行时(内核)线程的活动进行 interval 秒的采样并进行报告。
要使此命令正常工作,目标节点上的 Erlang/OTP 必须使用微状态会计支持进行编译,并且必须可以使用 runtime_tools 包。
示例
rabbitmq-diagnostics runtime_thread_stats --sample-interval 15
schema_info
[--no_table_headers
] [column ...] [--timeout
milliseconds]请参阅rabbitmqctl(8)中的
schema_info
server_version
报告目标节点的版本。
示例
rabbitmq-diagnostics server_version -q
status
请参阅rabbitmqctl(8)中的
status
tls_versions
列出目标节点上运行时支持的所有 TLS 版本。请注意,RabbitMQ 可以配置为仅接受这些版本中的一个子集,例如,默认情况下禁用 SSLv3。
请参阅RabbitMQ TLS 指南了解更多信息。
示例
rabbitmq-diagnostics tls_versions -q
参数
list_global_parameters
请参阅rabbitmqctl(8)中的
list_global_parameters
list_parameters
[-p
vhost]请参阅rabbitmqctl(8)中的
list_parameters
策略
list_operator_policies
[-p
vhost]请参阅rabbitmqctl(8)中的
list_operator_policies
list_policies
[-p
vhost]请参阅rabbitmqctl(8)中的
list_policies
虚拟主机
list_vhost_limits
[--vhost
vhost] [--global
] [--no-table-headers
]请参阅rabbitmqctl(8)中的
list_vhost_limits
节点配置
log_location
[--all
|-a
] [--timeout
milliseconds]显示目标节点上的日志文件位置。
示例
rabbitmq-diagnostics log_location -a
功能标志
list_feature_flags
[column ...] [--timeout
milliseconds]请参阅rabbitmqctl(8)中的
list_feature_flags
队列
quorum_status
队列 [--vhost
虚拟主机]参见 rabbitmq-queues(8) 中的
quorum_status
check_if_cluster_has_classic_queue_mirroring_policy
参见 rabbitmq-queues(8) 中的
check_if_cluster_has_classic_queue_mirroring_policy
check_if_node_is_quorum_critical
参见 rabbitmq-queues(8) 中的
check_if_node_is_quorum_critical
另请参阅
rabbitmqctl(8),rabbitmq-server(8),rabbitmq-queues(8),rabbitmq-streams(8),rabbitmq-upgrade(8),rabbitmq-service(8),rabbitmq-env.conf(5),rabbitmq-echopid(8)
作者
RabbitMQ 团队 <contact-tanzu-data.pdl@broadcom.com>