3.6. 检查代理、队列和集群的健康状态
AMQ Broker 包含一个命令行工具,可让您在代理拓扑中的代理和队列上执行各种健康检查。如果您的代理是集群的,您还可以使用该工具检查集群拓扑的健康状态。
流程
请参阅代理拓扑中为特定代理(即 节点)运行的检查列表。
$ <broker_instance_dir>/bin/artemis help check node
您会看到描述可用于
artemis check node
命令的一组选项的输出。NAME artemis check node - Check a node SYNOPSIS artemis check node [--backup] [--clientID <clientID>] [--diskUsage <diskUsage>] [--fail-at-end] [--live] [--memoryUsage <memoryUsage>] [--name <name>] [--password <password>] [--peers <peers>] [--protocol <protocol>] [--silent] [--timeout <timeout>] [--up] [--url <brokerURL>] [--user <user>] [--verbose] OPTIONS --backup Check that the node has a backup --clientID <clientID> ClientID to be associated with connection --diskUsage <diskUsage> Disk usage percentage to check or -1 to use the max-disk-usage --fail-at-end If a particular module check fails, continue the rest of the checks --live Check that the node has a live --memoryUsage <memoryUsage> Memory usage percentage to check --name <name> Name of the target to check --password <password> Password used to connect --peers <peers> Number of peers to check --protocol <protocol> Protocol used. Valid values are amqp or core. Default=core. --silent It will disable all the inputs, and it would make a best guess for any required input --timeout <timeout> Time to wait for the check execution, in milliseconds --up Check that the node is started, it is executed by default if there are no other checks --url <brokerURL> URL towards the broker. (default: tcp://localhost:61616) --user <user> User used to connect --verbose Adds more information on the execution
例如,检查本地代理的磁盘用量是否低于为代理配置的最大磁盘用量。
$ <broker_instance_dir>/bin/artemis check node --url tcp://localhost:61616 --diskUsage -1 Connection brokerURL = tcp://localhost:61616 Running NodeCheck Checking that the disk usage is less then the max-disk-usage ... success Checks run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.065 sec - NodeCheck
在上例中,为
--diskUsage
选项指定-1
值意味着实用程序会根据为代理配置 的最大 磁盘用量检查磁盘用量。代理的最大磁盘用量使用broker.xml
配置文件中的max-disk-usage
参数进行配置。为max-disk-usage
指定的值代表代理允许使用的可用物理磁盘空间百分比。请参阅代理拓扑中为特定队列运行的检查列表。
$ <broker_instance_dir>/bin/artemis help check queue
您会看到描述可用于
artemis check queue
命令的一组选项的输出。NAME artemis check queue - Check a queue SYNOPSIS artemis check queue [--browse <browse>] [--clientID <clientID>] [--consume <consume>] [--fail-at-end] [--name <name>] [--password <password>] [--produce <produce>] [--protocol <protocol>] [--silent] [--timeout <timeout>] [--up] [--url <brokerURL>] [--user <user>] [--verbose] OPTIONS --browse <browse> Number of the messages to browse or -1 to check that the queue is browsable --clientID <clientID> ClientID to be associated with connection --consume <consume> Number of the messages to consume or -1 to check that the queue is consumable --fail-at-end If a particular module check fails, continue the rest of the checks --name <name> Name of the target to check --password <password> Password used to connect --produce <produce> Number of the messages to produce --protocol <protocol> Protocol used. Valid values are amqp or core. Default=core. --silent It will disable all the inputs, and it would make a best guess for any required input --timeout <timeout> Time to wait for the check execution, in milliseconds --up Check that the queue exists and is not paused, it is executed by default if there are no other checks --url <brokerURL> URL towards the broker. (default: tcp://localhost:61616) --user <user> User used to connect --verbose Adds more information on the execution
实用程序可以通过单个命令执行多个选项。例如,要检查本地代理上默认
helloworld
队列上的 1000 个消息的生产环境、浏览和消耗,请使用以下命令:$ <broker_instance_dir>/bin/artemis check queue --name helloworld --produce 1000 --browse 1000 --consume 1000 Connection brokerURL = tcp://localhost:61616 Running QueueCheck Checking that a producer can send 1000 messages to the queue helloworld ... success Checking that a consumer can browse 1000 messages from the queue helloworld ... success Checking that a consumer can consume 1000 messages from the queue helloworld ... success Checks run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.882 sec - QueueCheck
在前面的示例中,观察您在运行队列检查时没有指定代理 URL。如果您没有显式指定 URL,实用程序将使用默认值
tcp://localhost:61616
。如果您的代理是集群的,请参阅是否可以为集群拓扑运行的检查列表。
$ <broker_instance_dir>/bin/artemis help check cluster
您会看到描述可用于
artemis check cluster
命令的一组选项的输出。NAME artemis check cluster - Verify if all the nodes on the cluster match the same topology and time configuration. SYNOPSIS artemis check cluster [--acceptor=<acceptor>] [--clientID=<clientID>] [--password=<password>] [--protocol=<protocol>] [--silent] [--url=<brokerURL>] [--user=<user>] [--variance=<variance>] [--verbose] OPTIONS --acceptor=<acceptor> Name used to find the default connection URL on the acceptor list. If an acceptor with that name cannot be found, the command looks for a connector with the same name. --clientID <clientID> ClientID to be associated with connection. --password <password> Password used to connect. --protocol <protocol> Protocol used. Valid values are amqp or core. Default=core. --silent Disables all the input options and make a best guess for any required input. --url <brokerURL> URL of the broker (default: tcp://localhost:61616). --user <user> User used to connect. --variance <variance> Allowed time variance in milliseconds after which check is deemed to have failed (default=1000). --verbose Adds more information on the execution.