安装依赖
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel libxml2-utils libxml2 \
libxslt openssl-devel unixODBC unixODBC-devel unixODBC-bin gtk2 fop wxWidgets-devel wxBase
ln -s /usr/bin/wx-config-3.0 /usr/bin/wx-config
安装erlang
mkdir /opt/erlang
cd /opt/erlang
wget http://soft.download/soft/linux/mq-server/erlang_otp_src_20.3.tar.gz
tar zxvf erlang_otp_src_20.3.tar.gz
cd otp_src_20.3
./configure --prefix=/usr/local/erlang --with-ssl -enable-threads \
-enable-smmp-support -enable-kernel-poll --enable-hipe --disable-javac
make && make install
安装java
参考java安装
export JAVA_HOME=/usr/local/java/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
添加erlang环境变量
vim /etc/profile.d/erlang.sh
export ERLANG_HOME=/usr/local/erlang
export ERL_DIR=${ERLANG_HOME}/bin
export PATH=${ERLANG_HOME}/bin:$PATH
source /etc/profile
安装rabbitmq
yum install -y xz
groupadd rabbitmq
useradd -g rabbitmq rabbitmq -d /var/lib/rabbitmq -s /sbin/nologin
mkdir /opt/rabbitmq
cd /opt/rabbitmq
wget http://soft.download/soft/linux/mq-server/rabbitmq-server-generic-unix-3.6.15.tar.xz
unxz rabbitmq-server-generic-unix-3.6.15.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.6.15.tar
mv rabbitmq_server-3.6.15/ /data/rabbitmq-server
chown -R rabbitmq:rabbitmq /data/rabbitmq-server/
ln -s /data/rabbitmq-server/sbin/rabbitmqctl /usr/bin/rabbitmqctl
ln -s /data/rabbitmq-server/sbin/rabbitmq-defaults /usr/bin/rabbitmq-defaults
ln -s /data/rabbitmq-server/sbin/rabbitmq-env /usr/bin/rabbitmq-env
ln -s /data/rabbitmq-server/sbin/rabbitmq-plugins /usr/bin/rabbitmq-plugins
ln -s /data/rabbitmq-server/sbin/rabbitmq-server /usr/bin/rabbitmq-server
cd /data/rabbitmq-server/etc/rabbitmq/
##要修改node名称,结合/etc/hosts
wget http://soft.download/soft/linux/mq-server/config/rabbitmq-env.conf
wget http://soft.download/soft/linux/mq-server/config/rabbitmq.config
cat /data/rabbitmq-server/etc/rabbitmq/rabbitmq-env.conf
#RABBITMQ_NODE_IP_ADDRESS= //IP地址,空串bind所有地址,指定地址bind指定网络接口
#RABBITMQ_NODE_PORT= //TCP端口号,默认是5672
#RABBITMQ_NODENAME= //节点名称。默认是rabbit
#RABBITMQ_CONFIG_FILE= //配置文件路径 ,即rabbitmq.config文件路径
#RABBITMQ_MNESIA_BASE= //mnesia所在路径
#RABBITMQ_LOG_BASE= //日志所在路径
#RABBITMQ_PLUGINS_DIR= //插件所在路径
# mq01为主机名
RABBITMQ_NODENAME=rabbit@mq1
cat /data/rabbitmq-server/etc/rabbitmq/rabbitmq.config
[
{rabbit,
[
{vm_memory_high_watermark,0.6},
{vm_memory_watermark_paging_ratio,0.5}
]},
{kernel,
[]},
{rabbitmq_management,
[]},
{rabbitmq_shovel,
[{shovels,
[]}
]},
{rabbitmq_stomp,
[]},
{rabbitmq_mqtt,
[]},
{rabbitmq_amqp1_0,
[]},
{rabbitmq_auth_backend_ldap,
[]}
].
设置hosts
192.168.1.120 mq1
192.168.1.121 mq2
192.168.1.122 mq3
开机自启
cd /etc/systemd/system/
wget http://soft.download/soft/linux/mq-server/config/rabbitmq-server.service -O /etc/systemd/system/rabbitmq-server.service
cat /etc/systemd/system/rabbitmq-server.service
[Unit]
Description=RabbitMQ broker
After=syslog.target network.target
[Service]
Type=simple
User=rabbitmq
Group=rabbitmq
LimitNOFILE=65535
WorkingDirectory=/data/rabbitmq-server
ExecStart=/data/rabbitmq-server/sbin/rabbitmq-server
ExecStop=/data/rabbitmq-server/sbin/rabbitmqctl stop
NotifyAccess=all
TimeoutStartSec=3600
[Install]
WantedBy=multi-user.target
修改启动脚本
vim +80 /data/rabbitmq-server/sbin/rabbitmq-server
#加入erlang环境变量
export ERLANG_HOME=/usr/local/erlang
export PATH=${ERLANG_HOME}/bin:$PATH
sed -i '80i export PATH=${ERLANG_HOME}/bin:$PATH' rabbitmq-server
sed -i '80i export ERLANG_HOME=/usr/local/erlang' rabbitmq-server
启动服务
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service
systemctl enable rabbitmq-server.service
开放端口
firewall-cmd --zone=public --add-port=4369/tcp --permanent&&firewall-cmd --reload
firewall-cmd --zone=public --add-port=5672/tcp --permanent&&firewall-cmd --reload
firewall-cmd --zone=public --add-port=25672/tcp --permanent&&firewall-cmd --reload
firewall-cmd --zone=public --add-port=15672/tcp --permanent&&firewall-cmd --reload
创建账号、vhost、开启管理插件、删除guest账号
rabbitmqctl list_users -n rabbit@mq01
rabbitmq-plugins enable rabbitmq_management -n rabbit@mq1
rabbitmqctl add_user gadmin 123456 -n rabbit@mq01
rabbitmqctl add_user dev 123456 -n rabbit@mq1
rabbitmqctl add_user cloud 123456 -n rabbit@mq1
rabbitmqctl add_user test 123456 -n rabbit@mq1
#分配用户标签
rabbitmqctl set_user_tags gadmin administrator
rabbitmqctl set_user_tags dev administrator
rabbitmqctl set_user_tags cloud administrator
rabbitmqctl set_user_tags test administrator
添加vhost
rabbitmqctl add_vhost /dev -n rabbit@mq1
rabbitmqctl add_vhost /cloud -n rabbit@mq1
rabbitmqctl add_vhost /test -n rabbit@mq1
授权账号vhost权限
rabbitmqctl set_permissions -p / gadmin '.*' '.*' '.*' -n rabbit@mq01
rabbitmqctl set_permissions -p /dev dev '.*' '.*' '.*' -n rabbit@mq1
rabbitmqctl set_permissions -p /cloud cloud '.*' '.*' '.*' -n rabbit@mq1
rabbitmqctl set_permissions -p /test test '.*' '.*' '.*' -n rabbit@mq1
查看集群状态
rabbitmqctl cluster_status -n rabbit@mq1
# 设置权限
rabbitmqctl set_permissions -p / gadmin '.*' '.*' '.*'
rabbitmqctl delete_user guest -n rabbit@mq1
新节点加入集群
注意:
所有节点的.erlang.cookie的值要一致
如果需要root账号也能执行rabbitmqctl命令,需要把.erlang.cookie拷贝到/root/路径下
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@mq1
rabbitmqctl start_app