参考资料
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