CentOS 7 搭建 RabbitMQ
版本:
RabbitMQ v3.8.0;官网:https://www.rabbitmq.com/
Erlang v21.3; 官网:https://www.erlang.org/
安装
# 设置 hostname
hostnamectl set-hostname node-1
hostname node-1
# 关闭防火墙
systemctl stop firewalld
mkdir /data/tools -p
cd /data/tools
yum -y install make gcc gcc-c++ kernel-devel openssl-devel ncurses-devel
# 下载 Erlang 源码
wget http://erlang.org/download/otp_src_21.3.tar.gz
tar zxvf otp_src_21.3.tar.gz
cd otp_src_21.3
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
make && make install
# 下载 rabbitmq 源码
cd /data/tools
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.8.0/rabbitmq-server-generic-unix-3.8.0.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.8.0.tar.xz
mv rabbitmq_server-3.8.0 /usr/local/
# 添加环境变量配置
cat >> /etc/profile << -'EOF'
export PATH=$PATH:/usr/local/erlang/bin:/usr/local/rabbitmq_server-3.8.0/sbin
-EOF
source /etc/profile
# 启动rabbitmq,-detached代表后台守护进程方式启动。
rabbitmq-server -detached
# 查看状态
rabbitmqctl status
# 关闭服务:
rabbitmqctl stop 或 /usr/local/rabbitmq_server-3.8.0/sbin/rabbitmqctl stop
# 列出角色:
rabbitmqctl list_users
配置RabbitMQ监控插件及添加权限
rabbitmq-plugins enable rabbitmq_management
# 查看启动的插件 //[E*显示启动] [e*隐式启动]
rabbitmq-plugins list
# 默认情况下,访问RabbitMQ服务的用户名密码为"guest",这个账户有限制, 默认只能通过本地网络访问,远程访问受到限制,所以我们需要新添加一个用户,命令如下
# 添加用户,后面两个参数分别是用户名和密码
rabbitmqctl add_user admin 123456
# 添加权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
# 修改用户角色
rabbitmqctl set_user_tags admin administrator
然后就可以远程访问了,然后可直接配置用户权限等信息。
登录:http://ip:15672 登录
# 修改监听端口
cd /usr/local/rabbitmq_server-3.8.0/etc/rabbitmq/
cat >> rabbitmq.conf << EOF
listeners.tcp.default = 28003
management.tcp.port = 28004
management.tcp.ip = 0.0.0.0
EOF
# 重启 rabbitmq
rabbitmqctl stop
rabbitmq-server -detached
解决 rabbitmq 更改hostname 后无法使用 rabbitmqctl 命令的情况
# 添加一开始就存在的 hostname,若不知道,可以到下面文件夹查看
cd /usr/local/rabbitmq_server-3.8.0/var/lib/rabbitmq/mnesia
# 我测试环境的例子
ls
rabbit@node-1 rabbit@node-1-feature_flags rabbit@node-1-plugins-expand
# 添加rabbitmq固定节点名字,保证数据文件不变
vi /usr/local/rabbitmq_server-3.8.0/etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit@node-1
# 不需要重启 rabbitmq