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超时- 操作超时(以秒为单位)。并非所有命令都支持超时。默认值为
infinity。 -l,--longnames当集群配置为使用长(FQDN)节点名称时,必须指定此选项。要了解更多信息,请参阅 RabbitMQ 集群指南。
--erlang-cookiecookie用于向目标节点进行身份验证的共享密钥。优先使用本地文件或
RABBITMQ_ERLANG_COOKIE环境变量,而不是在命令行中指定此选项。要了解更多信息,请参阅 RabbitMQ CLI 工具指南。
命令
rabbitmq-diagnostics 提供的大部分命令用于检查节点和集群状态或执行健康检查。
列出拓扑实体(例如队列)的命令使用制表符作为列分隔符。这些命令及其参数会委托给 rabbitmqctl(8)。
某些命令(list_queues、list_exchanges、list_bindings 和 list_consumers)接受一个可选的 vhost 参数。
list_queues、list_exchanges 和 list_bindings 命令接受一个可选的虚拟主机参数,用于显示结果。默认值为“/”。
帮助
help[-l] [command_name]打印所有可用命令的用法。
-l,--list-commands- 仅列出命令用法,不带参数说明。
- command_name
- 打印指定命令的用法。
version显示 CLI 工具版本。
节点
wait请参阅 rabbitmqctl(8) 中的
wait。
集群
cluster_status请参阅 rabbitmqctl(8) 中的
cluster_status。
用户
list_users请参阅 rabbitmqctl(8) 中的
list_users。
访问控制
list_permissions[-pvhost]请参阅 rabbitmqctl(8) 中的
list_permissions。list_topic_permissions[-pvhost]请参阅 rabbitmqctl(8) 中的
list_topic_permissions。list_user_permissionsusername请参阅 rabbitmqctl(8) 中的
list_user_permissions。list_user_topic_permissionsusername请参阅 rabbitmqctl(8) 中的
list_user_topic_permissions。list_vhosts[vhostinfoitem ...]请参阅 rabbitmqctl(8) 中的
list_vhosts。
监控、可观测性和健康检查
alarms列出集群中的资源告警(如果有)。
要了解更多信息,请参阅 RabbitMQ 资源告警指南。
示例
rabbitmq-diagnostics alarmscertificates显示目标节点上已配置使用 TLS 的每个监听器的节点证书。
示例
rabbitmq-diagnostics certificatescheck_alarms健康检查,如果集群节点上存在告警,则检查失败(返回非零代码)。
要了解更多信息,请参阅 RabbitMQ 资源告警指南。
示例
rabbitmq-diagnostics check_alarmscheck_certificate_expiration[--unittime_unit] [--withinseconds]检查目标节点上已配置使用 TLS 的每个监听器的证书的过期日期。支持的时间单位有:
days
weeks
months
years
示例
rabbitmq-diagnostics check_certificate_expiration --unit weeks --within 6check_local_alarms健康检查,如果目标节点上存在告警,则检查失败(返回非零代码)。
要了解更多信息,请参阅 RabbitMQ 资源告警指南。
示例
rabbitmq-diagnostics check_local_alarmscheck_port_connectivity健康检查,如果目标节点上的任何监听器端口无法接受由
rabbitmq-diagnostics打开的新 TCP 连接,则检查失败(返回非零代码)。此检查仅验证是否接受了新的 TCP 连接。它不执行消息协议握手或身份验证。
要了解更多信息,请参阅 RabbitMQ 网络指南。
示例
rabbitmq-diagnostics check_port_connectivitycheck_port_listenerport健康检查,如果目标节点未监听指定端口(没有监听器使用该端口),则检查失败(返回非零代码)。
要了解更多信息,请参阅 RabbitMQ 网络指南。
示例
rabbitmq-diagnostics check_port_listener 5672check_protocol_listenerprotocol健康检查,如果目标节点没有指定协议的监听器,则检查失败(返回非零代码)。
要了解更多信息,请参阅 RabbitMQ 网络指南。
示例
rabbitmq-diagnostics check_protocol_listener mqttcheck_running健康检查,如果 RabbitMQ 应用程序在目标节点上未运行,则检查失败(返回非零代码)。
如果使用
rabbitmqctl(8)停止了应用程序,此检查将失败。示例
rabbitmq-diagnostics check_runningcheck_virtual_hosts健康检查,检查目标节点上的所有 vhost 是否都在运行。
示例
rabbitmq-diagnostics check_virtual_hosts --timeout 60cipher_suites列出默认启用的密码套件。要列出所有可用的密码套件,请添加 --all 参数。
示例
rabbitmq-diagnostics cipher_suites --format openssl --allcommand_line_arguments显示目标节点运行时报告的命令行参数和标志。
示例
rabbitmq-diagnostics command_line_arguments -n rabbit@hostnameconsume_event_stream[--durationseconds |-dseconds] [--patternpattern] [--timeoutmilliseconds]从正在运行的节点流式传输内部事件。输出是 jq 兼容的。
示例
rabbitmq-diagnostics consume_event_stream -n rabbit@hostname --duration 20 --pattern queue_.*discover_peers在目标节点上运行对等节点发现,并打印发现的节点(如果有)。
要了解更多信息,请参阅 RabbitMQ 集群形成指南。
示例
rabbitmq-diagnostics discover_peers --timeout 60environment请参阅 rabbitmqctl(8) 中的
environment。erlang_cookie_hash输出目标节点用于对 CLI 工具和对等节点进行身份验证的共享密钥的哈希值。该值可以与 CLI 工具的错误消息中找到的哈希值进行比较。
要了解更多信息,请参阅 RabbitMQ 集群指南。
示例
rabbitmq-diagnostics erlang_cookie_hash -qerlang_version报告目标节点的 Erlang/OTP 版本。
示例
rabbitmq-diagnostics erlang_version -qis_booting报告 RabbitMQ 应用程序在目标节点上是否正在启动(未启动/运行或已停止)。
示例
rabbitmq-diagnostics is_bootingis_running报告 RabbitMQ 应用程序在目标节点上是否已完全启动并正在运行(即未停止)。
示例
rabbitmq-diagnostics is_runninglist_bindings[-pvhost] [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[-pvhost]请参阅 rabbitmqctl(8) 中的
list_consumers。list_exchanges[-pvhost] [exchangeinfoitem ...]请参阅 rabbitmqctl(8) 中的
list_exchanges。list_hashes请参阅 rabbitmqctl(8) 中的
list_hashes。list_queues[-pvhost] [--offline|--online|--local] [queueinfoitem ...]请参阅 rabbitmqctl(8) 中的
list_queues。list_unresponsive_queues[--local] [--queue-timeoutmilliseconds] [column ...] [--no-table-headers]请参阅 rabbitmqctl(8) 中的
list_unresponsive_queues。listeners列出此节点上的监听器(绑定的套接字)。使用此命令检查节点正在监听的客户端、CLI 工具和对等连接的协议和端口。
要了解更多信息,请参阅 RabbitMQ 网络指南。
示例
rabbitmq-diagnostics listenerslog_tail[--numbernumber |-Nnumber [--timeoutmilliseconds]打印节点日志的最后 N 行。
示例
rabbitmq-diagnostics log_tail --number 100]
log_tail_stream[--durationseconds |-dseconds] [--timeoutmilliseconds]在一段时间内流式传输来自正在运行的节点的日志。
示例
rabbitmq-diagnostics log_tail_stream --duration 60maybe_stuck定期对节点上的所有 Erlang 进程(“轻量级线程”)的堆栈跟踪进行采样。报告堆栈跟踪样本相同的进程。
相同的样本可能表明进程没有取得任何进展,但这并不一定表示有问题。
示例
rabbitmq-diagnostics maybe_stuck -qmemory_breakdown[--unitmemory_unit]按类别显示节点的内存使用情况。支持的内存单位有:
bytes
megabytes
gigabytes
terabytes
要了解更多信息,请参阅 RabbitMQ 内存使用指南。
示例
rabbitmq-diagnostics memory_breakdown --unit gigabytesobserver[--intervalseconds]在目标节点上启动 CLI 观察者界面。
示例
rabbitmq-diagnostics observer --interval 10ping最基本的健康检查。如果目标节点(运行时)正在运行且
rabbitmq-diagnostics可以成功对其进行身份验证,则检查成功。report请参阅 rabbitmqctl(8) 中的
report。runtime_thread_stats[--sample-intervalinterval]对运行时(内核)线程的活动进行 interval 秒的采样并报告。
要使此命令正常工作,目标节点上的 Erlang/OTP 必须使用 microstate accounting 支持编译,并且具有 runtime_tools 包。
示例
rabbitmq-diagnostics runtime_thread_stats --sample-interval 15schema_info[--no_table_headers] [column ...] [--timeoutmilliseconds]请参阅 rabbitmqctl(8) 中的
schema_info。server_version报告目标节点的版本。
示例
rabbitmq-diagnostics server_version -qstatus请参阅 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[-pvhost]请参阅 rabbitmqctl(8) 中的
list_parameters。
策略
list_operator_policies[-pvhost]请参阅 rabbitmqctl(8) 中的
list_operator_policies。list_policies[-pvhost]请参阅 rabbitmqctl(8) 中的
list_policies。
虚拟主机
list_vhost_limits[--vhostvhost] [--global] [--no-table-headers]请参阅 rabbitmqctl(8) 中的
list_vhost_limits。
节点配置
log_location[--all|-a] [--timeoutmilliseconds]显示目标节点上的日志文件位置。
示例
rabbitmq-diagnostics log_location -a
功能标志
list_feature_flags[column ...] [--timeoutmilliseconds]请参阅 rabbitmqctl(8) 中的
list_feature_flags。
队列
quorum_statusqueue [--vhostvhost]请参阅 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)
作者
The RabbitMQ Team <contact-tanzu-data.pdl@broadcom.com>