一个rabbitmq集群,通过rabbitmq-plugins enable rabbitmq_management启用了管理插件,下载了rabbitmqadmin命令文件,但是执行rabbitmqadmin list queues命令时报错
: *** Access refused: /api/queues?columns=name,messages
看报错是权限问题,检查了启用了插件的rabbitmq节点,15672端口已经监听且是放行的.
rabbitmqadmin只是个Python脚本,实现一个httpdclient实现对rabbitmq的管理插件的访问,效果和登录管理插件的webUI一样.于是查看rabbitadmin的帮助信息,发现添加 -u和 -p验证参数可以正常执行.
另外,帮助信息里面也有指出rabbitmqadmin的配置文件信息的,默认路径是 ~/.rabbitmqadmin.conf,默认会从这里读取用户名和密码信息,实现不输入验证参数直接执行.
Google rabbitmqadmin的配置文件问题,github https://github.com/mpaladin/rabbitmq-custom/blob/master/rabbitmqadmin/rabbitmqadmin.conf.example 发现一个示例
在rabbitmqadmin的源码里面,也找到了配置文件说明
最后竟然rabbitmqadmin的help信息里面其实有提示配置文件的,通过rabbitmqadmin help config查看.............................
参照上面的格式,写了个配置文件,发现直接执行rabbitmqadmin list queues还是报错,需要增加 -N 参数.
如上图,rabbitmqadmin list queues 加-N 参数可以执行,搜索-N参数帮助信息.
-N 参数 ,应该是用来区分不同node的,实现对不同的rabbitmq集群的管理插件的访问.按照上面帮助信息,如果不需要访问多个集群,可以配置default参数,参照这个,最终配置文件如下
[default]
hostname = localhost
port = 15672
username = nova
password = eIaXQP4L
vhost = /
在直接执行rabbitmqadmin list queues无任何报错了.
参考:
https://github.com/mpaladin/rabbitmq-custom/blob/master/rabbitmqadmin/rabbitmqadmin.conf.example