Linux安装RabbitMQ

[复制链接]
发表于 2025-10-20 20:45:22 | 显示全部楼层 |阅读模式
安装步调

rabbitmq使用erlang开发,依靠于erlang,以是必要先下载erlang,且版本要兼容:
可在官网查察erlang与rabbitmq的版本对应关系
  1. https://www.rabbitmq.com/docs/which-erlang
复制代码

CentOs7安装运行

下载

下载地点
  1. https://www.rabbitmq.com/docs/download
复制代码
rabbitmq使用erlang开发,依靠于erlang,以是要先下载erlang,点击如下位置举行erlang的下载:

点击后跳转github,跳转后选择红框处25的版本,以对应当前最新的4.0.3版本mq:

然后再点击Tags后选择版本下载:


末了选择el7 x86的版本点击举行下载:

然后再下载MQ:

其分为docker下载、安装包下载,这里演示linux中CentOS7使用安装包方式下载及安装
点击如下内容:

Direct Downloads标题下点击下载

安装运行

都下载完成后,将安装包放入linux中,然后进入安装包存放目次,实行rpm -ivh安装下令:
下令:

  • 安装erlang:rpm -ivh erlang-26.2.5.5-1.el7.x86_64.rpm
  • 安装rabbitmq:rpm -ivh rabbitmq-server-4.0.3-1.el8.noarch.rpm
    [root@Centos7 rabbitmq]# rpm -ivh erlang-26.2.5.5-1.el7.x86_64.rpm 预备中…                          ################################# [100%]正在升级/安装…   1:erlang-26.2.5.5-1.el7            ################################# [100%]
    [root@Centos7 rabbitmq]# rpm -ivh rabbitmq-server-4.0.3-1.el8.noarch.rpm 告诫:rabbitmq-server-4.0.3-1.el8.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID 6026dfca: NOKEY预备中…                          ################################# [100%]正在升级/安装…   1:rabbitmq-server-4.0.3-1.el8      ################################# [100%]
安装完成后使用service rabbitmq-server start下令启动mq
  1. [root@Centos7 rabbitmq]# service rabbitmq-server start
  2. Redirecting to /bin/systemctl start rabbitmq-server.service
  3. Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
复制代码
启动后假如出现上面Job for rabbitmq-server.service failed.......的失败题目,必要使用如下下令举行设置:
  1. vi /etc/rabbitmq/rabbitmq-env.conf
复制代码
vi下令实行后,在文件内里添加这一行:NODENAME=rabbit@localhost,生存。
留意:rabbitmq-env.conf这个文件没有,打开之后自动创建。

完成设置后在重启并查察mq状态:

  • 重启下令:systemctl restart rabbitmq-server
  • 状态查察下令:systemctl status rabbitmq-server
如下即为乐成启动:
  1. [root@Centos7 rabbitmq]# vi /etc/rabbitmq/rabbitmq-env.conf
  2. [root@Centos7 rabbitmq]# systemctl restart rabbitmq-server[root@Centos7 rabbitmq]# systemctl status rabbitmq-server● rabbitmq-server.service - RabbitMQ broker   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)   Active: active (running) since 五 2024-11-15 09:22:27 CST; 11s ago  Process: 8477 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=0/SUCCESS) Main PID: 8522 (beam.smp)    Tasks: 25   CGroup: /system.slice/rabbitmq-server.service           ├─8522 /usr/lib64/erlang/erts-14.2.5.4/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -pc unicode -P 1048576 -t 5000000 -stbt db...           ├─8536 erl_child_setup 32768           ├─8553 sh -s disksup           ├─8554 /usr/lib64/erlang/lib/os_mon-2.9.1/priv/bin/memsup           ├─8555 /usr/lib64/erlang/lib/os_mon-2.9.1/priv/bin/cpu_sup           ├─8558 /usr/lib64/erlang/erts-14.2.5.4/bin/inet_gethost 4           ├─8559 /usr/lib64/erlang/erts-14.2.5.4/bin/inet_gethost 4           └─8563 /bin/sh -s rabbit_disk_monitor11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Doc guides:  https://www.rabbitmq.com/docs11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Support:     https://www.rabbitmq.com/docs/contact11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Tutorials:   https://www.rabbitmq.com/tutorials11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Monitoring:  https://www.rabbitmq.com/docs/monitoring11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Upgrading:   https://www.rabbitmq.com/docs/upgrade11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Logs: /var/log/rabbitmq/rabbit@localhost.log11月 15 09:22:27 Centos7 rabbitmq-server[8522]: <stdout>11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Config file(s): (none)11月 15 09:22:27 Centos7 rabbitmq-server[8522]: Starting broker... completed with 3 plugins.11月 15 09:22:27 Centos7 systemd[1]: Started RabbitMQ broker.
复制代码
开启web页面

开启rabbitmq的web管理界面
使用rabbitmq-plugins enable rabbitmq_management下令,留意开启后必要使用systemctl restart rabbitmq-server下令重启rabbitmq服务
  1. [root@Centos7 rabbitmq]# rabbitmq-plugins enable rabbitmq_management
  2. Enabling plugins on node rabbit@localhost:
  3. rabbitmq_management
  4. The following plugins have been configured:
  5.   rabbitmq_management
  6.   rabbitmq_management_agent
  7.   rabbitmq_web_dispatch
  8. Applying plugin configuration to rabbit@localhost...
  9. Plugin configuration unchanged.
  10. [root@Centos7 rabbitmq]# systemctl restart rabbitmq-server
复制代码
完成管理页面设置后,还必要开放防火墙(假如有使用防火墙):

  • 开放15672端口:firewall-cmd --zone=public --add-port=15672/tcp --permanent
  • 开放5672端口:firewall-cmd --zone=public --add-port=5672/tcp --permanent
  • 重启防火墙firewall-cmd --reload
  • 查察防火墙端口状态:firewall-cmd --list-all
    [root@Centos7 rabbitmq]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
    Warning: ALREADY_ENABLED: 15672:tcp
    success
    [root@Centos7 rabbitmq]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
    Warning: ALREADY_ENABLED: 5672:tcp
    success
    [root@Centos7 rabbitmq]# firewall-cmd --reload
    success
    [root@Centos7 rabbitmq]# firewall-cmd --list-all
    public (active)
    target: default
    icmp-block-inversion: no
    interfaces: ens33
    sources:
    services: dhcpv6-client ssh
    ports: 15672/tcp 5672/tcp 6379/tcp 8088/tcp 22/tcp 3306/tcp 8888/tcp 8080/tcp 8719/tcp 9001/tcp 443/tcp 9000/tcp
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules:
之后便可以通过欣赏器使用15672端口访问管理页面:

新增管理用户

新增管理员用户,rabbitmq默认自带一个guest用户,这里增长一个新的管理员用户方便以后使用
新增用户:
用户名暗码都是admin:
  1. rabbitmqctl add_user admin admin
复制代码
设置用户分配操纵权限:
  1. rabbitmqctl set_user_tags admin administrator
复制代码
administrator为用户级别,全部的级别为:

  • 1、administrator 可以登录控制台、查察全部信息、可以对rabbitmq举行管理
  • 2、monitoring 监控监控者, 可登录控制台,查察全部信息
  • 3、policymaker 战略订定者, 可登录控制台,指定战略
  • 4、managment 寻常管理员, 可登录控制台
为用户添加资源权限
  1. rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
复制代码

  • -p /: –p 参数反面跟的是捏造主机名称,这里 / 表现默认的根捏造主机。
  • admin: 这是设置权限的用户账号。通常用于管理员操纵。
  • ".*": 这是一个通配符模式,意味着对这个用户赋予了全部权限。"*" 代表恣意字符,. 代表恣意单个字符。
  • ".*" 和 ".*":这两个同样是指定该用户可以实行的全部操纵,也是全部权限的表现。
这条下令的作用就是给用户 admin 在 / 捏造主机上设置了完全权限,这意味着 admin 用户可以实行全部的操纵,包罗但不限于创建、删除队列,发布、取消消息等。
控制台实行如上的下令:
  1. [root@Centos7 rabbitmq]# rabbitmqctl add_user admin admin
  2. Adding user "admin" ...Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.[root@Centos7 rabbitmq]# rabbitmqctl set_user_tags admin administrator
  3. Setting tags for user "admin" to [administrator] ...[root@Centos7 rabbitmq]# rabbitmqctl set_permissions -p / admin  ".*" ".*" ".*"Setting permissions for user "admin" in vhost "/" ...
复制代码
使用新账号登录:

进入后在Admin页签中如下图,用户处多了新加的admin

至此安装运行完成。
其他用户操纵下令:
  1. rabbitmqctl change_password Username Newpassword 修改密码
  2. rabbitmqctl delete_user Username 删除用户
  3. rabbitmqctl list_users 查看用户清单
复制代码
docker安装运行

访问网址:
  1. https://www.rabbitmq.com/docs/download
复制代码
在安装完docker的linux中实行如下下令
  1. docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management
复制代码
该下令会自动安装rabbitmq,实行效果如下,大概会很慢,必要期待:
  1. [root@Centos7 ~]# docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management
  2. Unable to find image 'rabbitmq:4.0-management' locally4.0-management: Pulling from library/rabbitmqafad30e59d72: Already exists 211e97f904c7: Already exists b7d633cb09df: Already exists 0357761da170: Already exists ca95b127b98a: Already exists 3ec3ceaa0dcb: Already exists 7037c52023fb: Already exists d738327fa668: Already exists 5a286d22c8dd: Already exists e971f4d4bd73: Pull complete Digest: sha256:a0ea806ba32e6e9776aa83f66796e6c746606e669220b26359bd461c79a2ba14Status: Downloaded newer image for rabbitmq:4.0-management.........2024-11-22 01:53:31.112725+00:00 [info] <0.9.0> Time to start RabbitMQ: 3371 ms
复制代码
如下即为乐成,但是这是前台运行,shell窗口无法实行其他操纵,制止后实行如下下令转为配景启动
  1. [root@Centos7 ~]# docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management
  2. 9f1174c754d6a7be62986f092de1d530fef8d69a47a40c244831de63ccb0ddad
复制代码
可查察版本信息:
  1. [root@Centos7 ~]# docker run --rm rabbitmq rabbitmqctl version
  2. 4.0.3
复制代码
末了使用你的呆板ip:15672访问管理页面即可,默认用户名暗码都是guest:

管理页面参数先容

顶部标签


RabbitMQ 管理界面中的顶部标签(OverviewConnectionsChannelsExchangesQueues and StreamsAdmin)提供了对 RabbitMQ 集群的差别方面的管理和监控监控功能。以下是各个标签的详细寄义和作用:
1. Overview(概览)

  • 功能

    • 提供 RabbitMQ 集群或单个节点的总体运行状态。
    • 表现有关队列、交换机、毗连、通道等的统计信息。

  • 包罗的重要信息:

    • Totals:队列中的消息总数、消息速率(每分钟发布/确认/投递的消息数量)。
    • Nodes:表现全部节点的资源使用(内存、磁盘、CPU、Erlang 历程等)。
    • Churn Statistics:统计毗连的创建和关闭速率。

2. Connections(毗连)

  • 功能

    • 表现全部客户端到 RabbitMQ 的 TCP 毗连。
    • 答应您查察每个毗连的详细信息。

  • 包罗的重要信息:

    • 客户端 IP 和端标语。
    • 协议(如 AMQP 0-9-1)。
    • 与该毗连干系的通道数量。
    • 状态(如 running 或 idle)。

  • 操纵:

    • 可以逼迫关闭不必要的毗连(Terminate)。

3. Channels(通道)

  • 功能:

    • 表现 RabbitMQ 中全部的 AMQP 通道。
    • 通道是 RabbitMQ 的逻辑通讯通道,客户端通过它们与 RabbitMQ 交换数据。

  • 包罗的重要信息:

    • 通道的状态(如空闲或活动)。
    • 与通道关联的毗连。
    • 消息流速率(如发布、确认)。

  • 操纵:

    • 可以关闭特定通道以逼迫客户端重新创建。

4. Exchanges(交换机

  • 功能:

    • 列出 RabbitMQ 中的全部交换机
    • 交换机用于根据路由键将消息转发到得当的队列。

  • 包罗的重要信息:

    • 交换机的范例(如 direct、fanout、topic、headers)。
    • 是否长期化(Durable)和是否自动删除(Auto-delete)。
    • 消息路由统计信息。

  • 操纵:

    • 创建新的交换机。
    • 删除不必要的交换机。

5. Queues and Streams(队列和流)

  • 功能:

    • 列出全队伍列和流(Streams),并表现每个队列的详细信息。
    • 队列存储消息的地方,消耗者可以从中获取消息。
    • 是一种特别的队列范例,恰当高吞吐量消息。

  • 包罗的重要信息:

    • 队列名称、队列中的消息数、消耗者数量。
    • 消息的入队和出队速率。
    • 消耗者简直认和拒绝统计。

  • 操纵:

    • 查察消息详细信息(如消息内容和元数据)。
    • 删除队列或流。

6. Admin(管理)

  • 功能:

    • 设置和管理 RabbitMQ 的核心设置。

  • 包罗的重要功能:

    • Users(用户管理):

      • 管理 RabbitMQ 的用户账户。
      • 设置权限(VHost 的访问权限)。

    • Policies(战略):

      • 界说 RabbitMQ 的战略,用于自动化操纵(如队列的 TTL、镜像队列等)。

    • Permissions(权限管理):

      • 控制差别用户对交换机、队列的操纵权限。

    • Parameters(插件参数):

      • 设置 RabbitMQ 插件(如 Shovel、Federation)。

    • Virtual Hosts(捏造主机):

      • 创建和管理 RabbitMQ 的捏造主机。


  • 操纵:

    • 管理用户和战略。
    • 设置与捏造主机和插件干系的参数。

这些标签页面让用户可以从差别维度监控监控和管理 RabbitMQ 集群,恰当处理处罚一样寻常运维使命以及排盘题目。
概要信息


在 RabbitMQ 管理界面的 Nodes 节点中,以下是各列的详细寄义:

  • Name (名称)

    • 表现 RabbitMQ 节点的名称,格式通常为 rabbit@主机名。
    • 这个名称是由 RabbitMQ 启动时的主机名和 RabbitMQ 服务名称构成的,用来标识当前节点。

  • File Descriptors (文件形貌符)

    • 当前节点使用的文件形貌符数量和可用文件形貌符的上限。
    • 绿色部分表现当前使用的文件形貌符数。
    • 右侧数字表现总文件形貌符限定(比方 1048576 available)。
    • 假如到达上限,大概会影响 RabbitMQ 的正常运行,由于文件形貌符用于毗连、日记等操纵。

  • Erlang Processes (Erlang 历程)

    • 当前节点的 Erlang 捏造机(BEAM)运行的历程数量和可用历程上限。
    • 绿色部分表现当前运行的 Erlang 历程数。
    • 右侧数字表现总历程限定(比方 1048576 available)。
    • Erlang 历程是 RabbitMQ 的根本构件,用于处理处罚消息、通道、毗连等。

  • Memory (内存)

    • 当前 RabbitMQ 节点使用的内存巨细。
    • 绿色部分表现当前使用的内存量(比方 183 MiB)。
    • 右侧数字表现内存的高水位值(比方 4.6 GiB high watermark)。凌驾高水位时,RabbitMQ 大概会停息处理处罚消息以防止过载。

  • Disk Space (磁盘空间)

    • 当前 RabbitMQ 节点使用的磁盘空间量。
    • 绿色部分表现磁盘可用空间(比方 11 GiB)。
    • 右侧数字表现低水位值(比方 48 MiB low watermark)。假如磁盘可用空间小于低水位值,RabbitMQ 会制止担当新消息。

  • Uptime (运行时间)

    • 当前节点从启动到现在的运行时间,格式为 时:分:秒(比方 7m 3s 表现已运行 7 分钟 3 秒)。

  • Cores (核心数)

    • 当前节点使用的 CPU 核心数(比方 128)。
    • 核心数量大概与体系分配的资源有关。

  • Info (信息)

    • 包罗节点的运行状态、范例或其他信息标记。
    • basic 表现根本信息。
    • 其他标记(如 rss)大概与内存管理有关。

  • Reset Stats (重置统计数据)

    • 按下 This Node 按钮可以重置该节点的统计数据。
    • 按下 All Nodes 按钮可以重置集群中全部节点的统计数据。

通过这些列,您可以直观地查察和监控 RabbitMQ 节点的资源使用和运行状态,便于判定节点是否运行正常。
卸载RabbitMQ

先制止RabbitMq服务
  1. systemctl stop rabbitmq-server
复制代码
查察并卸载rabbitmq安装的干系列表
查察下令:
  1. yum list | grep rabbitmq
复制代码
卸载下令(直接实行即可):
  1. yum -y remove rabbitmq-server.noarch
复制代码
查察并卸载erlang安装的干系软件包
查察下令:
  1. yum list | grep erlang
复制代码
卸载下令(直接实行即可):
  1. yum -y remove erlang-*
复制代码
查找并删除erlang干系文件
  1. whereis erlang
  2. [root@Centos7 ~]# whereis erlang
  3. erlang: /usr/lib64/erlang
复制代码
删除上面查出的erlang干系文件:
  1. [root@Centos7 ~]# rm -rf /usr/lib64/erlang
复制代码
然后卸载完成。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表