1.RocketMQ集群模式
主机配置示例:
IP | 角色 | 架构模式 | 对应配置文件 |
1.1.1.1 | nameserver1 | master | broker-n0.conf |
2.2.2.2 | nameserver2 | salve1 | broker-n1.conf |
3.3.3.3 | nameserver3 | salve2 | broker-n2.conf |
1.1.安装rocketmq
在服务器上安装rocketmq服务器:
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行以下命令,其中-n有0、1、2三个值,当在主节点部署时-n后跟0,在备1节点部署时-n后跟1,在备2节点部署时-n后跟2,-i后跟三节点ip:
# cd /mnt/ # sh KylinManager/scripts/rocketmq.sh -a 2 -n 0 -i "172.30.23.1 172.30.23.2 172.30.23.3" |
当三台机器均执行完脚本后,依次启动mqbroker服务
# systemctl start mqbroker.service # systemctl status mqbroker //查看服务是否正常启动 |
如需卸载rockermq请执行:
#systemctl stop mqbroker #systemctl stop mqnamesrv #yum remove rocketmq -y |
2.ismp-nacos高可用
nacos高可用部署需要3台服务器,需要开放8848、7848、9848、9849端口的对外访问权限,以下步骤在3台服务器上依次执行。
2.1.安装ismp-nacos
在服务器上安装和配置ismp-nacos:
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行下面命令,psql_ip为数据库vip,-i后跟三节点ip:
# cd /mnt # sh KylinManager/scripts/ismp-nacos.sh -a 2 -p psql_ip -i "172.30.23.1 172.30.23.2 172.30.23.3" |
如需卸载ismp-nacos请执行:
#systemctl stop ismp-nacos-cluster #yum remove ismp-nacos -y |
2.2.检查服务状态
然后使用浏览器访问http://localhost:8848/nacos,将localhost修改为实际部署nacos的一个IP地址。Nacos平台账号密码均为nacos。
在“集群管理-节点列表”中查看3台服务的状态均为“UP”则启动成功。
进入【配置管理】-【配置列表】,依次修改文件中的参数
gateway中所有的127.0.0.1换成实际部署的redis(2)、rocketmq(1)的ip地址
ismp-job-default.properties中的localhost换成数据库IP地址
ismp-auth-default.properties中的127.0.0.1、localhost换成redis(2)、postgresql(2)、ismp-job(1)的ip
ismp-authentication-service-default.properties中的127.0.0.1、localhost换成redis(1)、psql(1)、ismp-job(1)的ip
ismp-centos中的127.0.0.1、localhost换成redis(1)、job(1)、mq(1)、web(1)、psql(2)的ip
ismp-manager-default.properties中的127.0.0.1、localhost换成redis(2)、job(1)、mq(1)、web(1)、psql(2)的ip
3.前端高可用
3.1.配置主备免密传输文件
主机A配置免密:
# ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q # ssh-copy-id -i /root/.ssh/id_rsa.pub root@备机B_ip |
同理在备机B也进行相同的操作配置免密,并将文件拷贝到主机A。
# ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q # ssh-copy-id -i /root/.ssh/id_rsa.pub root@主机A_ip |
3.2.安装前端环境
将镜像挂载到一个目录文件下(以/mnt为例),
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行以下命令:
# cd /mnt # mkdir -p /opt/kylin-manager && cp -ra KylinManager/files/web_ip.conf /opt/kylin-manager/ //创建目录拷贝配置文件,内容如下,修改ip1,ip2,ip3,最后三行ip之间要用逗号隔开 |
确认修改无误后再运行下面命令:
# sh KylinManager/scripts/web.sh -a 2 # systemctl status nginx |
使用浏览器访问http://localhost:8848/nacos,将localhost修改为实际部署nginx的vip地址,Nacos平台账号密码均为nacos。可以访问则前端与nacos通信正常。
配置nfs共享目录:
# echo "/opt/kylin-manager/html/kylin-manager/ 10.1.110.99(rw,sync,no_root_squash) 10.1.110.97(rw,sync,no_root_squash) 10.1.110.98(rw,sync,no_root_squash)" > /etc/exports # exportfs -r |
注记:当有多个nfs客户端时上述命令中的IP地址要换成实际的manager、authentication、centos地址。
重要:如果需要使用centos迁移模块功能,请注释掉/etc/nginx/nginx.conf中的56、57、58行内容,然后重启nginx。
# systemctl restart nginx |
3.3.修改主备keepalived配置文件
# vim /etc/keepalived/keepalived.conf(修改下面标红的地方) |
! Configuration File for keepalived global_defs { router_id master } vrrp_script chk_nfs { script "/opt/kylin-server/scripts/nfs_check.sh" #监控脚本 interval 2 weight -20 #keepalived部署了两台,所以设为20,如果三台就设为30 } vrrp_instance VI_1 { state BACKUP #两台主机都设为backup非抢占模式 interface ens3 #网卡名写自己的,不要照抄 virtual_router_id 60 priority 100 #master设为100,backup设为90,反正要比100小 unicast_src_ip 1.1.1.1 #本机实际ip unicast_peer { 2.2.2.2 #对端实际ip } advert_int 1 nopreempt #设置为非抢占模式必须要该参数 authentication { auth_type PASS auth_pass ismp!234 } track_script { chk_nfs } virtual_ipaddress { 10.1.110.101 #虚拟ip } } |
Slave节点的keepalived.conf配置只需将priority参数项修改为90,其他配置和master节点一样。两节点均修改完成后启动keepalived服务。
# systemctl start keepalived # systemctl status keepalived |
3.4.启动脚本(主备传输文件)
# nohup sh /opt/kylin-manager/scripts/vip_monitor.sh & |
设置vip_monitor.sh脚本的开机自启动
# chmod +x /etc/rc.d/rc.local # echo "nohup sh /opt/kylin-manager/scripts/vip_monitor.sh & " >> /etc/rc.d/rc.local |
4.ismp-gateway高可用部署(2台)
4.1.部署ismp-gateway服务
在服务器上安装和配置ismp-gateway:
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行以下命令,其中web_ip为前端vip:
# cd /mnt # sh KylinManager/scripts/ismp-gateway.sh -a 2 -w web_vip #systemctl status ismp-gateway |
如需卸载请执行:
#systemctl stop ismp-gateway #yum remove ismp-gateway -y |
4.2.检查服务状态
登录Nacos界面,在“服务管理-服务列表”中查看服务状态,查找服务名为gateway的服务,其健康实例数与实际启动的服务数量一致即可。点击详情可以查看各节点的健康状态。
5.ismp-job高可用部署
5.1.部署多个ismp-job服务(2台)
在服务器上安装和配置ismp-job:
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行以下命令,其中web_ip为前端vip:
# cd /mnt # sh KylinManager/scripts/ismp-job.sh -a 2 -w web_ip |
如需卸载请执行:
#systemctl stop ismp-job #yum remove ismp-job -y |
5.2.检查服务状态
登录Nacos界面,在“服务管理-服务列表”中查看服务状态,查找服务名为ismp-job的服务,其健康实例数与实际启动的服务数量一致即可。点击详情可以查看各节点的健康状态。
6.ismp-auth高可用部署(2台)
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行以下命令,其中web_ip为前端vip:
# cd /mnt # sh KylinManager/scripts/ismp-auth.sh -a 2 -w web_ip |
如需卸载请执行:
# systemctl stop ismp-auth # yum remove ismp-auth -y |
7.ismp-authentication高可用部署(1台)
将镜像挂载到一个目录文件下(以/mnt为例),
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行以下命令,其中web_ip为前端vip。
# cd /mnt # sh KylinManager/scripts/ismp-authentication.sh -a 2 -w web_ip |
如需卸载请执行:
# systemctl stop ismp-authentication # yum remove ismp-authentication -y |
8.ismp-monitor高可用部署(2台)
将镜像挂载到一个目录文件下(以/mnt为例),
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,其中psql_ip、web_ip分别为数据库vip、前端的vip。
# cd /mnt # sh KylinManager/scripts/ismp-monitor.sh -a 2 -p psql_ip -w web_ip |
9.ismp-CentOS高可用部署(2台)
将镜像挂载到一个目录文件下(以/mnt为例),
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名;
执行以下命令,其中web_ip为前端vip:
[root@server1 ~]# cd /mnt [root@server1 mnt]# sh KylinManager/scripts/ismp-centos.sh -a 2 -w web_ip |
10.ismp-manager高可用部署(2台)
将镜像挂载到一个目录文件下(以/mnt为例),
# mount -o loop Kylin-Easyclick-V2.1.iso /mnt |
注记:此处iso名为代称,部署时需替换成实际iso名,执行以下命令,其中web_ip为前端vip。
# cd /mnt # sh KylinManager/scripts/manager.sh -a 2 -w web_ip # df -h //查看是否挂载成功,如果显示未挂载,可手动挂载: # mount -t nfs 3.3.3.3:/opt/kylin-manager/html /opt/kylin-manager/html/ |
注记:3.3.3.3.要替换成第10章中实际的前端服务器vip。
11.漏洞解决方案
11.1.目标主机showmount -e信息泄露(CVE-1999-0554)
解决方法:
在nfs服务端(所有前端)机器上开启防火墙,只对nfs客户端(所有后端)主机开放。
在前端机器上操作:
# systemctl start firewalld # firewall-cmd --new-zone=mountd --permanent #firewall-cmd --zone=mountd --add-service=mountd --permanent # firewall-cmd --zone=mountd --add-source=10.1.110.97 --permanent # firewall-cmd --reload |
注记:当开启防火墙时,该机器所跑的服务对应的1.4中涉及到的端口需要开放。