整合CentOS7安装RabbitMQ的几个方法

CentOS7安装RabbitMQ

由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。

==> Erlang和RabbitMQ的版本对应关系

安装Erlang

方法一

  • 安装依赖
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
  • wget下载Erlang OTP或通过【官网下载地址|otp仓库地址】下载后上传到服务器
wget http://erlang.org/download/otp_src_22.0.tar.gz

整合CentOS7安装RabbitMQ的几个方法_第1张图片

  • 解压
tar -zxvf otp_src_22.0.tar.gz
  • 移走
mv otp_src_22.0 /usr/local/
  • 切换目录
cd /usr/local/otp_src_22.0/
  • 创建即将安装的目录
mkdir ../erlang
  • 构建(此步骤可不要;如果出现 ./otp_build: line 319: autoconf: command not found,需要yum install -y autoconf
./otp_build autoconf
  • 配置安装路径
./configure --prefix=/usr/local/erlang

如果遇到这个错 就假装没看到

整合CentOS7安装RabbitMQ的几个方法_第2张图片

  • 安装
make install
  • 查看一下是否安装成功
ll /usr/local/erlang/bin
  • 添加环境变量
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile

如果在进行configure命令的时候没有配置添加prefix则默认安装在/usr/local/lib/erlang/bin

  • 刷新环境变量
source /etc/profile
  • 一条命令erl试运行,成功则输入halt().命令退出来(点号别忘记)

整合CentOS7安装RabbitMQ的几个方法_第3张图片


方法二

  • 完成erlang的前置条件配置 ==>执行云存储库快速脚本
  curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
  • 安装erlang(二选一)
  #默认安装最新
  yum install -y erlang
  #制定云存储库中的rpm包
  yum install erlang-23.0.3-1.el7.x86_64
  • 命令测试

方法三

  • 直接下载rpm包后上传或通过wget下载
wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.0.3-1.el7.x86_64.rpm/download.rpm
  • 新老版本都有

    • Erlang官网软件包:https://www.erlang-solutions.com/resources/download.html整合CentOS7安装RabbitMQ的几个方法_第4张图片
    • github仓库地址:https://github.com/rabbitmq/erlang-rpm/tree/v23.0.3
    • github下载地址(推荐):https://github.com/rabbitmq/erlang-rpm/releases整合CentOS7安装RabbitMQ的几个方法_第5张图片
    • package cloud地址(推荐):https://packagecloud.io/rabbitmq/erlang整合CentOS7安装RabbitMQ的几个方法_第6张图片
    • Bintray 地址:https://bintray.com/rabbitmq-erlang/rpm/erlang
      整合CentOS7安装RabbitMQ的几个方法_第7张图片
  • 旧版本

    • RabbitMQ官网的Release仓库:https://www.rabbitmq.com/releases/erlang/
    • 国内地址:https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/software/linux/erlang/erlang-21.1-1.el7.centos.x86_64.rpm
  • 安装erlang
rpm -ivh erlang-23.0.3-1.el7.x86_64.rpm

安装RabbitMQ

方法一

  • wget下载或通过【GitHub开源仓库】下载后上传到服务器(noarch为适用所有CPU)
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
整合CentOS7安装RabbitMQ的几个方法_第8张图片
- 第一次解压(由于是tar.xz格式的所以需要用到xz,没有的话就先安装 `yum install -y xz`)
/bin/xz -d rabbitmq-server-generic-unix-3.8.5.tar.xz
  • 第二次解压
tar -xvf rabbitmq-server-generic-unix-3.8.5.tar
  • 移动并改名
# 移动到/usr/local/目录下(注意要移动的文件夹后就不在加'/')移动到同级local文件下(新文件要加'/')
mv rabbitmq_server-3.8.5/ /usr/local/
# 改名为rabbitmq
mv /usr/local/rabbitmq_server-3.8.5  /usr/local/rabbitmq
  • 配置环境变量
echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
  • 刷新环境变量
source /etc/profile
  • 创建配置目录
mkdir /etc/rabbitmq

方法二

1、先导入两个key,没报错就表示正常。

# Package Cloud signs distributed packages using their own GPG keys. As of late 2018 Package Cloud is undergoing a signing key migration. Instead of relying on a "master key", projects will migrate to use repository-specific signing keys. Before the migration is completed, both old and new key must be imported for forward compatibility:
# 包云使用它们自己的GPG密钥对分布式包进行签名。到2018年底,包云正在进行签名密钥迁移。项目将迁移到使用存储库特定的签名键,而不是依赖于“主键”。在迁移完成之前,为了向前兼容,必须同时导入新旧密钥:
# import the new PackageCloud key that will be used starting December 1st, 2018 (GMT)
# 导入将于2018年12月1日起使用的新PackageCloud密钥(GMT)
rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
# import the old PackageCloud key that will be discontinued on December 1st, 2018 (GMT)
# 进口将于2018年12月1日停产的旧PackageCloud密钥
rpm --import https://packagecloud.io/gpg.key

2、完成RabbitMQ的前置条件配置 ==>执行云存储库快速脚本

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

3、下载RabbitMQ的RPM安装包

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm
wget --content-disposition https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.5-1.el7.noarch.rpm/download.rpm

**RabbitMQ官网安装文档:**https://www.rabbitmq.com/download.html(根据需要点击右侧的In This Section或看主文档)

GitHub仓库地址(推荐):https://github.com/rabbitmq/rabbitmq-server/releases/

package cloud地址(推荐):https://packagecloud.io/rabbitmq

Bintray 地址:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/

RabbitMQ官网的Release仓库:https://www.rabbitmq.com/releases/rabbitmq-server/

国内地址:https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/software/linux/rabbitmq/rabbitmq-server-3.7.8-1.el7.noarch.rpm

4、下载成功后,上传到服务器,然后使用命名安装。(二选一)

rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm
yum install rabbitmq-server-3.8.5-1.el7.noarch.rpm
  • 仔细看有一个警告和一个错误。警告是缺少key,而错误是socat,只需要导入key和安装socat即可

    1)导入key

    rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    
    1. 安装socat
    yum -y install epel-release
    yum -y install socat
    

5、查找rabbitmq

whereis rabbitmq

6、列出rabbitmq执行文件

ll /usr/sbin/ | grep 'rabbit'

启动命令

  • 启动:
# 方法一
rabbitmq-server -detached
# 方法二
systemctl start rabbitmq-server
service rabbitmq-server start
  • 停止:
rabbitmqctl stop
  • 状态:
rabbitmqctl status
  • 如果出现这样的问题,则说明rabbitmq还未完全启动
整合CentOS7安装RabbitMQ的几个方法_第9张图片
  • 未启动则提示:Error: unable to connect to node rabbit@wangzaiplus: nodedown
  • 处理防火墙、端口开放567215672等问题
  • 检查是否启动成功
ps -ef | grep rabbitmq

WEB管理

  • 开启web插件,启用管理平台插件后,可以可视化管理RabbitMQ
rabbitmq-plugins enable rabbitmq_management
  • 关闭管控台
rabbitmq-plugins disable rabbitmq_management
  • 查看所有插件
rabbitmq-plugins list
  • 访问:http://127.0.0.1:15672/

整合CentOS7安装RabbitMQ的几个方法_第10张图片

  • rabbitmq默认端口(如果用其它协议,还有其它口,参照rabbitmq官网说明)
    • client端通信口:5672
    • 管理口:15672
    • server间内部通信口:25672
    • erlang发现口:4369

用户管理

  • 查看所有用户
rabbitmqctl list_users
  • 添加一个用户
rabbitmqctl add_user zhaobl 123456
  • 配置权限,授权远程访问(也可以登录后,可视化配置)
rabbitmqctl set_permissions -p "/" zhaobl ".*" ".*" ".*"
  • 查看用户权限
rabbitmqctl list_user_permissions zhaobl
  • 设置tag(设置用户为超级管理员,Tag可以为administrator,monitoring,management
rabbitmqctl set_user_tags zhaobl administrator
  • 删除用户(安全起见,删除默认用户)
rabbitmqctl delete_user guest
  • 创建完成后,重启RabbitMQ(可要可不要)
systemctl restart rabbitmq-server

设置开机自启

chkconfig rabbitmq-server on
systemctl enable rabbitmq-server.service

RabbitMQ配置(可选)

  • 默认账号密码:guest guest(这个账号只允许本机访问,从rabbitmq3.3.0开始)

为了让 guest 用户能够远程访问

  • 方法一:新建配置文件配置loopback_users即可(rabbitmq.config配置文件需手动创建), 步骤如下:
cd /etc/rabbitmq 
# 新建配置文件
touch rabbitmq.config
vim rabbitmq.config
#写入并保存
[{
     rabbit, [{
     loopback_users, []}]}].
#重启服务 
service rabbitmq-server restart
#重新以guest登录, OK
  • 方法二:把/usr/share/doc/rabbitmq-server-3.7.15/rabbitmq.config.example拷贝到/etc/rabbitmq/下并且重命名,去掉后缀 .example 就行,移除前面的 %% 代表注释 以及 最后的 逗号,这个是代表运行 guest 默认用户可以在非本地环境登录
%% The default "guest" user is only permitted to access the server
%% via a loopback interface (e.g. localhost).
%% {loopback_users, [<<"guest">>]},
%%
%% Uncomment the following line if you want to allow access to the
%% guest user from anywhere on the network.
%%{loopback_users, []},

修改为

%% The default "guest" user is only permitted to access the server
%% via a loopback interface (e.g. localhost).
%% {loopback_users, [<<"guest">>]},
%%
%% Uncomment the following line if you want to allow access to the
%% guest user from anywhere on the network.
{loopback_users, []}

参考资料

[ ]:https://www.cnblogs.com/fengyumeng/p/11133924.html
[ ]: https://blog.csdn.net/weixin_40584261/article/details/106826044
[ ]:https://blog.csdn.net/yisangwu/article/details/107715240
[ ]:https://www.jianshu.com/p/ee9f7594212b
[ ]:https://blog.csdn.net/qq_31803503/article/details/94009837

错误解决

  • 解决erlang >= 20.3 is needed by rabbitmq-server-3.7.15-1.el7.noarch问题:

已经安装了Erlang varsion21.3 但还是报这个错误,这个时候可以使用命令
++rpm -ivh --nodeps rabbitmq-server-3.5.7-1.noarch.rpm++

详情:stackoverflow

–nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了–nodeps你就能装上了。

–force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用–force强制安装


  • 在使用rpm方式安装rabbitmq时,执行yum出现以下问题:
整合CentOS7安装RabbitMQ的几个方法_第11张图片

通过erl查看,发现已经安装了21.0的erl,这时需要重新安装最新的erlang

1.手动配置erlang的repo源vi /etc/yum.repos.d/rabbitmq-erlang.repo
在文件中加入以下内容:

# In /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

2.清理rpm文件缓存

yum clean all
yum makecache

3.查看已有的源文件
yum list |grep erlang 此时发现有一个21.3的文件可以用,我们就安装这个文件yum install erlang.x86_64

整合CentOS7安装RabbitMQ的几个方法_第12张图片

完成后继续执行yum install rabbitmq-server-3.7.18-1.el7.noarch.rpm提示成功


  • 在启动Rabbitmq的时候,如果启动失败了,有提示有用journalctl -ex,查看到有报如下信息的时候
整合CentOS7安装RabbitMQ的几个方法_第13张图片

1.这时候用rabbitmqctl status查看一下,如果有错误的话会显示如下信息

整合CentOS7安装RabbitMQ的几个方法_第14张图片

2.这时候要第一行的红色圈起来的字直接用echo 192.168.174.131 rabbitmq>>/etc/hosts其中的IP是服务器的IP,写入后的效果如下

img

3.这时候再重启一下Rabbitmq,就可以快速启动了,启动完后再用,这时候用 rabbitmqctl status查看一下,这时候就会显示正确的信息了

你可能感兴趣的:(运维,centos,rabbitmq,erlang)