栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

centos6安装(keepalived+mq保障主机层和服务层)

centos6安装(keepalived+mq保障主机层和服务层)

keepalived+rabbitmq保障主机层和服务层

例如:mq主的机器宕机,启动mq备用机,mq无集群,mq服务挂掉,vip也飘移
两台需安装(mq+keepalived+erlang+依赖)

测试环境:

虚拟机 192.168.1.10,192.168.1.11 vip(keepalived的虚拟IP) 192.168.1.100

依赖环境
yum -y install openssl-devel openssl perl nmap
Erlang安装的依赖
yum install unixODBC unixODBC-devel openssl openssl-devel make ncurses-devel  gcc gcc-c++ perl

centos 6.5,otp_src_R16B03.tar.gz,rabbitmq_server-3.2.2.tar.gz,keepalived-1.2.7.tar.gz

keepalived安装
解压、安装
tar -zxvf keepalived-1.2.7.tar.gz -C ./mq
cd  keepalived-1.2.7
./configure
make
make install
版本号查看,是否安装成功
keepalived -v
修改配置文件
cp /usr/local/etc/keepalived/samples/keepalived.conf.vrrp /etc/keepalived/keepalived.conf
或者直接创建也可
vi /etc/keepalived/keepalived.conf

主配置

! Configuration File for keepalived
# 全局配置
global_defs {
   notification_email { #指定keepalived在发生事件时(比如切换)发送通知邮件的邮箱
     acassen@firewall.loc#设置报警邮件地址,可以设置多个,每行一个。 需开启本机的sendmail服务
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc#keepalived在发生诸如切换操作时需要发送email通知地址
   smtp_server 127.0.0.1 #指定发送email的smtp服务器
   smtp_connect_timeout 30 #设置连接smtp server的超时时间
   router_id LVS_DEVEL123  #运行keepalived的机器的一个标识,通常可设为hostname。故障发生时,发邮件时显示在邮件主题中的信息。--当前方案主备最好设置相同
}
cript chk_rabbitmq {# 配置检测脚本
    script "/etc/keepalived/mqcheck.sh" #检测脚本的位置
    interval 2	#每隔2秒执行一次
    weight -5	#权重-5,根据检测脚本的返回值去判断是否要减掉
    fall 2	#检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
    rise 1	#检测1次成功就算成功。但不修改优先级
    }
vrrp_instance VI_1 {#vip漂移主要配置模块
    state MASTER	 #指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器。
    				#注意这里的state指定instance(Initial)的初始状态,就是说在配置好后,这台服务器的初始状态就是
    				#这里指定的,但这里指定的不算,还是得要通过竞选通过优先级来确定。如果这里设置为MASTER,
    				#但如若他的优先级不及另外一台,那么这台在发送通告时,会发送自己的优先级,
    				#另外一台发现优先级不如自己的高,那么他会就回抢占为MASTER
    interface eth0	#监测网络端口,用ifconfig查看
    mcast_src_ip 192.168.1.10	# 发送多播数据包时的源IP地址,这里注意了,这里实际上就是在哪个地址上发送VRRP通告,
    							#这个非常重要,一定要选择稳定的网卡端口来发送,这里相当于heartbeat的心跳端口,
    							#如果没有设置那么就用默认的绑定的网卡的IP,也就是interface指定的IP地址
    virtual_router_id 123	#主备机必须相同
    priority 100	#主备机取不同的优先级,主机要大。
    advert_int 1	#VRRP Multicast广播周期秒数
    authentication {
        auth_type PASS	#VRRP认证方式
        auth_pass 11112 #VRRP口令主备机密码必须相同
    }
    virtual_ipaddress {#VRRP虚拟地址如果有多个VIP,继续换行填写
        192.168.1.100
    }
    track_script {# 引用检测脚本,因为可以配置多个 vrrp 实例,每个实例都可以使用同一个检测脚本
	     chk_rabbitmq
        }
}

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL123
}
cript chk_rabbitmq {
    script "/etc/keepalived/mqcheck.sh"
    interval 2
    weight -5
    fall 2
    rise 1
    }
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    mcast_src_ip 192.168.1.11
    virtual_router_id 123
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 11112
    }
    virtual_ipaddress {
        192.168.1.100
    }
    track_script {
	     chk_rabbitmq
        }
}

vi /etc/keepalived/mqcheck.sh

#!/bin/sh
isopen=`/usr/bin/nmap -sS 127.0.0.1 -p 5672 | grep 5672 | awk '{printf $2}'`
if [ "$isopen"x == "open"x ]; then
    echo ${isopen}
    exit 0
else
    echo ${isopen}
    exit 1
fi

启动 keepalived start

停止 keepalived stop或者kill -9 pid

Erlang安装
编译并安装erlang
cd otp_src_R16B03
./otp_build autoconf #新版安装方式
./configure  --prefix=/opt/erlang #如需指定安装位置,默认安装不跟 --prefix
make
make install
指定安装位置需要配置环境变量 
vi /etc/profile #配置在文件最下面
export  ERL_HOME=/opt/erlang
export PATH=$PATH:$ERL_HOME/bin
即可生效命令
source  /etc/profile
输入命令查看版本号
erl -version
RabbitMQ安装
解压到指定目录下
tar -zxvf rabbitmq_server-3.2.2.tar.gz -C ./mq/
配置环境变量
vi /etc/profile
最后面添加内容 
export  PATH=$PATH:/home/mq/rabbitmq_server-3.2.2/sbin
使配置生效
soucre  /etc/profile
启动后操作常用命令
rabbitmq-plugins enable  rabbitmq_management --启动web管理插件
rabbitmq-server -detached --后台启动服务
rabbitmqctl start_app  --启动服务
rabbitmqctl stop_app --关闭服务

rabbitmqctl add_user zlh zlh  --添加用户,密码
rabbitmqctl set_user_tags zlh administrator  --设置zlh为administrator权限
rabbitmqctl list_users --查看用户列表
rabbitmq查看版本命令 rabbitmqctl status | grep rabbit
防火墙端口开放
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT  //加入防火墙规则
/etc/init.d/iptables save  //保存修改
service iptables restart   //重启防火墙,修改生效
访问web,默认端口15672,默认账号密码 guest/guest
mq详细文档参见 https://www.rabbitmq.com/documentation.html

keepalived的vip漂移测试

重启master虚拟主机,或者关闭mq进程

在备用mq主机上输入命令 ip a 可以看到当前主机上多一个vip的ip

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/758987.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号