前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ 3.9.8 的rpm安装方式

RabbitMQ 3.9.8 的rpm安装方式

作者头像
冬天里的懒猫
发布2021-11-03 14:35:35
1.5K0
发布2021-11-03 14:35:35
举报
文章被收录于专栏:做不甩锅的后端

之前采用源码的方式安装erlang,之后再来安装rabbitMQ,这种方式有一些复杂。现在参考官网,可以直接用rpm安装。本文对安装过程进行描述。 官方参考 Installing on RPM-based Linux (RedHat Enterprise Linux, CentOS, Fedora, openSUSE)

1.rpm包下载

需要安装的操作系统信息:

代码语言:javascript
复制
[root@m161p114 ~]# lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.9.2009 (Core)
Release:	7.9.2009
Codename:	Core
[root@m161p114 ~]# 

本文选择最新版本的RabbitMQ 3.9.8。现在rabbitMQ的下载文件都放在了github。

rabbitmq-server

由于操作系统是centos7,那么选择下载的版本为 rabbitmq-server-3.9.8-1.el7.noarch.rpm.

另外需要下载erlang,参考rabbitMQ和rabbitMQ的兼容关系: RabbitMQ Erlang Version Requirements

erlang最低版本为23.2,在此选择了23.3.4.8版本。因为这个版本有支持el7的rpm包可下载。 erlang-rpm

下载的版本为:erlang-23.3.4.8-1.el7.x86_64.rpm

现在将这两个rpm上传到需要安装的服务的/opt/software目录。

2.rpm安装

首先要安装依赖包:

代码语言:javascript
复制
[root@m161p114 ~]# yum install -y socat
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * centos-sclo-rh: mirrors.huaweicloud.com
 * centos-sclo-sclo: mirrors.huaweicloud.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                                                                      | 3.6 kB  00:00:00     
centos-sclo-rh                                                                                                                                                                            | 3.0 kB  00:00:00     
centos-sclo-sclo                                                                                                                                                                          | 3.0 kB  00:00:00     
epel                                                                                                                                                                                      | 4.7 kB  00:00:00     
extras                                                                                                                                                                                    | 2.9 kB  00:00:00     
updates                                                                                                                                                                                   | 2.9 kB  00:00:00     
(1/3): epel/x86_64/updateinfo                                                                                                                                                             | 1.0 MB  00:00:01     
(2/3): epel/x86_64/primary_db                                                                                                                                                             | 7.0 MB  00:00:06     
(3/3): updates/7/x86_64/primary_db                                                                                                                                                        |  12 MB  00:00:08     
Resolving Dependencies
--> Running transaction check
---> Package socat.x86_64 0:1.7.3.2-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================================================================================
 Package                                         Arch                                             Version                                                   Repository                                      Size
=================================================================================================================================================================================================================
Installing:
 socat                                           x86_64                                           1.7.3.2-2.el7                                             base                                           290 k

Transaction Summary
=================================================================================================================================================================================================================
Install  1 Package

Total download size: 290 k
Installed size: 1.1 M
Downloading packages:
socat-1.7.3.2-2.el7.x86_64.rpm                                                                                                                                                            | 290 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : socat-1.7.3.2-2.el7.x86_64                                                                                                                                                                    1/1 
  Verifying  : socat-1.7.3.2-2.el7.x86_64                                                                                                                                                                    1/1 

Installed:
  socat.x86_64 0:1.7.3.2-2.el7                                                                                                                                                                                   

Complete!

erlang安装:

代码语言:javascript
复制
[root@m161p114 software]# cd /opt/software

[root@m161p114 software]# rpm -ivh erlang-23.3.4.8-1.el7.x86_64.rpm 
warning: erlang-23.3.4.8-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID cc4bbe5b: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:erlang-23.3.4.8-1.el7            ################################# [100%]
[root@m161p114 software]# 

安装之后查看版本:

代码语言:javascript
复制
[root@m161p114 software]# erl
Erlang/OTP 23 [erts-11.2.2.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Eshell V11.2.2.7  (abort with ^G)

erlang23安装成功。

rabbitMQ安装:

代码语言:javascript
复制
[root@m161p114 software]# rpm -ivh rabbitmq-server-3.9.8-1.el7.noarch.rpm 
warning: rabbitmq-server-3.9.8-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:rabbitmq-server-3.9.8-1.el7      ################################# [100%]
[root@m161p114 software]# 

3.配置及启动rabbitmq

首先要检查host文件,在hosts文件中确保存在hostname对应的ip解析。 在本文中,增加:

代码语言:javascript
复制
192.168.161.114 m161p114

配置管理后台:

代码语言:javascript
复制
[root@m161p114 ~]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@m161p114:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@m161p114...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

set 3 plugins.
Offline change; changes will take effect at broker restart.

之后,启动rabbitmq:

代码语言:javascript
复制
[root@m161p114 opt]# service rabbitmq-server start
Redirecting to /bin/systemctl start rabbitmq-server.service

rabbitmq启动完成。

增加用户:

代码语言:javascript
复制
[root@m161p114 opt]# rabbitmqctl add_user root 123456
Adding user "root" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
[root@m161p114 opt]# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [administrator] ...
[root@m161p114 opt]# 

至此,rabbitmq安装完成,可以用新增的用户,访问rabbitMQ:

http://192.168.161.114:15672

这样RabbitMQ就安装完毕,通过service rabbitmq-server 可以对rabbitmq进行启动和关闭。

4.遇到的一些常见的错误

4.1 端口被占用错误

启动报错:

代码语言:javascript
复制
[root@m161p114 ~]# service rabbitmq-server restart
Redirecting to /bin/systemctl restart rabbitmq-server.service
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.
[root@m161p114 ~]# systemctl start rabbitmq-server
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.
[root@m161p114 ~]# systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2021-11-01 14:54:05 CST; 9s ago
  Process: 25478 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=1/FAILURE)
 Main PID: 25478 (code=exited, status=1/FAILURE)
   Status: "Standing by"

Nov 01 14:54:05 m161p114 systemd[1]: Failed to start RabbitMQ broker.
Nov 01 14:54:05 m161p114 systemd[1]: Unit rabbitmq-server.service entered failed state.
Nov 01 14:54:05 m161p114 systemd[1]: rabbitmq-server.service failed.


[root@m161p114 ~]# systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2021-11-01 14:56:45 CST; 1s ago
  Process: 26366 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=1/FAILURE)
 Main PID: 26366 (code=exited, status=1/FAILURE)
   Status: "Standing by"

Nov 01 14:56:45 m161p114 systemd[1]: Failed to start RabbitMQ broker.
Nov 01 14:56:45 m161p114 systemd[1]: Unit rabbitmq-server.service entered failed state.
Nov 01 14:56:45 m161p114 systemd[1]: rabbitmq-server.service failed.
[root@m161p114 ~]# systemctl start rabbitmq-server
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.
[root@m161p114 ~]# journalctl -xe
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {failed_to_start_child,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {ranch_embedded_sup,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {acceptor,{0,0,0,0,0,0,0,0},5672}},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {shutdown,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {failed_to_start_child,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {ranch_listener_sup,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {acceptor,{0,0,0,0,0,0,0,0},5672}},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {shutdown,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {failed_to_start_child,ranch_acceptors_sup,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {listen_error,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {acceptor,{0,0,0,0,0,0,0,0},5672},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: eaddrinuse}}}}}}},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {child,undefined,'rabbit_tcp_listener_sup_:::5672',
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {tcp_listener_sup,start_link,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: [{0,0,0,0,0,0,0,0},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: 5672,ranch_tcp,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: [inet6,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {backlog,128},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {nodelay,true},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {linger,{true,0}},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {exit_on_close,false}],
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: rabbit_connection_sup,[],
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {rabbit_networking,tcp_listener_started,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: [amqp,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: [{backlog,128},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {nodelay,true},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {linger,{true,0}},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {exit_on_close,false}]]},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {rabbit_networking,tcp_listener_stopped,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: [amqp,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: [{backlog,128},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {nodelay,true},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {linger,{true,0}},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: {exit_on_close,false}]]},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: 10,1,"TCP listener"]},
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: transient,infinity,supervisor,
Nov 01 14:57:16 m161p114 rabbitmq-server[26561]: [tcp_listener_sup]}}}}
Nov 01 14:57:17 m161p114 rabbitmq-server[26561]: {"init terminating in do_boot",{error,{could_not_start_listener,"::",5672,{{shutdown,{failed_to_start_child,{ranch_embedded_sup,{acceptor,{0,0,0,0,0,0,0,0},5672
Nov 01 14:57:17 m161p114 rabbitmq-server[26561]: init terminating in do_boot ({error,{could_not_start_listener,::,5672,{{shutdown,{_}},{child,undefined,rabbit_tcp_listener_sup_:::5672,{_},transient,infinity,su

启动rabbitmq,出现上述错误。 实际上这是端口被占用所致。rabbitmq使用的是5672端口。而这个服务器上由于安装过activeMQ,导致5672端口被占用。

代码语言:javascript
复制
[root@m161p114 usr]# netstat -an |grep 5672
tcp        0      0 0.0.0.0:5672            0.0.0.0:*               LISTEN     
[root@m161p114 usr]# lsof -i:5672
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    15085 root  139u  IPv4 142285      0t0  TCP *:amqp (LISTEN)
[root@m161p114 usr]# 
[root@m161p114 etc]# ps -aux |grep activemq
root     15085  0.1  5.6 4749504 450096 ?      Sl   Oct28   6:45 /bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/apache-activemq-5.16.3//conf/login.config -Dcom.sun.management.jmxremote -Djava.awt.headless=true -Djava.io.tmpdir=/opt/apache-activemq-5.16.3//tmp -Dactivemq.classpath=/opt/apache-activemq-5.16.3//conf:/opt/apache-activemq-5.16.3//../lib/: -Dactivemq.home=/opt/apache-activemq-5.16.3/ -Dactivemq.base=/opt/apache-activemq-5.16.3/ -Dactivemq.conf=/opt/apache-activemq-5.16.3//conf -Dactivemq.data=/opt/apache-activemq-5.16.3//data -jar /opt/apache-activemq-5.16.3//bin/activemq.jar start
root     32118  0.0  0.0 112820   944 pts/0    S+   15:14   0:00 grep --color=auto activemq
[root@m161p114 etc]# 

可以看到,5672被activeMQ占用。虽然activeMQ使用的是61616端口,但是amqp服务还是会占用5672端口。 我们只需要关闭activeMQ,然后重启rabbitMQ即可。

4.2 增加用户报错

增加rabbitMQ 用户的过程中,出现如下错误:

代码语言:javascript
复制
[root@m161p114 etc]# rabbitmqctl add_user root 123456
Error: unable to perform an operation on node 'rabbit@m161p114'. Please see diagnostics information and suggestions below.

Most common reasons for this are:

 * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
 * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
 * Target node is not running

In addition to the diagnostics info below:

 * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
 * Consult server logs on node rabbit@m161p114
 * If target node is configured to use long node names, don't forget to use --longnames with CLI tools

DIAGNOSTICS
===========

attempted to contact: [rabbit@m161p114]

rabbit@m161p114:
  * connected to epmd (port 4369) on m161p114
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on m161p114
  * suggestion: start the node

Current node details:
 * node name: 'rabbitmqcli-242-rabbit@m161p114'
 * effective user's home directory: /var/lib/rabbitmq
 * Erlang cookie hash: sLsnKdrzrUtqBTBdswbG6g==

[root@m161p114 etc]# 

这需要将rabbitMQ server启动。否则将会出现上述错误。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/11/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 之前采用源码的方式安装erlang,之后再来安装rabbitMQ,这种方式有一些复杂。现在参考官网,可以直接用rpm安装。本文对安装过程进行描述。 官方参考 Installing on RPM-based Linux (RedHat Enterprise Linux, CentOS, Fedora, openSUSE)
  • 1.rpm包下载
  • 2.rpm安装
  • 3.配置及启动rabbitmq
  • 4.遇到的一些常见的错误
    • 4.1 端口被占用错误
      • 4.2 增加用户报错
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档