> 技术文档 > Ubuntu 下安装与管理 RabbitMQ,看这篇就够了!_ubuntu 安装rabbitmq

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/

Ubuntu 下安装与管理 RabbitMQ,看这篇就够了!_ubuntu 安装rabbitmq

用你刚刚创建的 admin 用户和密码登录。如果能看到下面这个界面,恭喜你,大功告成!

Ubuntu 下安装与管理 RabbitMQ,看这篇就够了!_ubuntu 安装rabbitmq

(小贴士:如果访问不了,先别慌!检查一下你的服务器防火墙(比如 ufw)或者云服务器的安全组,是不是没有放行 15672 端口。这可是新手最容易踩的坑之一哦!)

四、日常管理,让“兔子”听你指挥

装好了只是第一步,日常的运维管理也很重要。下面这些命令你可得收藏好,以后肯定用得着。

1. 控制开机自启动

默认情况下,RabbitMQ 是开机自启动的。如果你不希望它自启,可以用下面的命令禁止它。

# 禁止开机自启动sudo systemctl disable rabbitmq-server# 如果需要手动启动服务sudo systemctl start rabbitmq-server

2. 常用管理命令

这些命令都是通过 rabbitmqctl 工具来执行的,非常方便。

  • 查看 RabbitMQ 状态:这是最常用的命令,可以看服务是否正常运行。
    sudo rabbitmqctl status

Ubuntu 下安装与管理 RabbitMQ,看这篇就够了!_ubuntu 安装rabbitmq

  • 查看用户列表:看看当前有哪些用户。

    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 \".*\" \".*\" \".*\"

做完这三步,再用 admin123456 去登录,是不是就没问题了?

(小贴士:如果你是在 Docker 容器里运行的 RabbitMQ,执行这些命令前需要先进入容器内部,命令是 sudo docker exec -it bash,进去之后再执行上面的 rabbitmqctl 命令,并且不需要加 sudo。)

结尾

好啦,到这里,关于在 Ubuntu 上安装和管理 RabbitMQ 的教程就差不多结束了。从安装、启用插件,到创建用户、授权,再到日常管理和排查最常见的问题,我们一步步都走过来了。

希望这篇超详细的指南能帮你扫清障碍,让你和这只“兔子”愉快地玩耍起来。

大家在安装过程中还踩过哪些坑?或者有什么独门小技巧?欢迎在评论区留言交流,我们一起进步!

如果觉得这篇文章对你有帮助,别忘了点赞收藏哦!我是阿扩,我们下期再见!