RabbitMQ安装与配置
1.1 操作系统选择与安装1.1.1 环境信息
序号
IP地址
主机名
操作系统
备注
1
192.168.0.65
rabbitmq_2_65
Centos7.6 64位
磁盘节点
2
192.168.0.66
rabbitmq_2_66
Centos7.6 64位
内存节点
3
192.168.0.67
rabbitmq_2_67
Centos7.6 64位
内存节点1.1.2 操作系统配置与安装
CPU:8C;
内存:64GB;
磁盘: 100GB
操作系统安装,略。1.1.3 操作系统最优配置
1. 修改资源限制参数
vi /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* soft stack 65535
* hard stack 65535
#ulimit -a
echo "* - nproc 65535" > /etc/security/limits.d/90-nproc.conf
2. 关闭virbr0网卡工具
systemctl disable libvirtd
3. 关闭SELinux
vi /etc/selinux/config
将SELinux=enforcing改为 SELinux=disabled
4. 关闭防火墙systemctl stop firewalld.service &&systemctl disable firewalld.service
5. 安装NTP服务
yum install ntp –y
systemctl disable chronyd #禁用chrony,否则开机启动失败
配置 vi /etc/ntp.conf
echo " server 192.168.0.253" > /etc/ntp.conf
echo "restrict 192.168.0.253 nomodify notrap noquery" >> /etc/ntp.conf
systemctl enable ntpd && systemctl start ntpd
6. 安装NFS服务
yum install nfs-utils -y
systemctl enable nfs1.1.4 操作系统安全配置
1. 启动core dump设置
core dump表示当程序异常终止或崩溃时,将进程此时的内存中的内容拷贝到磁盘文件中存储。
vi /etc/security/limits.conf,开启core dump。
找到【* soft core 0】行,将其修改为如下内容:
如设置成【* soft core 1048576】,即core dump文件大小是1G 。
2. history历史命令条数设置
减少root用户输入命令的历史记录长度,默认值为1000,
vi /etc/profile HISTSIZE= 的值不大于100。
3. 控制用户登录会话
设置登录超时控制用户登录会话时间。
vi /etc/profile 按以下要求编辑设置:
TMOUT=600
4. 口令策略
对口令策略进行安全设置,不允许存在简单密码,密码设置符合策略,如长度至少为8位,不存在空口令帐号。
修改vi /etc/login.defs,
PASS_MAX_DAYS 90 #密码最长使用天数90天
PASS_MIN_DAYS 1 #密码最短使用天数
PASS_WARN_AGE 28 #密码到期提前提醒天数
PASS_MIN_LEN 8 #密码最小长度为8。
5. 密码复杂度
对密码复杂度策略进行配置,密码应包含至少两种组合,增加密码重复使用限制。
vi /etc/pam.d/system-auth
password requisite pam_cracklib.so dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=81.2 RabbitMQ普通集群配置1.2.1 配置hosts文件
vi /etc/hosts //其他两台相同
192.168.0.65 rabbitmq-2-65
192.168.0.66 rabbitmq-2-66
192.168.0.67 rabbitmq-2-671.2.2 三个节点安装依赖包yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel1.2.3 源码安装三个节点安装erlang环境
#下载包:
cd /opt/
wget http://erlang.org/download/otp_src_23.2.tar.gz
#解压:tar -zxvf otp_src_23.2.tar.gzcd otp_src_23.2./configure --prefix=/usr/local/erlang --without-javac
make && make install
#设置环境变量:
vi /etc/profile
export PATH=$PATH:/usr/local/erlang/bin
1.2.4 三个节点配置安装RabbitMQ
#下载文件 :
cd /opt
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.22/rabbitmq-server-generic-unix-3.8.22.tar.xz
#解压:
tar -xvf rabbitmq-server-generic-unix-3.8.22.tar
mv rabbitmq_server-3.8.22 /usr/local/
cd /usr/local
ln -s rabbitmq_server-3.8.22 rabbitmq./rabbitmq-plugins enable rabbitmq_management
./rabbitmq-server &
#设置环境变量:
vi /etc/profile
export PATH=$PATH:/usr/local/erlang/bin:/usr/local/rabbitmq/sbin
测试访问:
http://192.168.0.65:15672
1.2.5 拷贝erlang.cookie
RabbitMQ的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群景象。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限。所以必须保证各节点cookie一致,不然节点之间就无法通信。
[root@mq01 ~]# cat /var/lib/rabbitmq/.erlang.cookie
XAHPZVPYUQDWWJIOHUPQ
用scp的方式将01节点的.erlang.cookie的值复制到其他两个节点中。
#如果通过二进制安装在/root/.erlang.cookie,通过yum方式安装默认在以下路径
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.0.66:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.0.67:/var/lib/rabbitmq/.erlang.cookie
1.2.6 查看三个节点并添加管理服务,启动RabbitMQ
RabbitMQ提供了一个非常友好的图形化监控页面插件(rabbitmq_management),让我们可以一目了然看见Rabbit的状态或集群状态。
rabbitmq-plugins list //查看插件安装情况
rabbitmq-plugins enable rabbitmq_management //启用rabbitmq_management服务
rabbitmq-server start &
1.2.7 查看监听端口(插件监控的端口是15672)
netstat –ntap | grep 156721.2.8 将mq02、mq03作为内存节点加入mq01节点集群中
在mq02、mq03执行如下命令:
rabbitmqctl stop_app //停掉rabbit应用
rabbitmqctl join_cluster --ram rabbit@mq01 //加入到磁盘节点,--ram表示以内存方式
rabbitmqctl start_app //启动rabbit应用
1.2.9 查看集群状态
rabbitmqctl cluster_status
1.2.10 镜像队列配置
在主节点增加镜像队列配置
rabbitmqctl set_policy ha-all "^" "{"ha-mode":"all"}"1.2.11 登录rabbitmq web管理控制台,创建新的队列
打开浏览器输入http://192.168.0.65:15672, 输入默认的Username:guest,输入默认的Password:guest ,默认不允许其他主机访问,需创建账号授权后登录。
#创建账号:
rabbitmqctl add_user 用户 密码
#设置用户角色
rabbitmqctl set_user_tags 用户 administrator
#设置用户权限rabbitmqctl set_permissions –p "/" 用户 ".*" ".*" ".*"
访问http://192.168.0.65:15672,
登录后可以看到各节点状态