Ubuntu 下安装与管理 RabbitMQ,看这篇就够了!_ubuntu 安装rabbitmq
最近在项目里折腾RabbitMQ,发现虽然这只‘兔子’好用,但安装和配置的时候还是有些小细节需要注意。特别是对于刚接触的同学来说,可能会踩一些不大不小的坑。
所以今天,我就把整个过程整理成一篇保姆级教程,从安装到用户管理,再到最常见的“guest用户无法远程登录”问题,争取带大家一次性搞定!这篇文章不讲虚的,全是干货,跟着操作就完事儿了。
咱们话不多说,开整!
一、安装 RabbitMQ,让“兔子”跑起来
1. 更新系统包列表
好嘞,第一步,咱们得先让系统环境保持最新,这是一个好习惯。打开你的终端,敲入下面的命令:
sudo apt update
2. 查找可用的 RabbitMQ 版本(可选)
如果你想安装特定版本的 RabbitMQ,可以先用这个命令看看软件源里都有哪些版本可供选择。
apt list -a rabbitmq-server
(阿扩小贴士:这一步是可选的。如果你没啥特殊要求,直接跳到下一步安装默认版本就行。但在生产环境里,为了保证环境一致性,我们通常会指定版本号来安装。)
3. 安装 RabbitMQ
万事俱备,只欠东风!执行下面的命令来安装 RabbitMQ 服务端。记得把 替换成你上一步查到的具体版本号,或者干脆去掉
=
部分来安装最新版。
# 示例:安装指定版本sudo apt-get install rabbitmq-server=3.8.2-1# 或者,直接安装最新版sudo apt-get install rabbitmq-server
4. 启用 Web 管理插件
RabbitMQ 自带一个超好用的 Web 管理界面,但默认是没开启的。咱们必须手动启用它,这对于后续的管理和监控来说简直是神器!
sudo rabbitmq-plugins enable rabbitmq_management
二、用户管理,给“兔子”找个靠谱的饲养员
安装好了,但别急着访问。出于安全考虑,RabbitMQ 默认的 guest
用户只能在服务器本机上登录。咱们需要创建一个自己的管理员账户,用来远程管理。
下面这个流程图展示了创建一个完整权限新用户的全过程:
#mermaid-svg-JWtH4RMHwcX0YSPH {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JWtH4RMHwcX0YSPH .error-icon{fill:#552222;}#mermaid-svg-JWtH4RMHwcX0YSPH .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JWtH4RMHwcX0YSPH .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-JWtH4RMHwcX0YSPH .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JWtH4RMHwcX0YSPH .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JWtH4RMHwcX0YSPH .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JWtH4RMHwcX0YSPH .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JWtH4RMHwcX0YSPH .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JWtH4RMHwcX0YSPH .marker.cross{stroke:#333333;}#mermaid-svg-JWtH4RMHwcX0YSPH svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JWtH4RMHwcX0YSPH .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-JWtH4RMHwcX0YSPH .cluster-label text{fill:#333;}#mermaid-svg-JWtH4RMHwcX0YSPH .cluster-label span{color:#333;}#mermaid-svg-JWtH4RMHwcX0YSPH .label text,#mermaid-svg-JWtH4RMHwcX0YSPH span{fill:#333;color:#333;}#mermaid-svg-JWtH4RMHwcX0YSPH .node rect,#mermaid-svg-JWtH4RMHwcX0YSPH .node circle,#mermaid-svg-JWtH4RMHwcX0YSPH .node ellipse,#mermaid-svg-JWtH4RMHwcX0YSPH .node polygon,#mermaid-svg-JWtH4RMHwcX0YSPH .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JWtH4RMHwcX0YSPH .node .label{text-align:center;}#mermaid-svg-JWtH4RMHwcX0YSPH .node.clickable{cursor:pointer;}#mermaid-svg-JWtH4RMHwcX0YSPH .arrowheadPath{fill:#333333;}#mermaid-svg-JWtH4RMHwcX0YSPH .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JWtH4RMHwcX0YSPH .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JWtH4RMHwcX0YSPH .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-JWtH4RMHwcX0YSPH .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-JWtH4RMHwcX0YSPH .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JWtH4RMHwcX0YSPH .cluster text{fill:#333;}#mermaid-svg-JWtH4RMHwcX0YSPH .cluster span{color:#333;}#mermaid-svg-JWtH4RMHwcX0YSPH div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JWtH4RMHwcX0YSPH :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}开始1. 添加新用户
add_user2. 为用户设置角色
set_user_tags3. 为用户设置权限
set_permissions完成!
1. 添加新用户
用下面的命令创建一个新用户,把 和
换成你自己的。
sudo rabbitmqctl add_user <username> <password>
举个例子,我们创建一个用户名为 admin
,密码为 YourStrongPassword123
的用户:
sudo rabbitmqctl add_user admin YourStrongPassword123
(阿扩小贴士:生产环境的密码一定要复杂点,别用这么简单的做示范哈!)
2. 为用户设置角色
用户创建好了,但他现在还是个“白板”用户,啥也干不了。接下来咱们得给他分配一个角色。
sudo rabbitmqctl set_user_tags <username> <role>
角色有这么几种,按需分配:
administrator
: 超级管理员,权限最大,啥都能干。咱们自己用就选这个。monitoring
: 监控者,只能看不能改,适合给监控系统用。management
: 普通管理者,能登录控制台,但看不到节点信息等核心数据。
咱们给刚才创建的 admin
用户分配超级管理员角色:
sudo rabbitmqctl set_user_tags admin administrator
3. 为用户设置权限
最后一步,也是最关键的一步!要给用户授权,让他能访问指定的虚拟主机(vhost)。
sudo rabbitmqctl set_permissions -p <vhost> <username> \".*\" \".*\" \".*\"
(小贴士:这行命令看着有点复杂,别怕,我给你拆解一下。-p /
就是指定默认的虚拟主机(vhost),名字就是个斜杠 /
。后面这三个 \".*\"
分别代表配置(Configure)、**写入(Write)和读取(Read)**的权限。\".*\"
是个正则表达式,意思就是“所有”。所以这整句话就是:授予 admin
用户在根虚拟主机上的所有配置、所有写入、所有读取权限,一步到位!)
给我们的 admin
用户授权:
sudo rabbitmqctl set_permissions -p / admin \".*\" \".*\" \".*\"
三、验证一下,看看我们的成果
搞定!现在,打开你的浏览器,输入 http://:15672/
。
用你刚刚创建的 admin
用户和密码登录。如果能看到下面这个界面,恭喜你,大功告成!
(小贴士:如果访问不了,先别慌!检查一下你的服务器防火墙(比如 ufw
)或者云服务器的安全组,是不是没有放行 15672
端口。这可是新手最容易踩的坑之一哦!)
四、日常管理,让“兔子”听你指挥
装好了只是第一步,日常的运维管理也很重要。下面这些命令你可得收藏好,以后肯定用得着。
1. 控制开机自启动
默认情况下,RabbitMQ 是开机自启动的。如果你不希望它自启,可以用下面的命令禁止它。
# 禁止开机自启动sudo systemctl disable rabbitmq-server# 如果需要手动启动服务sudo systemctl start rabbitmq-server
2. 常用管理命令
这些命令都是通过 rabbitmqctl
工具来执行的,非常方便。
- 查看 RabbitMQ 状态:这是最常用的命令,可以看服务是否正常运行。
sudo rabbitmqctl status
-
查看用户列表:看看当前有哪些用户。
sudo rabbitmqctl list_users
-
停止/启动 RabbitMQ 应用:这只是停止了 RabbitMQ 的消息处理功能,但服务进程还在,可以快速恢复。
# 停止应用sudo rabbitmqctl stop_app# 启动应用sudo rabbitmqctl start_app
-
修改用户密码:忘了密码或者定期更换密码时用。
sudo rabbitmqctl change_password <username> <new_password>
-
删除用户:当某个用户不再需要时,及时清理。
sudo rabbitmqctl delete_user <username>
五、常见问题排查:guest 用户无法远程登录
来了来了,新手最常遇到的问题 Top 1!当你尝试用默认的 guest
/ guest
账户从你的电脑远程登录 RabbitMQ 管理后台时,会看到一个登录失败的提示,内容大概是 user can only log in via localhost
。
别慌,这个问题不是 Bug,而是 RabbitMQ 的一个安全设计。guest
用户天生就被限制只能在 RabbitMQ 服务器本机上使用。
最佳解决方案就是我们上面第二节做的:创建一个新的管理员用户用于远程管理。
如果你跳过了第二节,这里再把核心步骤为你列一次(假设你要创建一个 admin/123456
的用户):
# 1. 添加用户 admin,密码为 123456sudo rabbitmqctl add_user admin 123456# 2. 将 admin 用户设置为 administrator 角色sudo rabbitmqctl set_user_tags admin administrator# 3. 为 admin 用户在默认 vhost (/) 上设置完全权限sudo rabbitmqctl set_permissions -p \"/\" admin \".*\" \".*\" \".*\"
做完这三步,再用 admin
和 123456
去登录,是不是就没问题了?
(小贴士:如果你是在 Docker 容器里运行的 RabbitMQ,执行这些命令前需要先进入容器内部,命令是 sudo docker exec -it bash
,进去之后再执行上面的 rabbitmqctl
命令,并且不需要加 sudo
。)
结尾
好啦,到这里,关于在 Ubuntu 上安装和管理 RabbitMQ 的教程就差不多结束了。从安装、启用插件,到创建用户、授权,再到日常管理和排查最常见的问题,我们一步步都走过来了。
希望这篇超详细的指南能帮你扫清障碍,让你和这只“兔子”愉快地玩耍起来。
大家在安装过程中还踩过哪些坑?或者有什么独门小技巧?欢迎在评论区留言交流,我们一起进步!
如果觉得这篇文章对你有帮助,别忘了点赞收藏哦!我是阿扩,我们下期再见!