跳至主要内容
版本:4.0

rabbitmq-diagnostics.8

名称

rabbitmq-diagnosticsRabbitMQ 诊断、监控和健康检查工具

语法

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 集群指南

用于对目标节点进行身份验证的共享密钥。建议使用本地文件或 RABBITMQ_ERLANG_COOKIE 环境变量,而不是在命令行上指定此选项。要了解更多信息,请参阅 RabbitMQ CLI 工具指南

命令

rabbitmq-diagnostics 提供的大多数命令用于检查节点和集群状态或执行健康检查。

列出拓扑实体(例如队列)的命令使用制表符作为列分隔符。这些命令及其参数被委托给 rabbitmqctl(8)。

某些命令(list_queueslist_exchangeslist_bindingslist_consumers)接受可选的 虚拟主机 参数。

list_queueslist_exchangeslist_bindings 命令接受一个可选的虚拟主机参数,用于显示结果。默认值为“/”。

帮助

help [-l] [命令名称]

打印所有可用命令的用法。

-l, --list-commands

仅列出命令用法,不带参数说明。
命令名称
打印指定命令的用法。

version

显示 CLI 工具版本

节点

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

输出目标节点用于对 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>

© 2024 RabbitMQ. All rights reserved.