负载均衡
KEEPALIVED安装与使用
keepalived配置说明
keepalived检测方式
keepalived LVS配置
LVS
LVS-NAT集群的搭建
LVS-DR集群的搭建
KEEPALIVED+LVS
HAproxy
HAProxy配置说明
HAproxy算法
HAProxy管理页
HAProxy保持
HAProxyACL规则
NGINX
NGINX负载均衡
NGINX负载示例二
负载转发路径问题
缓冲缓存参数详解
限制代理ip方法
负载参数详解
nginx_upstream_check_module
正向代理(HTTP)
本文档使用MrDoc发布
返回首页
-
+
keepalived配置说明
2021年8月25日 14:13
admin
#修改配置 vim /etc/keepalived/keepalived.conf --- #全局配置 global_defs { notification_email { wja84281865@163.com wutianhao@163.com #当服务器出现故障进行主从切换时会发邮件给这列表中的人,开启此功能需要本机开启Sendmail功能。 } notification_email_from root@localhost #邮件发送者 smtp_server 192.168.31.88 #邮件服务器IP地址 smtp_connect_timeout 30 #连接超时时间 router_id MySQL1 #设备标识 vrrp_skip_check_adv_addr #默认是不跳过检查。检查收到的VRRP通告中的所有地址可能会比较耗时,设置此命令的意思是,如果通告与接收的上一个通告来自相同的master路由器,则不执行检查(跳过检查)。 vrrp_garp_interval 0 vrrp_gna_interval 0 #vrrp_strict #严格遵守VRRP协议。下列情况将会阻止启动Keepalived:1. 没有VIP地址。2. 单播邻居。3. 在VRRP版本2中有IPv6地址。一般不会开启 } --- #VRRPD配置 ####VRRPD的配置包括如下子块: 1. vrrp_script 2. vrrp_sync_group 3. garp_group 4. vrrp_instance ####vrrp_script配置 >####作用:添加一个周期性执行的脚本。脚本的退出状态码会被调用它的所有的VRRP Instance记录。 >####注意:至少有一个VRRP实例调用它并且优先级不能为0.优先级范围是1-254. vrrp_script <SCRIPT_NAME> { ... } 选项说明: scrip "/path/to/somewhere":指定要执行的脚本的路径。 interval <INTEGER>:指定脚本执行的间隔。单位是秒。默认为1s。 timeout <INTEGER>:指定在多少秒后,脚本被认为执行失败。 weight <-254 --- 254>:调整优先级。默认为2. rise <INTEGER>:执行成功多少次才认为是成功。 fall <INTEGER>:执行失败多少次才认为失败。 user <USERNAME> [GROUPNAME]:运行脚本的用户和组。 init_fail:假设脚本初始状态是失败状态。 解释: weight: 1. 如果脚本执行成功(退出状态码为0),weight大于0,则priority增加。 2. 如果脚本执行失败(退出状态码为非0),weight小于0,则priority减少。 3. 其他情况下,priority不变。 ####vrrp_sync_group配置 >####作用:将所有相关的VRRP实例定义在一起,作为一个VRRP Group,如果组内的任意一个实例出现问题,都可以实现Failover。 vrrp_sync_group VG_1 { group { inside_network # vrrp instance name outside_network # vrrp instance name ... } ... } 说明: 如果username和groupname没有指定,则以默认的script_user所指定的用户和组。 1. notify_master /path/to_master.sh [username [groupname]] 作用:当成为MASTER时,以指定的用户和组执行脚本。 2. notify_backup /path/to_backup.sh [username [groupname]] 作用:当成为BACKUP时,以指定的用户和组执行脚本。 3. notify_fault "/path/fault.sh VG_1" [username [groupname]] 作用:当该同步组Fault时,以指定的用户和组执行脚本。 4. notify /path/notify.sh [username [groupname]] 作用:在任何状态都会以指定的用户和组执行脚本。 说明:该脚本会在notify_*脚本后执行。 notify可以使用3个参数,如下: $1:可以是GROUP或INTANCE,表明后面是组还是实例。 $2:组名或实例名。 $3:转换后的目标状态。有:MASTER、BACKUP、FAULT。 5. smtp_alert:当状态发生改变时,发送邮件。 6. global_tracking:所有的VRRP实例共享相同的tracking配置。 ##注意:脚本文件要加上x权限,同时指令最好写绝对路径。 ####vrrp_instance配置 state MASTER|BACKUP:指定该keepalived节点的初始状态。 interface eth0:vrrp实例绑定的接口,用于发送VRRP包。 #use_vmac [<VMAC_INTERFACE>]:在指定的接口产生一个子接口,如vrrp.51,该接口的MAC地址为组播地址,通过该接口向外发送和接收VRRP包。 #网络监控接口(可不填) track_interface { eth0 eth1 weight <-254-254> ... }:如果track的接口有任何一个出现故障,都会进入FAULT状态。 #检测方式 track_script { <SCRIPT_NAME> <SCRIPT_NAME> weight <-254-254> }:添加一个track脚本(vrrp_script配置的脚本。) #mcast_src_ip <IPADDR>:指定发送组播数据包的源IP地址。默认是绑定VRRP实例的接口的主IP地址。 #unicast_src_ip <IPADDR>:指定发送单薄数据包的源IP地址。默认是绑定VRRP实例的接口的主IP地址。 #version 2|3:指定该实例所使用的VRRP版本。 virtual_router_id 100:指定VRRP实例ID,范围是0-255. priority 100:指定优先级,优先级高的将成为MASTER。 advert_int 2:指定发送VRRP通告的间隔。单位是秒。 #验证 authentication { auth_type PASS|AH:指定认证方式。PASS简单密码认证(推荐),AH:IPSEC认证(不推荐)。 auth_pass 1234:指定认证所使用的密码。最多8位。 } virtual_ipaddress { 192.168.200.19 192.168.200.17/24 dev eth1 192.168.200.18/24 dev eth2 }:指定VIP地址。 nopreempt:设置为不抢占。默认是抢占的,当高优先级的机器恢复后,会抢占低优先级的机器成为MASTER,而不抢占,则允许低优先级的机器继续成为MASTER,即使高优先级的机器已经上线。如果要使用这个功能,则初始化状态必须为BACKUP。 preempt_delay 1 :设置抢占延迟。单位是秒,范围是0---1000,默认是0.发现低优先级的MASTER后多少秒开始抢占。 #状态变更执行脚本: notify_master "/path/to_master.sh arg1 arg2" #当keepalived进入master状态时要执行的脚本,支持参数传入 notify_backup "/path/to_backup.sh arg1 arg2" #当keepalived进入backup状态时要执行的脚本,支持参数传入 notify_fault "/path/to_fault.sh arg1 arg2" #当keepalived进入fault状态时要执行的脚本,支持参数传入 notify_stop "/path/to_fault.sh arg1 arg2" #当keepalived进入stop状态时要执行的脚本,支持参数传入 notify "/path/to_change.sh arg1 arg2" #当keepalived状态发生变化时要执行的脚本,支持参数传入 smtp_alert #当状态发生改变时,发送邮件。 --- ####示例: vrrp_script check_nginx { #监控脚本 script "/etc/keepalived/nginx_check.sh" interval 2 } vrrp_instance VI_1 { state BACKUP #角色 interface ens33 #绑定网卡 virtual_router_id 60 #主从此配置一定要相同 priority 100 #优先级,越高为主 advert_int 1 nopreempt #非抢占模式 authentication { auth_type PASS auth_pass 1qaz@WSX } track_script { check_nginx #监控脚本 } virtual_ipaddress { 192.168.31.240 #浮动IP(VIP) } }
分享到: