1.运行环境
- centos7 64位
- VMware14
- RabbitMQ 3.7.7
- erlang 20.3
2.安装RabbitMQ
2.1.如果centos 没有安装gcc,首先需要安装gcc
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
2.2安装RabbitMQ 3.7.7 依赖的erlang
2.2.1下载erlang 20.3
wget https://bintray.com/rabbitmq/rpm/download_file?file_path=erlang/20/el/6/x86_64/erlang-20.3-1.el6.x86_64.rpm
2.2.2 安装erlang
rpm -ivh 刚下载的erlang RPM安装包
2.3安装RabbitMQ 3.7.7
2.3.1下载RabbitMQ 3.7.7
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.7/rabbitmq-server-3.7.7-1.el7.noarch.rpm
2.3.2 安装RabbitMQ 3.7.7
yum install rabbitmq-server-3.7.7-1.el7.noarch.rpm
2.4配置rabbitmq
2.4.1开机启动rabbitMQ服务
chkconfig rabbitmq-server on
2.4.2开启、停止rabbitmq服务
systemctl start rabbitmq-server
systemctl stop rabbitmq-server
2.5 启动异常解决
启动时会失败
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.
使用journalctl -xe查看具体内容
[root@localhost software]# journalctl -xe
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: status: running
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: heap_size: 987
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: stack_size: 27
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: reductions: 250
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: 2019-01-29 13:52:08 std_info
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: application: kernel
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: exited: {{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,auth,{"Error when r
1月 29 13:52:08 localhost.localdomain rabbitmq-server[56625]: type: permanent
1月 29 13:52:09 localhost.localdomain rabbitmq-server[56625]: {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_
1月 29 13:52:09 localhost.localdomain rabbitmq-server[56625]: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_t
1月 29 13:52:09 localhost.localdomain rabbitmq-server[56625]: Crash dump is being written to: /var/log/rabbitmq/erl_crash.dump...done
1月 29 13:52:09 localhost.localdomain systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE
1月 29 13:52:10 localhost.localdomain rabbitmqctl[56813]: 13:52:10.008 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:10 localhost.localdomain rabbitmqctl[56813]: 13:52:10.863 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:10 localhost.localdomain rabbitmqctl[56813]: 13:52:10.864 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:11 localhost.localdomain rabbitmqctl[56813]: 13:52:11.708 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:11 localhost.localdomain rabbitmqctl[56813]: 13:52:11.710 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:12 localhost.localdomain rabbitmqctl[56813]: 13:52:12.548 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:12 localhost.localdomain rabbitmqctl[56813]: 13:52:12.549 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:13 localhost.localdomain rabbitmqctl[56813]: 13:52:13.390 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:13 localhost.localdomain rabbitmqctl[56813]: 13:52:13.391 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:14 localhost.localdomain rabbitmqctl[56813]: 13:52:14.230 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:14 localhost.localdomain rabbitmqctl[56813]: 13:52:14.231 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:15 localhost.localdomain rabbitmqctl[56813]: 13:52:15.074 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:15 localhost.localdomain rabbitmqctl[56813]: 13:52:15.075 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:15 localhost.localdomain rabbitmqctl[56813]: 13:52:15.924 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:15 localhost.localdomain rabbitmqctl[56813]: 13:52:15.926 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:16 localhost.localdomain rabbitmqctl[56813]: 13:52:16.773 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:16 localhost.localdomain rabbitmqctl[56813]: 13:52:16.774 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:17 localhost.localdomain rabbitmqctl[56813]: 13:52:17.613 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:17 localhost.localdomain rabbitmqctl[56813]: 13:52:17.614 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:18 localhost.localdomain rabbitmqctl[56813]: 13:52:18.458 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
1月 29 13:52:18 localhost.localdomain rabbitmqctl[56813]: Distribution failed: {{:shutdown, {:failed_to_start_child, :auth, {'Error when reading /var/lib/rabbitmq/.
1月 29 13:52:18 localhost.localdomain systemd[1]: rabbitmq-server.service: control process exited, code=exited status=78
1月 29 13:52:18 localhost.localdomain 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.
1月 29 13:52:18 localhost.localdomain systemd[1]: Unit rabbitmq-server.service entered failed state.
1月 29 13:52:18 localhost.localdomain systemd[1]: rabbitmq-server.service failed.
查看错误原因,是权限不足引起,执行如下命令
chmod +x /var/lib/rabbitmq/.erlang.cookie
再次启动,仍然启动异常
[root@localhost software]# journalctl -xe
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: stack_size: 27
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: reductions: 244
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: 2019-01-29 13:55:33 std_info
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: application: kernel
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: exited: {{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,auth,{"Cookie file
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: type: permanent
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_t
1月 29 13:55:33 localhost.localdomain rabbitmq-server[62955]: Crash dump is being written to: /var/log/rabbitmq/erl_crash.dump...done
1月 29 13:55:33 localhost.localdomain systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE
1月 29 13:55:34 localhost.localdomain polkitd[686]: Registered Authentication Agent for unix-process:63254:603975 (system bus name :1.293 [/usr/bin/pkttyagent --not
1月 29 13:55:34 localhost.localdomain rabbitmqctl[63143]: 13:55:34.559 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:35 localhost.localdomain rabbitmqctl[63143]: 13:55:35.413 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:35 localhost.localdomain rabbitmqctl[63143]: 13:55:35.416 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:36 localhost.localdomain rabbitmqctl[63143]: 13:55:36.282 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:36 localhost.localdomain rabbitmqctl[63143]: 13:55:36.282 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:37 localhost.localdomain rabbitmqctl[63143]: 13:55:37.154 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:37 localhost.localdomain rabbitmqctl[63143]: 13:55:37.155 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:38 localhost.localdomain rabbitmqctl[63143]: 13:55:38.030 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:38 localhost.localdomain rabbitmqctl[63143]: 13:55:38.031 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:38 localhost.localdomain rabbitmqctl[63143]: 13:55:38.913 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:38 localhost.localdomain rabbitmqctl[63143]: 13:55:38.913 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:39 localhost.localdomain rabbitmqctl[63143]: 13:55:39.755 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:39 localhost.localdomain rabbitmqctl[63143]: 13:55:39.756 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:40 localhost.localdomain rabbitmqctl[63143]: 13:55:40.592 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:40 localhost.localdomain rabbitmqctl[63143]: 13:55:40.593 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:41 localhost.localdomain rabbitmqctl[63143]: 13:55:41.437 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:41 localhost.localdomain rabbitmqctl[63143]: 13:55:41.438 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:42 localhost.localdomain rabbitmqctl[63143]: 13:55:42.302 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:42 localhost.localdomain rabbitmqctl[63143]: 13:55:42.303 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:43 localhost.localdomain rabbitmqctl[63143]: 13:55:43.171 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only
1月 29 13:55:43 localhost.localdomain rabbitmqctl[63143]: Distribution failed: {{:shutdown, {:failed_to_start_child, :auth, {'Cookie file /var/lib/rabbitmq/.erlang.
1月 29 13:55:43 localhost.localdomain systemd[1]: rabbitmq-server.service: control process exited, code=exited status=78
1月 29 13:55:43 localhost.localdomain 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.
1月 29 13:55:43 localhost.localdomain systemd[1]: Unit rabbitmq-server.service entered failed state.
1月 29 13:55:43 localhost.localdomain systemd[1]: rabbitmq-server.service failed.
1月 29 13:55:43 localhost.localdomain polkitd[686]: Unregistered Authentication Agent for unix-process:63254:603975 (system bus name :1.293, object path /org/freede
查看原因,所属用户权限问题,执行以下命令
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
再次启动,没有异常,查看是否启动成功
ps -aux|grep rabbitmq
出现下面信息,说明启动成功
rabbitmq 66541 9.4 6.6 2346060 65976 ? Ssl 13:57 0:05 /usr/lib64/erlang/erts-9.3/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 1280000 -K true -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/ebin -noshell -noinput -s rabbit boot -sname rabbit@localhost -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit lager_log_root "/var/log/rabbitmq" -rabbit lager_default_file "/var/log/rabbitmq/rabbit@localhost.log" -rabbit lager_upgrade_file "/var/log/rabbitmq/rabbit@localhost_upgrade.log" -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/plugins:/usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@localhost" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
rabbitmq 66867 0.0 0.0 4348 524 ? Ss 13:57 0:00 erl_child_setup 1024
rabbitmq 66881 0.0 0.0 11584 444 ? Ss 13:57 0:00 inet_gethost 4
rabbitmq 66882 0.0 0.0 13708 704 ? S 13:57 0:00 inet_gethost 4
root 66919 0.0 0.0 112720 972 pts/1 R+ 13:58 0:00 grep --color=auto rabbitmq
查看端口信息
netstat -tunpl|grep 5672
显示如下
[root@localhost software]# netstat -tunpl|grep 5672
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 66541/beam.smp
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 66541/beam.smp
tcp6 0 0 :::5672 :::* LISTEN 66541/beam.smp
ribbitma 默认端口为5672,管理界面端口为15672
补充:如果管理界面没有启动,可以按以下步骤开启插件
开启RabbitMQ Managerment管理界面
① 到指定目录:cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/plugins
② 开启管理界面:./rabbitmq-plugins enable rabbitmq_management
③ 重启RabbitMQ
2.6管理界面
2.6.1进入管理界面
浏览器输入http://localhost:15672或者虚拟机IP:15672,出现如下图
2.6.2 登录
rabbitmq 默认用户为guest,但是此用户不允许使用浏览器登录,所以需要创建用户后登录
创建用户
rabbitmqctl add_user wdjrrabbit password
更改用户密码
rabbitmqctl change_password wdjrrabbit wdjrrabbit
使用新建用户登录
出现not management user错误,无法正常登录,原因用户缺少权限,
为新建用户增加管理员权限,执行如下命令
$sudo rabbitmqctl set_user_tags wdjrrabbit administrator
使用 rabbitmqctl list_users 查看用户权限
[root@localhost software]# rabbitmqctl list_users
Listing users ...
wdjrrabbit [administrator]
guest [administrator]
已是管理员权限,再次登录
之后可以进行其他操作