CentOS 安装 RabbitMQ

发布时间 2023-08-31 11:07:37作者: caibaotimes

安装:

https://www.rabbitmq.com/download.html

1、环境

查看系统版本

# lsb_release -a
# cat /etc/centos-release

操作系统:CentOS 7.9 64位;

注意:如果操作系统是最小化安装,需要额外安装环境依赖:yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

2、安装包下载

下载后的文件:

  • erlang-23.3.4.11-1.el7.x86_64.rpm

  • socat-1.7.3.2-2.el7.x86_64.rpm

  • rabbitmq-server-3.9.9-1.el7.noarch.rpm

2.1 RabbitMQ

下载地址:https://packagecloud.io/rabbitmq/


根据自己的操作系统选择版本,我的操作系统是 CentOS 7 ,所以版本为 el/7。

2.2 Erlang

下载地址:https://packagecloud.io/rabbitmq 版本号选择el/7

2.3 socat

下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=socat&submit=Search+...&system=centos&arch=

注意:下载后缀带有 X86_64 的文件

3、软件安装

3.1、上传文件

SSH 登录服务器上传下载到的文件。连接工具我用的是 MobaXterm,下载地址:https://mobaxterm.mobatek.net/

3.2、安装文件

rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
rpm -ivh rabbitmq-server-3.9.9-1.el7.noarch.rpm

特别注意:由于 RabbitMQ 是基于 Erlang 语言开发的,所以必须先安装Erlang。请按照顺序依次安装。

4、常用命令

### 启动相关[ enable开机启动 | disable禁止开机启动 | start启动 | restart重启 | stop停止 | status状态 ]
# 开机启动RabbitMQ服务
systemctl enable rabbitmq-server

# 禁止开机启动RabbitMQ服务
systemctl disable rabbitmq-server

# 服务启动
systemctl start rabbitmq-server

# 服务重启
systemctl restart rabbitmq-server

# 服务关闭
systemctl stop rabbitmq-server

# 服务状态
systemctl status rabbitmq-server

### 管理命令行 用来在不使用web管理界面情况下命令操作RabbitMQ
# 查看帮助
rabbitmqctl help

### 插件管理命令行[ enable开启 | list列表 | disable禁用 ]
# 开启
rabbitmqplugins enable

# 列表
rabbitmqplugins list

# 禁用
rabbitmqplugins disable


### 添加管理用户角色命令:
# 查看当前用户列表
rabbitmqctl list_users 

# 新增一个用户 语法:rabbitmqctl add_user {useame} {password}
创建 root 用户rabbitmqctl add_user root root

# 设置用户角色 语法:rabbitmqctl set_user_tags {useame} {tag...}
设置root为超级管理员rabbitmqctl set_user_tags root administrator

# 设置用户权限 语法是 rabbitmqctl set_permissions [-p vhost] {user}{conf}{write}{read}
#rabbitmq默认的虚拟主机host为”/“
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"

# 修改密码
rabbitmqctl change_password Username Newpassword 

# 删除用户
rabbitmqctl	delete_user Username 

### 角色有四种:
administrator:可以登录控制台、查看所有信息、并对rabbitmq进行管理
monToring:监控者;登录控制台,查看所有信息
policymaker:策略制定者;登录控制台指定策略
managment:普通管理员;登录控制

5、Web管理插件

5.1、开启插件

rabbitmq-plugins enable rabbitmq_management

注意:先开启 rabbitmq-server,再执行。

访问地址:[ip]:15672

注意:rabbitmq的默认账号[guest]仅限于本机localhost进行访问,所以需要添加一个远程登录的用户

5.2、Rabbitmq 配置

注意:rabbitmq配置文件的后置是conf rabbitmq.conf

创建文件 /etc/rabbitmq/rabbitmq.con,下载官方模板进行配置。

官网地址:https://github.com/rabbitmq/rabbitmq-server/blob/v3.8.x/deps/rabbit/docs/rabbitmq.conf.example

RabbitMQ端口的意义

  • 5672:rabbitmq的同学端口
  • 25672:rabbitmq的节点间的CLI通讯端口
  • 15672:rabbitmq HTTP_API的端口,管理员才能访问,用于管理RabbitMQ,需要启动Management插件。
  • 1883、8883:MQTT插件启动时的端口
  • 61613、61614:STOMP客户端插件启用的时候的端口
  • 15674/15675:基于websocket的STOMP端口和MOTT端口

端口号修改

rabbitmq默认端口和activemq同时启用冲突问题

1.默认5672端口号修改

https://www.rabbitmq.com/configure.html

第一种方法:

在/etc/rabbitmq/rabbitmq.conf配置文件中加上如下配置:

listeners.tcp.default = 5673

或者

[
  {
  	rabbit, [
      {tcp_listeners, [5673]}
    ]
  }
]

上面的示例将更改RabbitMQ监听AMQP0-9-1和AMQP 1.0协议客户端的连接端口从5672到5673

第二种方法:

在/etc/rabbitmq/rabbitmq-env.conf配置文件中添加如下配置:

NODE_PORT=5673

rabbitmq-env.conf配置文件中的配置优先级高于rabbitmq.conf配置文件中的配置

2.默认15672端口号更改

在/etc/rabbitmq/rabbitmq.conf配置文件中加上如下配置:

management.tcp.port = 15673
3.默认25672端口号更改

25672端口用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下仅限于单个端口,计算方式为AMQP 0-9-1和AMQP 1.0端口+20000),默认情况下通过 RABBITMQ_NODE_PORT 计算是25672,也可以通过RABBITMQ_DIST_PORT环境变量配置

在/etc/rabbitmq/rabbitmq-env.conf配置文件中添加如下配置:

DIST_PORT=25674

也可以通过设置 RABBITMQ_NODE_PORT计算 RABBITMQ_DIST_PORT 端口:

NODE_PORT=5674

上面两种方案一种是直接设置节点和CLI工具通信的分发端口,另外一种是通过设置RabbitMQ服务器和客户端之间通信端口并计算得到25674端口号。

4.默认4369端口号更改

EPMD默认端口号是4369,但是可以使用ERL_EPMD_PORT环境变量更改。

列出在当前运行的epmd中绑定注册的端口号及监听的分发端口:

[root@rabbit1 rabbitmq]# epmd -names
epmd: up and running on port 4369 with data:
name rabbit at port 25672

修改epmd守护进程绑定的端口号:

export ERL_EPMD_PORT=4365

杀死epmd守护进程指令:

epmd -kill

当然直接在系统中使用export命令设置环境变量是可以生效的,但是只要系统重启环境变量就失效;可以在/etc/profile或/root/.bashrc文件配置系统环境变量,然后source 文件名就可以永久生效了。

报错:

启动报错查看日志:

1、使用命令 journalctl -xe ,定位到详细的报错日志信息。
2、执行 rabbitmq-server -detached,重新编译并运行rabbitmq服务,会打印出更标准的日志信息。出现Starting broker... completed with 3 plugins 说明执行成功了。

报错信息:

1、ERROR: could not bind to distribution port 25672, it is in use by another node: rabbit@centos7

分析:

检查一下端口25672被谁占用了 lsof -i:25672

这个不是杀死进程就可以解决的。

解决:

执行命令 rabbitmqctl stop,表示正在停止和停止节点rabbit@xx

再重新启动服务就不会报这个错误了。