一、keepalived配置文件主要分为三个部分
全局配置
虚拟服务器配置
vrrp实例配置
二、配置详解
1. 全局配置
1.1 配置参数
global_defs {
notification_email {
email
email
}
notification_email_from email
smtp_server host
smtp_connect_timeout num
lvs_id string
}
1.2 参数说明
关键字 | 定义 |
---|---|
notification_email | keepalived发生切换时,需要发送的邮件地址,一行一个 |
notification_email_from | 发件人 |
smtp_server | stmp服务器地址 |
smtp_connect_timeout | smtp超时时间 |
lvs_id string | LVS名字 |
————– | |
2. VRRP实例
2.1 配置参数
vrrp_sync_group string {
group {
string
string
}
notify_master /path_to_script/script_master.sh
(or notify_master “ /path_to_script/script_master.sh <arg_list>”)
notify_backup /path_to_script/script_backup.sh
(or notify_backup “/path_to_script/script_backup.sh <arg_list>”)
notify_fault /path_to_script/script_fault.sh
(or notify_fault “ /path_to_script/script_fault.sh <arg_list>”)
}
vrrp_instance string {
state MASTER|BACKUP
interface string
mcast_src_ip @IP
lvs_sync_daemon_interface string
virtual_router_id num
priority num
advert_int num
smtp_alert
authentication {
auth_type PASS|AH
auth_pass string
}
virtual_ipaddress { # Block limited to 20 IP addresses
@IP
@IP
@IP
}
virtual_ipaddress_excluded { # Unlimited IP addresses
@IP
@IP
@IP
}
notify_master /path_to_script/script_master.sh
(or notify_master “ /path_to_script/script_master.sh <arg_list>”)
notify_backup /path_to_script/script_backup.sh
(or notify_backup “ /path_to_script/script_backup.sh <arg_list>”)
notify_fault /path_to_script/script_fault.sh
(or notify_fault “ /path_to_script/script_fault.sh <arg_list>”)
}
2.2 参数说明
notify_master /path_to_script/script_master.sh
notify_backup /path_to_script/script_backup.sh
notify_fault /path_to_script/script_fault.sh
同全局配置的一样
关键字 | 定义 |
---|---|
标识VRRP同步实例组用来定义vrrp_intance组,实现vrrp_intance组内成功动作一致。 | |
vrrp_sync_group | 两个vrrp_instance同属于一个vrrp_rsync_group,那么其中一个vrrp_instance发生故障切换时, |
另一个vrrp_instance也会跟着切换(即使这个instance没有发生故障)。 | |
group | 括号里面的为vrrp_intance实例名 |
notify_master | 切换到master时,执行的脚本 |
notify_backup | 切换到backup时,执行的脚本 |
notify_fault | 故障时执行的脚本 |
vrrp_instance | 用于标识一个VRRP实例定义块 |
state | 指定实例是master,还是backup。 |
interface | 指定实例使用的网卡 |
mcast_src_ip | 指定vrrp广播的发送地址,默认使用primary ip |
lvs_sync_daemon_interface | 不明白这个参数做什么的,引用官方解释specify the network interface |
lvs_sync_daemon_interface | for the LVS sync_daemon to run on |
virtual_router_id | 虚拟路由器ID,vrrp路由器id,用来标识此数据包报告状态的虚拟路由器。 |
priority | 实例优先级,优先级高的会竞选为master |
advert_int | vrrp广播包时间,默认为1秒 |
smtp_alert | 激活master状态转换的通知 |
authentication | 设置认证 |
auth_type | 认证方式 |
auth_pass | 认证密码 |
virtual_ipaddress | 虚拟路由器IP地址,一行一个 |
virtual_ipaddress_excluded | 发送vrrp协议包里不包含的IP地址,为了减少回应VRRP包的个数。 |
virtual_ipaddress_excluded | 在网卡上绑定的IP地址比较多的时候使用。 |
————— | |
3. 虚拟服务器配置
3.1 配置参数
virtual_server (@IP PORT)|(fwmark num) {
delay_loop num
lb_algo rr|wrr|lc|wlc|sh|dh|lblc
lb_kind NAT|DR|TUN
(nat_mask @IP)
persistence_timeout num
persistence_granularity @IP
virtualhost string
protocol TCP|UDP
sorry_server @IP PORT
real_server @IP PORT {
weight num
TCP_CHECK {
connect_port num
connect_timeout num
}
}
real_server @IP PORT {
weight num
MISC_CHECK {
misc_path /path_to_script/script.sh
(or misc_path “ /path_to_script/script.sh <arg_list>”)
}
}
}
real_server @IP PORT {
weight num
HTTP_GET|SSL_GET {
url { # You can add multiple url block
path alphanum
digest alphanum
}
connect_port num
connect_timeout num
retry num
delay_before_retry num
}
}
3.2 参数详解
关键字 | 定义 |
---|---|
virtual_server | 虚拟服务器定义块 |
delay_loop | 健康检测间隔时间,单位为秒 |
lb_algo | lvs调度算法 |
lb_kind | lvs转发规则 |
persistence_timeout | 永久链接的超时时间 |
persistence_granularity | 会话保持粒度,ipvsadm中的-M参数,默认是0xffffffff,即根据每个客户端做会话保持。 |
virtualhost | 暂不清楚功能,引用官方内容:specify a HTTP virtualhost to use for HTTP |
protocol | 指定协议类型 |
sorry_server | 当所有real server宕掉时,sorry server顶替。 |
real_server | 真实服务器 |
weight | 权重,默认为1,0为失效 |
TCP_CHECK | 使用TCP连接检查实际服务器可用性 |
connect_port | 在指定的TCP端口上连接远程服务器 |
connect_timeout | 连接超时时间,单位为秒 |
MISC_CHECK | 使用用户定义的脚本检查真实的服务器可用性 |
misc_path | 脚本路径,需要已绝对路径运行 |
HTTP_GET | 使用HTTP GET请求检查真实的服务器可用性 |
SSL_GET | 使用SSL GET请求检查真实的服务器可用性 |
url | 标识一个url定义块 |
path | 指定url路径 |
digest | 指定特定url路径的摘要 |
retry | 最大重试次数 |
delay_before_retry | 两次检测间隔的时间 |
三、参考资料
1. 官方文档
http://www.keepalived.org/doc/configuration_synopsis.html
2. 参考博客
https://blog.csdn.net/jibcy/article/details/7826158
https://my.oschina.net/ydsakyclguozi/blog/515200
http://outofmemory.cn/wiki/keepalived-configuration
http://www.bubuko.com/infodetail-677344.html