官方配置文档:https://www.keepalived.org/doc/configuration_synopsis.html
Keepalived 共分三块配置,globel,virtual_server 和 vrrp。
global_defs {
notification_email {
email
email
}
notification_email_from email
smtp_server host
smtp_connect_timeout num
lvs_id string
}
全局配置以 global_defs
开头
notification_email
将接受电子邮件的的地址列表notification_email_from
从哪个账户发出的邮件smtp_server
邮件服务器地址smtp_connection_timeout
邮件服务器连接超时时间lvs_id
指定LVS导向器的名称
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
}
}
可以有多个 virtual_server
块。
fwmark
指定 virtual server 是 FWMARK 类型的。delay_loop
指定两次检查之间的间隔,以秒为单位lb_algo
LVS 调度算法lb_kind
LVS集群方式nat_mask
nat子网掩码persistence_timeout
会话保持时间(秒)persistence_granularity
为持久连接指定掩码virtualhost
指定用于HTTP | SSL_GET的HTTP虚拟主机protocol
指定协议类型,TCP 或 UDPsorry_server
如果所有真实服务器都已关闭,则将服务器添加到池中real_server
真是服务器,可以指定多个 real_server 块。weight
指定实际服务器权重以进行负载平衡决策TCP_CHECK
使用TCP连接检查实际服务器的可用性MISC_CHECK
使用用户定义的脚本检查实际服务器的可用性misc_path
脚本的完整路径HTTP_GET
使用HTTP GET请求检查实际服务器的可用性SSL_GET
使用SSL GET请求检查实际服务器的可用性url
定义 URLpath
指定 URL 路径digest
指定特定网址路径的摘要connect_port
TCP 连接的端口connect_timeout
TCP 连接超时 时间retry
重试的最大次数delay_before_retry
重试之前的延迟。
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>”)
}
vrrp_instance
VRRP 的实例state
指定使用中的实例状态Interface
网卡,比如 eth0mcast_src_ip
指定VRRP的src IP地址值advert IP标头lvs_sync_daemon_inteface
指定要在其上运行LVS sync_daemon的网络接口virtual_router_id
指定实例所属的VRRP路由器IDpriority
在VRRP路由器中指定实例优先级advert
指定广告间隔(以秒为单位)(设置为1)smtp_alert
激活SMTP通知以进行主状态转换authentication
识别VRRP认证定义块auth_type
认证类型,PASS 或 AHauth_pass
指定要使用的密码字符串virtual_ipaddress
指定 VIPvirtual_ipaddress_excluded
排除在外的 VIPnotify_master
指定在过渡到主状态期间要执行的shell脚本notify_backup
指定在过渡到备份状态期间要执行的Shell脚本notify_fault
指定在过渡到故障状态期间要执行的shell脚本vrrp_sync_group
标识VRRP同步实例组