18.1集群介绍
18.2 keepalived介绍
18.3 18.4 18.5 用keepalived配置高可用集群
这里是用ngixn作为高可用的演示对象,因为有生产中很多企业用nginx作为负载均衡器使用
编辑130上keepalived配置文件,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf获取
首先清空原来的配置文件内容
再增加内容
global_defs {
notification_email { (当发生问题时发送到那一个邮箱)br/>}
[email protected]
}
notification_email_from [email protected] (由那一个邮箱发送)
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx { (这个模块是检测一个服务是否正常,间隔是3秒钟)
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 { (这里是由那一个网卡来发)
state MASTER
interface ens33
virtual_router_id 51 虚拟路同的ID
priority 100 主从的权重比
advert_int 1
authentication {
auth_type PASS 认证的类型
auth_pass aminglinux>com 它的密码
}
virtual_ipaddress { 这里是定义VIP,是当主坏了,从替换后通过这个IP去访问,这个IP是主从绑定都是一样,无论是主从最终都是解析到这个IP)
192.168.137.100
}
track_script {
chk_nginx 加载服务
}
}
130编辑监控脚本,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng.sh获取
配置文件的位置上面已定义
vim /usr/local/sbin/check_ng.sh
给脚本755权限
chwon 755 /usr/local/sbin/check_ng.sh
systemctl start keepalived 130启动服务
nignx服务也没有问题
这时候停一下nginx服务,查看是否会自动加载,如果开启了防火墙是无法自动加载的,要先停掉防火墙
查看ip
配置从要先检查一下主有没有防火墙,开启防火墙会导致实际让失败,从也要关闭降降火墙
在从上也要编辑配置文件
vi /etc/keepalived/keepalived.conf
内容:
global_defs {
notification_email {br/>[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.188.100
}
track_script {
chk_nginx
}
}
vi /usr/local/sbin/checkng.sh
#时间变量,用于记录日志
d=`date --date today +%Y%m%d%H:%M:%S<br/>#计算nginx进程数量<br/>n=
ps -C nginx --no-heading|wc -l<br/>#如果进程为0,则启动nginx,并且再次检测nginx进程数量,<br/>#如果还为0,说明nginx无法启动,此时需要关闭keepalived<br/>if [ $n -eq "0" ]; then<br/>systemctl start nginx<br/>n2=
ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
给脚本755权限
chmod 755 /usr/local/sbin/check_ng.sh
在主浏览器输入192.168.137.129,显示是默认的主页
如果要修改内容,需要修改nginx默认的主页内容
从也可以防问它的默认IP192.168.1.130
默认页的位置
cat /usr/share/nginx/html/index.html
输入192.168.137.100,它防问到的IP是主上的默认页
先把vrrp出去的包都封掉
先停掉主上的keepalived服务
查看从上的ip绑定,这时候绑定的192.168.137.100
这时候浏览器上防问一下192.168.137.100发生了改变,这说明了vip到了从机上
主上重启keepalived服务
systemctl start keepalived
刷新一下浏览器就跳转到主的默认页了
如要有多台从服务器需要调下权重,数值越高的当主出现故障后就由这台服务器当主
如果给mysql做主从的时候一定要保持两边的数据一致,要不然会出问题的
18.1集群介绍18.2keepalived介绍18.3-5用keepalived配置高可用集群
原文地址:http://blog.51cto.com/13450039/2096264