本文已参与「新人创作礼」活动,一起开启掘金创作之路。
系统环境
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
rabbitmq安装前提醒
rabbitmq依赖于erlang,所以安装rabbitmq前需要先安装erlang rabbitmq和erlang在特定的对应版本下才能正常使用,所以安装时要注意使用的版本,下图供参考,更多详细信息可查看官方介绍
由上图所示,rabbitmq-3.7.14
版本对应可以正常使用的erlang
的版本为20.3~21.x
,所以……
本次使用的版本: rabbitmq: 3.7.14 erlang: 21.3
可直接Linux中wget软件包地址:
rabbitmq: https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-generic-unix-3.7.14.tar.xz
erlang: http://erlang.org/download/otp_src_21.3.tar.gz
PS:如果rabbitmq下载的tar.xz后缀的文件包解压有问题,可以放在windows中解压(实测可用)
开始安装:
erlang安装
[root@localhost ~]# yum -y install ncurses-devel libtool libtool-ltdl-devel gcc-c++ erlang-doc erlang-jinterface openssl openssl-devel
[root@localhost ~]# wget http://erlang.org/download/otp_src_21.3.tar.gz
[root@localhost ~]# tar zxvf otp_src_21.3.tar.gz
[root@localhost ~]# cd otp_src_21.3
[root@localhost ~]# ./configure --prefix=/usr/local/erlang
[root@localhost ~]# make
[root@localhost ~]# make install
配置环境变量
[root@localhost ~]# cat /etc/profile
.......
PATH=$PATH:/usr/local/erlang/bin
[root@localhost ~]# source /etc/profile
测试是否安装成功(下方输出即代表安装成功)
输入erl
测试,输入halt().
退出
[root@localhost ~]# erl
Erlang/OTP 21 [erts-10.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]
Eshell V10.3 (abort with ^G)
1> halt().
[root@localhost ~]#
rabbitmq安装
[root@localhost ~]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-generic-unix-3.7.14.tar.xz
[root@localhost ~]# xz -d rabbitmq-server-generic-unix-3.7.14.tar.xz
[root@localhost ~]# tar zxvf rabbitmq-server-generic-unix-3.7.14.tar
[root@localhost ~]# mv rabbitmq-server-generic-unix-3.7.14/rabbitmq_server-3.7.14 /opt/
[root@localhost ~]# rm /opt/rabbitmq-server-generic-unix-3.7.14
配置环境变量
[root@localhost ~]# cat /etc/profile
........
PATH=$PATH:/opt/rabbitmq_server-3.7.14/sbin
[root@localhost ~]# source /etc/profile
启动rabbitmq
[root@localhost ~]# rabbitmq-server -detached 【开启rabbitmq服务】
[root@localhost ~]# rabbitmqctl status 【查看服务状态】
[root@localhost ~]# rabbitmqctl start_app 【启动应用】
[root@localhost ~]# rabbitmq-plugins enable rabbitmq_management 【开启web管理插件】
防火墙策略配置
[root@localhost ~]# firewall-cmd --add-port=15672/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
创建rabbitmq用户
[root@localhost ~]# rabbitmqctl add_user username password
[root@localhost ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" //配置权限
[root@localhost ~]# rabbitmqctl set_user_tags admin administrator //修改用户角色,将用户设为管理员
[root@localhost ~]# rabbitmqctl list_users //查看所有用户
[root@localhost ~]# rabbitmqctl delete_user guest //删除guest用户
访问测试
http://ip:15672
登录成功后初始界面↓↓↓↓↓↓
恭喜!!一个简单的安装rabbitmq就这样完成了!!
扩展-配置开机自启
1、在/etc/init.d/目录中创建rabbitmq文件 (注意要根据自己环境修改rabbitmq安装目录路径)
# 注:/etc/init.d目录是/etc/rc.d/init.d的软链接目录
$ vim /etc/init.d/rabbitmq
#!/bin/bash
# chkconfig: 2345 80 05
# description: rabbitmq
# processname: rabbitmq
#RabbitMQ安装目录
RABBITMQ_HOME=/opt/rabbitmq_server-3.7.14
export PATH=$PATH:/usr/local/erlang/bin
export HOME=$RABBITMQ_HOME
case "$1" in
start)
echo "Starting RabbitMQ ..."
$RABBITMQ_HOME/sbin/rabbitmq-server -detached
;;
stop)
echo "Stopping RabbitMQ ..."
$RABBITMQ_HOME/sbin/rabbitmqctl stop
;;
status)
echo "Status RabbitMQ ..."
$RABBITMQ_HOME/sbin/rabbitmqctl status
;;
*)
echo "Usage: $prog {start|stop|status}"
;;
esac
exit 0
2、配置执行权限
$ cd /etc/rc.d
$ chmod +x /etc/init.d/rabbitmq
3、将服务添加到系统服务中
$ chkconfig --add rabbitmq
4、设置自启动
$ chkconfig rabbitmq on
5、查看是否配置成功(如下图即代表配置成功)
$ chkconfig --list rabbitmq
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
rabbitmq 0:off 1:off 2:on 3:on 4:on 5:on 6:off
6、重刷服务配置
centos7中:
$ systemctl daemon-reload
centos6中:
$ chkconfig daemon-reload
7、启动服务测试
$ systemctl start rabbitm
$ systemctl status rabbitmq
● rabbitmq.service - SYSV: rabbitmq
Loaded: loaded (/etc/rc.d/init.d/rabbitmq; bad; vendor preset: disabled)
Active: active (running) since Thu 2020-09-10 17:29:42 CST; 2min 36s ago
Docs: man:systemd-sysv-generator(8)
Process: 13550 ExecStop=/etc/rc.d/init.d/rabbitmq stop (code=exited, status=0/SUCCESS)
Process: 13764 ExecStart=/etc/rc.d/init.d/rabbitmq start (code=exited, status=0/SUCCESS)
Tasks: 91
Memory: 97.2M
CGroup: /system.slice/rabbitmq.service
├─ 3567 /usr/local/erlang/lib/erlang/erts-10.3/bin/epmd -daemon
├─13983 /usr/local/erlang/lib/erlang/erts-10.3/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MM...
├─14052 erl_child_setup 1024
├─14140 inet_gethost 4
└─14141 inet_gethost 4
Sep 10 17:29:42 cpe-172-250-210-30.socal.res.rr.com systemd[1]: Starting SYSV: rabbitmq...
Sep 10 17:29:42 cpe-172-250-210-30.socal.res.rr.com rabbitmq[13764]: Starting RabbitMQ ...
Sep 10 17:29:42 cpe-172-250-210-30.socal.res.rr.com rabbitmq[13764]: Warning: PID file not written; -detached was passed.
Sep 10 17:29:42 cpe-172-250-210-30.socal.res.rr.com systemd[1]: Started SYSV: rabbitmq.
$ ps aux |grep rabbitmq
root 13983 1.4 0.8 3335044 70024 ? Sl 17:29 0:04 /usr/local/erlang/lib/erlang/erts-10.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 128000 -K true -- -root /usr/local/erlang/lib/erlang -progname erl -- -home /opt/rabbitmq_server-3.7.14 -- -pa /opt/rabbitmq_server-3.7.14/ebin -noshell -noinput -s rabbit boot -sname rabbit@cpe-172-250-210-30 -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit lager_log_root "/opt/rabbitmq_server-3.7.14/var/log/rabbitmq" -rabbit lager_default_file "/opt/rabbitmq_server-3.7.14/var/log/rabbitmq/rabbit@cpe-172-250-210-30.log" -rabbit lager_upgrade_file "/opt/rabbitmq_server-3.7.14/var/log/rabbitmq/rabbit@cpe-172-250-210-30_upgrade.log" -rabbit enabled_plugins_file "/opt/rabbitmq_server-3.7.14/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/opt/rabbitmq_server-3.7.14/plugins" -rabbit plugins_expand_dir "/opt/rabbitmq_server-3.7.14/var/lib/rabbitmq/mnesia/rabbit@cpe-172-250-210-30-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/opt/rabbitmq_server-3.7.14/var/lib/rabbitmq/mnesia/rabbit@cpe-172-250-210-30" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672 -noshell -noinput
root 17389 0.0 0.0 112816 972 pts/1 S+ 17:34 0:00 grep --color=auto rabbitmq
8、重启服务器测试
$ reboot
$ ps aux |grep rabbitmq
PS:如果实在想用systemd管理服务,那么还是可以用上边的脚本来运行 再添加一个systemd管理的服务文件即可
$ vim /usr/lib/systemd/system/rabbitmq.service
[Unit]
Description=rabbitmq server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/etc/init.d/rabbitmq start
ExecStop=/etc/init.d/rabbitmq stop
[Install]
WantedBy=multi-user.target
$ systemctl enable rabbitmq
$ systemctl start rabbitmq