是否可以直接从命令行查看RabbitMQ消息内容?
sudo rabbitmqctl list_queues
列出队列.
有没有命令命令sudo rabbitmqctl list_queue_messages queue_name
?
我正在使用rabbitmq来处理我工作的企业应用程序的数据库之间的消息.作为流程的一部分,我正在尝试帮助自动化服务器的设置(例如脚本).在此过程中,我尝试使用rabbitmqadmin
从命令提示符声明交换.我有2个不同的服务器在运行CentOS 5.x
,CentOS 6.x
并且两个都有相同的问题.
到目前为止,我宣布了一个管理员用户并设置了密码,然后我将其标记设置为管理员标记,然后我确保它具有对vhost的权限.之后,我尝试声明交换,指定用户和密码,它失败.
rabbitmqctl add_user administrator password
rabbitmqctl set_user_tags administrator administrator
rabbitmqctl set_permissions -p / administrator ".*" ".*" ".*"
rabbitmqctl add_vhost vhostFoo
rabbitmqctl set_permissions -p vhostFoo administrator ".*" ".*" ".*"
rabbitmqadmin -u administrator -p password declare exchange --vhost=vhostFoo name=exchangeNew type=direct
Run Code Online (Sandbox Code Playgroud)
对于CentOS 5.x盒子,我必须使用python26 rabbitmqadmin
而不仅仅是rabbitmqadmin
,但得到相同的结果.
最后一个命令导致:
*** Access refused: /api/exchanges/vhostFoo/exchangeNew
Run Code Online (Sandbox Code Playgroud)
我的CentOS 5.x和Cent 6.x盒子都在运行rabbitmq 3.3.5.关于我缺少什么的想法或者我如何获得有关错误的更多信息的想法(例如错误日志文件或获得更详细输出的方式)?
我正在尝试安装并能够在linux机器上运行rabbitmqadmin.按照此处描述的说明没有帮助.
下载链接的文件后,它会提示将文件(看起来像python脚本)复制到/usr/local/bin
.
尝试通过简单地调用rabbitmqadmin
结果来运行它rabbitmqadmin: command not found
.似乎没有任何关于如何使其工作的信息,并假设网站上列出的所有步骤都适用于所有人.简单地将python脚本复制到该bin
文件夹应该允许它成为公认的命令,而不必每次都调用python解释器.
任何帮助表示赞赏.
心爱的RabbitMQ管理插件有一个HTTP API,可以通过普通的HTTP请求来管理RabbitMQ.
我们需要以编程方式创建用户,并且HTTP API是您选择的方式.文档很少,但API非常简单直观.
关注安全性,我们不希望以纯文本形式传递用户密码,而API提供了一个字段来代替发送密码哈希.从那里引用:
[GET | PUT | DELETE]/api/users/name
个人用户.要使用户,你需要一个看起来像这样的身体:
Run Code Online (Sandbox Code Playgroud){"password":"secret","tags":"administrator"}
要么:
Run Code Online (Sandbox Code Playgroud){"password_hash":"2lmoth8l4H0DViLaK9Fxi6l9ds8=", "tags":"administrator"}
标签键是必需的.无论是
password
或password_hash
必须设置.
到目前为止,这么好,问题是:如何正确生成password_hash
?
该密码散列算法被配置在RabbitMQ的配置文件,我们的配置为默认SHA256.
我正在使用C#,以下代码生成哈希:
var cr = new SHA256Managed();
var simplestPassword = "1";
var bytes = cr.ComputeHash(Encoding.UTF8.GetBytes(simplestPassword));
var sb = new StringBuilder();
foreach (var b in bytes) sb.Append(b.ToString("x2"));
var hash = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
这不起作用.在一些用于SHA256加密的在线工具中进行测试,代码产生了预期的输出.但是,如果我们转到管理页面并手动将用户密码设置为"1",那么它就像魅力一样.
这个答案让我导出配置并看看RabbitMQ正在生成的哈希值,我意识到了一些事情:
password_hash
RabbitMQ存储它没有更改我也接受其他编程语言的建议,而不仅仅是C#.
所以我不断收到来自rabbitmqadmin 的“连接被拒绝”。我在虚拟机上以 root 用户身份运行 debian 7。我用apt-get安装了rabbitmq-server,启动它并执行以下操作:
rabbitmqctl add_user test 1234
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
rabbitmq-plugins enable rabbitmq_management
cd /usr/local/bin/
wget https://raw.githubusercontent.com/rabbitmq/rabbitmq-management/rabbitmq_v3_5_6/bin/rabbitmqadmin
chmod +x rabbitmqadmin
rabbitmqadmin -H 127.0.0.1 -u test -p 1234 list vhosts
Run Code Online (Sandbox Code Playgroud)
但是对rabbitmqadmin的调用总是导致无法连接:[Errno 111]连接被拒绝
我尝试了以下方法:
我试过rabbitmqadmin list users也遇到了同样的问题。我很困惑,有什么想法吗?
注意:我不确定它是否相关,但是我在安装 rabbitmq-server 时遇到了一些麻烦,我不断遇到“未满足的依赖项”问题,并且运行apt-get -f install会删除我需要的一些其他软件包。我认为问题实际上来自安装 erlang,并最终通过遍历未满足的依赖项树并一次安装每个依赖项直到 erlang 和 rabbitmq-server 都安装来使其工作。
我还添加了“deb …
我在CentOS 5.x服务器上安装了RabbitMQ,用于在我的程序之间传递消息.我rabbitmqadmin
按照https://www.rabbitmq.com/management-cli.html上的说明进行了安装,并且过去在我的服务器上使用过它.
据我所知,看起来这个特定的服务器配置错误.在尝试获取有关如何解决此问题的更多信息时,我的网络搜索失败了.
错误:
[root@server ~]# python26 /usr/local/bin/rabbitmqadmin list nodes
*** Could not connect: [Errno -2] Name or service not known
[root@server ~]#
Run Code Online (Sandbox Code Playgroud)
我尝试了几种不同的rabbitmqadmin
命令,它们给出了相同的结果.如果我在没有额外参数的情况下运行命令,则会显示正常的帮助对话框.我有这个设置,并在其他几个服务器上工作.
根本问题是什么?如果没有,无论如何要获得更多细节,比如详细?
更新:
我只是试图检查rabbitmq的版本,它也产生了一个错误:
[root@server ~]# rabbitmqctl status
Status of node rabbit@server ...
Error: unable to connect to node rabbit@server: nodedown
DIAGNOSTICS
===========
attempted to contact: [rabbit@server]
rabbit@server:
* connected to epmd (port 4369) on server
* epmd reports node 'rabbit' running on port 25672
* TCP connection succeeded but Erlang …
Run Code Online (Sandbox Code Playgroud) ================Dockerfile1==================
FROM rabbitmq:3-management
MAINTAINER 123 "qyb1234@everbridge.com"
RUN apt-get update
ENV REFERSHED_AT 2015-07-20
RUN apt-get install -y python
ADD rabbitmqadmin /usr/local/bin/rabbitmqadmin
RUN chmod 755 /usr/local/bin/rabbitmqadmin
RUN service rabbitmq-server start && /usr/local/bin/rabbitmqadmin declare queue name=my-new-queue durable=true && service rabbitmq-server stop
RUN rabbitmq-plugins enable --offline rabbitmq_management
EXPOSE 15672
CMD rabbitmq-server
Run Code Online (Sandbox Code Playgroud)
==============Dockerfile2====================
FROM rabbitmq:3-management
MAINTAINER 123 "qyb1234@gmail.com"
RUN apt-get update
ENV REFERSHED_AT 2015-07-20
RUN apt-get install -y python
ADD rabbitmqadmin /usr/local/bin/rabbitmqadmin
RUN chmod 755 /usr/local/bin/rabbitmqadmin
RUN rabbitmq-plugins enable --offline rabbitmq_management
EXPOSE 15672
CMD service …
Run Code Online (Sandbox Code Playgroud) 我有rabbitmq docker 容器,在不同的机器上运行。我想要做的是使用另一台机器上的 shell 脚本执行rabbitmqctl 命令。我是rabbitmq的新手,需要专家指导
我已经使用rabbitmqadmin 和-H 选项来连接到远程服务器。我能够连接并执行rabbitmqadmin 命令。但是rabbitmqctl没有连接到远程服务器的选项。
$rabbitmqadmin -H 127.2.2.1 -u abc -p abc 列表虚拟主机
$rabbitmqctl add_vhost xyz
我想在远程机器上执行rabbitmqctl命令。rabbitmqadmin 确实有效。
我怎样才能让rabbitmqctl以同样的方式工作。请指导。
我正在windows环境中使用RabbitMQ.我们还有用于windows的rabbitmqadmin吗?
我无法在rabbitmq的sbin文件夹中找到rabbitmqadmin.
请告诉我 .