配置文件
keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、vrrp_script、vrrp_instance和virtual_server.
1、global_defs区域
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id 192.168.224.206
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
notification_email 故障发生时给谁发邮件通知
notification_email_from 通知邮件从哪个地址发出
smtp_server 通知邮件的smtp地址
smtp_connect_timeout 连接smtp服务器的超时时间
enable_traps开启SNMP(Simple Network Management Protocol)陷阱
router_id 标志本节点的字符串,通常为ip地址,故障发生时邮件会通知到 必须填写
2、vrrp_script区域
用来做健康检查的,当检查失败时会将vrrp_instance的priority减少相应的值,
vrrp_script chk_nginx {
script "/usr/local/keepalived-1.3.4/nginx_check.sh"
interval 2
weight -20
}
script:自己写的监测脚本。
interval 2:每2s监测一次
weight -20:监测失败,则相应的vrrp_instance的优先级会减少20个点
3、vrrp_instance
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
mcast_src_ip 192.168.224.206
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.224.208
}
track_script{
chk_nginx
}
dont_track_primary
}
state:只有BACKUP和MASTER。MASTER为工作状态,BACKUP是备用状态
interface:为网卡接口:可通过ip addr查看自己的网卡接口
virtual_router_id:虚拟路由标志。同组的virtual_router_id应该保持一致。它将决定多播的MAC地址。
priority:设置本节点的优先级,优先级高的为master
advert_int:MASTER与BACKUP同步检查的时间间隔
virtual_ipaddress:这就是传说中的虚拟ip
dont_track_primary:#表示的含义是,一旦接口有问题,则忽略之,否则keepalived的代码中对链路有做检查,发现链路down则进入fault状态,于是将放弃所有浮动ip
nginx检测脚本
[root@server1 ~]# cat /usr/local/sbin/check_ng.sh
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
/etc/init.d/nginx start
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
/etc/init.d/keepalived stop
fi
fi
Keepalived配置文件主要包含global_defs、vrrp_script、vrrp_instance和virtual_server等区域。全局定义区设置邮件通知、SMTP服务器等;vrrp_script用于健康检查,监测脚本失败时降低优先级;vrrp_instance定义状态、接口、虚拟IP和优先级等,track_script结合健康检查脚本确保服务稳定性。配置完成后,Keepalived能实现故障切换和健康监测。
3095

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



