目录
环境:
系统:Centos7.9
主机名:rabbitmq-21 IP: 192.168.100.21
主机名:rabbitmq-22 IP: 192.168.100.22
主机名:rabbitmq-23 IP: 192.168.100.23
1. 对系统做一个简单的初始化
# 1. 关闭selinux、firewalld
#
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
setenforce 0
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service
# 2. 添加hosts,并修改主机名
# 变量
# 相关IP前3字符
Host_Net_Ip="192.168.100"
cat > /etc/hosts << EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.21 rabbitmq-21
192.168.100.22 rabbitmq-22
192.168.100.23 rabbitmq-23
EOF
# 配置主机名
oneself_ip=`ip a | grep ${Host_Net_Ip} | awk '{print $2}' | awk -F/ '{print $1}'`
grep -w "$oneself_ip" /etc/hosts | awk '{print $2}' | xargs hostnamectl set-hostname && bash
# 3. 修改系统打开的文件数
grep -w "^* soft nofile.*" /etc/security/limits.conf || echo "* soft nofile 61440" >> /etc/security/limits.conf
grep -w "^* hard nofile.*" /etc/security/limits.conf || echo "* hard nofile 61440" >> /etc/security/limits.conf
grep -w "^DefaultLimitNOFILE.*" /etc/systemd/system.conf || echo "DefaultLimitNOFILE=61440" >> /etc/systemd/system.conf
grep -w "^DefaultLimitNPROC.*" /etc/systemd/system.conf || echo "DefaultLimitNPROC=61440" >> /etc/systemd/system.conf
#【不重启生效】
ulimit -Hn 61440 # 【改大后,不可改小,直到重启恢复默认】
ulimit -Sn 61440
# 4. 配置ntp
yum -y install ntp
sed -i s/centos.pool.ntp.org/cn.pool.ntp.org/g /etc/ntp.conf
ntpdate -u 0.cn.pool.ntp.org
systemctl enable ntpd.service
systemctl restart ntpd.service
systemctl status ntpd.service
ntpdate -u 0.cn.pool.ntp.org
2. 安装软件包
# 软件源[epel]、[openstack-版本]都有软件包,只是epel的不是很新
# 这里用[openstack-stein]源内的包,比较新
#
yum -y install centos-release-openstack-stein
yum -y install rabbitmq-server
3. 配置RabbitMQ集群
注意:要构建一个RabbitMQ服务,必须保证所有节点服务器的erlange cookie文件完全相同;
3.1 启动其中一台,并将erlang.cookie的文件复制到其他节点 (其中一台执行即可)
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
# 采用rsync -av 方式去传输的话,无需考虑文件权限问题
# 否则应该授权
rsync -av /var/lib/rabbitmq/.erlang.cookie root@192.168.100.22:/var/lib/rabbitmq/
rsync -av /var/lib/rabbitmq/.erlang.cookie root@192.168.100.23:/var/lib/rabbitmq/
3.2 将剩余俩节点加入集群
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq-21
rabbitmqctl start_app
3.3 查看集群状态
rabbitmqctl cluster_status
3.4 将集群配置为高可用状态
# 为了将所有的队列都能同步到所有节点,必须将RabbitMQ策略配置项ha-mode设置为all
# 其中一台执行即可
rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'
# 验证集群所属的模式
rabbitmqctl list_policies
3.5 查、增、授权、删 用户
# 1. 查用户,显示创建的用户
rabbitmqctl list_users
# 2. 创用户,使用格式:
# rabbitmqctl add_user 用户名 密码
rabbitmqctl add_user openstack admin-123456
# 3. 为用户配置读写权限,使用格式
# rabbitmqctl set_permissions <user> <conf> <write> <read>
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
# 4. 删用户,使用格式:
# rabbitmqctl delete_user 用户名
rabbitmqctl delete_user openstack
4. 扩展
4.1 将节点类型由【disc修改为ram类型】
# 修改类型需要先停止节点
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
# 查看集群状态
rabbitmqctl cluster_status
4.2 开启web管理
# 开启web管理,多台机器开启后,可在web界面查看开启节点的各种信息
rabbitmq-plugins enable rabbitmq_management
# 切记,账号仅仅在一台主机上创建即可
# 添加web管理用户 15672端口
rabbitmqctl add_user admin admin # 禁止使用弱密码
# 添加权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 修改用户角色
rabbitmqctl set_user_tags admin administrator
4.3 从集群拆除节点
# 1. 拆除节点上执行
rabbitmqctl stop_app
# 2. 其他节点上执行
rabbitmqctl forget_cluster_node rabbit@node3
# 3. 拆除节点上执行-停止服务
systemctl stop rabbitmq-server.service
systemctl disable rabbitmq-server.service
# 4. rabbitmq-23 上删除 /var/lib/rabbitmq/mnesia 数据库下所有文件
4.4 查看rabbit可以打开的文件数
ps -aux | grep rabbit | grep beam.smp
cat /proc/1587707/limits | grep "open"

1万+

被折叠的 条评论
为什么被折叠?



