RabbitMQ之管理与监控

RabbitMQ提供了完善的管理和监控工具,分management plugin 和 rabbitmqctl 两种类型的工具。

一. management plugin

rabbitmq-management plugin提供HTTP API来管理和监控RabbitMQ Server,具体包含如下功能:

  • Declare,list and delete exchanges,queues,bindings,users,virtual hosts and permissions。
  • Monitor queue length,message rates globally and per channel,data rates per connection,etc。
  • Send and receive messages。
  • Monitor Erlang processes,file descriptors,memory use。
  • Export / inport object definitions to JSON。
  • Force close connections,purge queues。

management plugin默认就在RabbitMQ的发布版本中,只需要enable就可以了,执行以下命令:

$ sudo rabbitmq-plugins enable rabbitmq_management

看到这一幕后,重启RabbitMQ就可以了。需要注意的是,mochiweb 必须得有,mochiweb是一个用来构建Web应用的轻便,高效的HTTP应用框架的Erlang库。

下面可以通过以下两种方式来访问管理和监控界面:

1. Web UI

打开浏览器,输入 http://[server-name]:15672/http://localhost:15672/  ,会要求输入用户名和密码,用默认的guest/guest即可,确认后会出现下面界面:

接下来你就可以尽情掌控RabbitMQ了。management UI是static HTML页面,其通过Javascript查询HTTP API得到实时数据。实质上Web UI最终也是调用的Management command line tool。

2. 命令行工具

Management command line tool(rabbitmqadmin)拥有跟Web UI同样的功能,可能还更便于脚本使用。rabbitmqadmin仅仅是一个定制的HTTP客户端,如果想在自己的程序中引入rabbitmqadmin的话,可以直接使用HTTP API。rabbitmqadmin可以在http://server-name:15672/cli页面下载。

下载rabbitmqadmin.txt后,将其重命名为rabbitmqadmin,拷贝到 /usr/local/bin 或者你想要的路径,并增加可执行权限。使用:

$ sudo rabbitmqadmin --help

可以查看使用指南。

二. rabbitmqctl

rabbitmqctl是一个简单的命令行工具用于管理RabbitMQ Server,在shell中执行如下命令,能看到各种命令简价:

Usage:

rabbitmqctl [-n <node>] [-q] <command> [<command options>]

Options:

-n node

-q

Default node is "[email protected]", where server is the local host. On a host named "server.example.com", the node name of the RabbitMQ Erlang node will usually be [email protected] (unless RABBITMQ_NODENAME has been set to some non-default value at broker startup time). The output of hostname -s is usually the correct suffix to use after the "@" sign. See rabbitmq-server(1) for

details of configuring the RabbitMQ broker.

Quiet output mode is selected with the "-q" flag. Informational messages are

suppressed when quiet mode is in effect.

Commands:

stop [<pid_file>]

stop_app

start_app

wait <pid_file>

reset

force_reset

rotate_logs <suffix>

join_cluster <clusternode>[<--ram>]

cluster_status

change_cluster_node_type disc | ram

forget_cluster_node [--offline]

update_cluster_nodes clusternode

add_user <username> <password>

delete_user <username>

change_password <username> <newpassword>

clear_password <username>

set_user_tags <username> <tag> ...

list_users

add_vhost <vhostpath>

delete_vhost <vhostpath>

list_vhosts [<vhostinfoitem> ...]

set_permissions [-p <vhostpath>] <user> <conf> <write> <read>

clear_permissions [-p <vhostpath>] <username>

list_permissions [-p <vhostpath>]

list_user_permissions <username>

set_parameter [-p <vhostpath>] <component_name> <name> <value>

clear_parameter [-p <vhostpath>] <component_name> <key>

list_parameters [-p <vhostpath>]

set_policy [-p <vhostpath>] <name> <pattern>  <definition> [<priority>]

clear_policy [-p <vhostpath>] <name>

list_policies [-p <vhostpath>]

list_queues [-p <vhostpath>] [<queueinfoitem> ...]

list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...]

list_bindings [-p <vhostpath>] [<bindinginfoitem> ...]

list_connections [<connectioninfoitem> ...]

list_channels [<channelinfoitem> ...]

list_consumers [-p <vhostpath>]

status

environment

report

eval <expr>

close_connection <connectionpid> <explanation>

trace_on [-p <vhost>]

trace_off [-p <vhost>]

set_vm_memory_high_watermark <fraction>

<vhostinfoitem> must be a member of the list [name, tracing].

The list_queues, list_exchanges and list_bindings commands accept an optional virtual host parameter for which to display results. The default value is "/".

<queueinfoitem> must be a member of the list [name, durable, auto_delete, arguments, policy, pid, owner_pid, exclusive_consumer_pid, exclusive_consumer_tag, messages_ready, messages_unacknowledged, messages, consumers, active_consumers, memory, slave_pids, synchronised_slave_pids].

<exchangeinfoitem> must be a member of the list [name, type, durable, auto_delete, internal, arguments, policy].

<bindinginfoitem> must be a member of the list [source_name, source_kind, destination_name, destination_kind, routing_key, arguments].

<connectioninfoitem> must be a member of the list [pid, name, port, host, peer_port, peer_host, ssl, ssl_protocol, ssl_key_exchange, ssl_cipher, ssl_hash, peer_cert_subject, peer_cert_issuer, peer_cert_validity, last_blocked_by, last_blocked_age, state, channels, protocol, auth_mechanism, user, vhost, timeout, frame_max, client_properties, recv_oct, recv_cnt, send_oct, send_cnt, send_pend].

<channelinfoitem> must be a member of the list [pid, connection, name, number, user, vhost, transactional, confirm, consumer_count, messages_unacknowledged, messages_uncommitted, acks_uncommitted, messages_unconfirmed, prefetch_count, client_flow_blocked].

时间: 2024-07-31 12:52:17

RabbitMQ之管理与监控的相关文章

RabbitMQ实战:界面管理和监控

本系列是「RabbitMQ实战:高效部署分布式消息队列」书籍的总结笔记. 上一篇总结了可能出现的异常场景,并对RabbitMQ提供的可用性保证进行了分析,在出现服务器宕机后,仍然可以正常服务.另外,需要尽快恢复异常的服务器,重新加入集群,推送未消费的消息,通过监控可第一时间接收到错误并进行处理. 另外,我们想主动了解消息堆积和消费的情况,以及服务器节点的压力,RabbitMQ提供了几种方式便捷.直观的了解,包括Web管理插件.REST API.rabbitmqadmin脚本. 通过介绍,你会了解

RabbitMQ概念及环境搭建(二)RabbitMQ Broker管理

rabbitmqctl [-n node] [-q] {command} [command options...] 1.停Server rabbitmqctl stop 2.查看状态 rabbitmqctl status 其他常用项 sudo rabbitmqctl list_queues sudo rabbitmqctl list_exchanges sudo rabbitmqctl list_bindings ... 3.UI rabbitmq-management plugin 基于HTT

现代企业如何加强对项目的管理和监控?

对企业而言,项目代表着可观的收益,出于利益最大化的考虑,企业往往对项目管理投入大量的人力物力,以期达到最优的结果.然而,项目管理并非人越多越好,效率和效果才是管理者们需要重视的问题.项目进行效果的跟踪来自于对项目的管理和监控,这是在项目计划阶段就需要审慎思考的问题.对项目进行管理和监控,可以从以下几方面加以考虑:1.项目计划和执行全跟踪项目能否圆满完成,跟缜密的项目计划.高效的落实行动是密不可分的.对项目计划和执行过程进行跟踪,能及时发现项目中出现的问题并落实到相关责任人,有效减少项目后续风险,

Linux 基础 —— Linux 进程的管理与监控

这篇文章主要讲 Linux 中进程的概念和进程的管理工具.原文:http://liaoph.com/inux-process-management/ 进程的概念 什么是进程 进程(Process)是计算机中程序执的实体.程序通常是由指令和相关数据组成的,在 Linux 系统中,程序的运行通常是由用户通过一个命令行解释器(例如 bash shell)发起执行,或者由其他进程派生而来. 进程标识符 每个进程都有一个非负整数表示的唯一标识符,进程运行时 PID 是由操作系统随机分配的,进程 ID 可以

RabbitMQ后台管理界面

打开后台界面:http://localhost:15672/#/   右上角可以设置页面"刷新时间".以及选择监听的"虚拟主机". 界面有"概要"."连接"."通道"."分发器"."队列"."用户"等几个管理页签. Overview 概要就是RabbitMQ的基本信息 Totals里面有Unacked未确认的消息数 Nodes :其实就是支撑Rab

JMX——以可视化形式管理与监控正在运行中的Java程序

简单理解: MBean:管理的最小单元,一个MBean就是一个可以被监控的JavaBean. MBeanServer:一个池子,各个MBean都会注册到该池子中,并且该池子提供一系列的管理.监控API. MBeanAgent:负责将MBean注册到MBeanServer中,并且定义JMXServiceURL和JMXConnectorServer,使得我们可以使用该url,通过web.RMI.Jconsole等各种形式进行远程监控和管理Java程序. 具体实现参考: https://blog.cs

RabbitMQ CLI 管理工具 rabbitmqadmin(管理和监控)

插个广告,公司最近在招".NET"开发(杭州),如果你现在还从事 .NET 开发(想用 .NET Core,但被公司不认可),想转 JAVA 开发(但又没有工作经验,惧怕面试),想用微服务架构重构(面对现有庞大的单体应用程序,有心无力),那么请关注右侧的公众号私信我,或许我可以帮到你一些--- 一般情况下,我们会使用 rabbitmq_management 插件,通过 Web UI 的方式来监控和操作 RabbitMQ(端口 15672),但有时候命令的方式会更加方便一些,Rabbit

rabbitmq——用户管理

原文地址: http://my.oschina.net/hncscwc/blog/262246 安装最新版本的rabbitmq(3.3.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败. 翻看官方的release文档后,得知由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3.0版

【linux环境下】RabbitMq的安装和监控插件安装

[注意安装过程中,提示某些命令not found,直接yum isntall一下就好了]以下是我在CentOS release 6.4下亲测成功的.RabbitMq的安装: RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境. 解压下载的Erlang环境的gz包  tar zxcf  *.tar.gz    cd 进入解压出来的文件夹    执行.www2.qixoo.com/configure -prefix=/opt/erlang  就会开始编译安装  会编译到 /opt