centos7安装rabbitmq

本文介绍在CentOS系统安装RabbitMQ的详细步骤,包括添加epel源、安装Erlang依赖、安装RabbitMQ Server等。还分析启动RabbitMQ时连接不上epmd的问题,并给出修改hosts文件和重启服务器的解决办法。此外,说明了配置RabbitMQ和开启管理后台的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料

https://blog.youkuaiyun.com/y_k_y/article/details/81350274

1>epel源
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist


2>安装依赖环境Erlang
# 下载rpm包
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm 
# 从erlang-solutions中更新该包,并将erlang_solutions.repo添加到/etc/yum.repos.d
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm 
# 安装
yum install erlang

#验证
[root@gnss ~]# erl
Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Eshell V10.4  (abort with ^G)

#禁止Erlang版本的自动更新
# 安装yum-versionlock
yum install yum-plugin-versionlock
# 禁止Erlang自动更新
yum versionlock erlang

3>安装RabbitMQ Server
从官网下载rpm包并上传到服务器上。
# 导入签名
rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
# 或
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc 
# 安装
yum install rabbitmq-server-3.7.15-1.el7.noarch.rpm

4>启动RabbitMQ Server
# 设置开启启动
chkconfig rabbitmq-server on 
# 启动服务
service rabbitmq-server start 
#停止服务
service rabbitmq-server stop


5>出错
[root@gnss ~]# service rabbitmq-server start
Redirecting to /bin/systemctl start 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@gnss ~]# systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: activating (start) since 四 2019-05-23 08:43:33 CST; 10s ago
  Process: 18537 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=69)
 Main PID: 18660 (rabbitmq-server)
   CGroup: /system.slice/rabbitmq-server.service
           ├─18660 /bin/sh /usr/lib/rabbitmq/bin/rabbitmq-server
           ├─18820 /usr/lib64/erlang/erts-10.4/bin/beam.smp -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.15/ebin -boot st...
           ├─18826 /usr/lib64/erlang/erts-10.4/bin/epmd -daemon
           ├─18830 erl_child_setup 32768
           ├─18867 inet_gethost 4
           └─18868 inet_gethost 4

5月 23 08:43:33 gnss.videoserver systemd[1]: Starting RabbitMQ broker...

[root@gnss ~]# journalctl -xe
-- 
-- Unit rabbitmq-server.service has begun starting up.
5月 23 08:42:40 gnss.videoserver rabbitmq-server[18328]: ERROR: epmd error for host gnss: timeout (timed out)
5月 23 08:42:40 gnss.videoserver systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: Error: unable to perform an operation on node 'rabbit@gnss'. Please see diagnostics information and suggestions below.
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: Most common reasons for this are:
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * Target node is not running
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: In addition to the diagnostics info below:
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * Consult server logs on node rabbit@gnss
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * If target node is configured to use long node names, don't forget to use --longnames with CLI tools
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: DIAGNOSTICS
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: ===========
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: attempted to contact: [rabbit@gnss]
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: rabbit@gnss:
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * unable to connect to epmd (port 4369) on gnss: timeout (timed out)
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: Current node details:
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * node name: 'rabbitmqcli-18537-rabbit@gnss'
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * effective user's home directory: /var/lib/rabbitmq
5月 23 08:43:22 gnss.videoserver rabbitmqctl[18537]: * Erlang cookie hash: +XRTujR90/X1NY4jIURPsQ==
5月 23 08:43:22 gnss.videoserver systemd[1]: Failed to start RabbitMQ broker.
-- Subject: Unit rabbitmq-server.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit rabbitmq-server.service has failed.
-- 
-- The result is failed.
5月 23 08:43:22 gnss.videoserver systemd[1]: Unit rabbitmq-server.service entered failed state.
5月 23 08:43:22 gnss.videoserver systemd[1]: rabbitmq-server.service failed.
5月 23 08:43:22 gnss.videoserver polkitd[7406]: Unregistered Authentication Agent for unix-process:18312:224171 (system bus name :1.45, object path /org/freedesktop/PolicyKit1/AuthenticationAgent,
5月 23 08:43:33 gnss.videoserver systemd[1]: rabbitmq-server.service holdoff time over, scheduling restart.
5月 23 08:43:33 gnss.videoserver systemd[1]: Stopped RabbitMQ broker.
-- Subject: Unit rabbitmq-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit rabbitmq-server.service has finished shutting down.
5月 23 08:43:33 gnss.videoserver systemd[1]: Starting RabbitMQ broker...
-- Subject: Unit rabbitmq-server.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit rabbitmq-server.service has begun starting up.
5月 23 08:44:03 gnss.videoserver rabbitmq-server[18660]: ERROR: epmd error for host gnss: timeout (timed out)
5月 23 08:44:03 gnss.videoserver systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE


分析
unable to connect to epmd (port 4369) on gnss: timeout (timed out)
提示连接不上epmd
解决
vi /etc/hosts
127.0.0.1 localhost gnss
重启服务器
通过hostname命令修改一下hostname再运行service rabbitmq-server start就可以解决 

再次启动服务
[root@gnss ~]# service rabbitmq-server start
Redirecting to /bin/systemctl start rabbitmq-server.service
[root@gnss ~]# service rabbitmq-server status
Redirecting to /bin/systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2019-05-23 08:56:24 CST; 4min 19s ago
 Main PID: 8056 (beam.smp)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ├─8056 /usr/lib64/erlang/erts-10.4/bin/beam.smp -W w -A 192 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- ...
           ├─8449 /usr/lib64/erlang/erts-10.4/bin/epmd -daemon
           ├─8879 erl_child_setup 32768
           ├─8946 inet_gethost 4
           └─8947 inet_gethost 4

5月 23 08:56:21 gnss.videoserver rabbitmq-server[8056]: ##  ##
5月 23 08:56:21 gnss.videoserver rabbitmq-server[8056]: ##  ##      RabbitMQ 3.7.15. Copyright (C) 2007-2019 Pivotal Software, Inc.
5月 23 08:56:21 gnss.videoserver rabbitmq-server[8056]: ##########  Licensed under the MPL.  See https://www.rabbitmq.com/
5月 23 08:56:21 gnss.videoserver rabbitmq-server[8056]: ######  ##
5月 23 08:56:21 gnss.videoserver rabbitmq-server[8056]: ##########  Logs: /var/log/rabbitmq/rabbit@gnss.log
5月 23 08:56:21 gnss.videoserver rabbitmq-server[8056]: /var/log/rabbitmq/rabbit@gnss_upgrade.log
5月 23 08:56:21 gnss.videoserver rabbitmq-server[8056]: Starting broker...
5月 23 08:56:24 gnss.videoserver rabbitmq-server[8056]: systemd unit for activation check: "rabbitmq-server.service"
5月 23 08:56:24 gnss.videoserver systemd[1]: Started RabbitMQ broker.
5月 23 08:56:25 gnss.videoserver rabbitmq-server[8056]: completed with 0 plugins.


6>配置RabbitMQ
查看日志
[root@gnss ~]# vi /var/log/rabbitmq/rabbit@gnss.log

2019-05-23 08:56:20.844 [info] <0.8.0> Log file opened with Lager
2019-05-23 08:56:21.601 [info] <0.215.0>
 Starting RabbitMQ 3.7.15 on Erlang 22.0.1
 Copyright (C) 2007-2019 Pivotal Software, Inc.
 Licensed under the MPL.  See https://www.rabbitmq.com/
2019-05-23 08:56:21.612 [info] <0.215.0>
 node           : rabbit@gnss
 home dir       : /var/lib/rabbitmq
 config file(s) : (none)  <<<<<这里
 cookie hash    : +XRTujR90/X1NY4jIURPsQ==
 log(s)         : /var/log/rabbitmq/rabbit@gnss.log
                : /var/log/rabbitmq/rabbit@gnss_upgrade.log
 database dir   : /var/lib/rabbitmq/mnesia/rabbit@gnss


发现刚开始的时候并没有任何配置文件。只好照着官方的介绍,到 /usr/share/doc/rabbitmq-server-3.7.15/ 目录下复制一份模板到 /etc/rabbitmq 目录下进行修改
cd /usr/share/doc/rabbitmq-server-3.7.15/
cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

这里值得提一下,从3.7.0开始,rabbitmq的配置文件引入了一个新的配置文件 rabbitmq.conf(rabbitmq.conf配置模板),该文件使用 key= value的格式进行配置,使配置文件看起来更加简洁易懂。
当两个配置文件都存在的时候,rabbitmq只会读取旧版的配置文件。

7>开启管理后台
#启用插件
rabbitmq-plugins enable rabbitmq_management 

# 开放端口
firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --reload

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值