#################################
Keepalived configuration synopsis
#################################
The Keepalived configuration file uses the following synopsis (configuration keywords are Bold/Italic):
Global Definitions Synopsis
***************************
.. parsed-literal::
**global_defs** {
**notification_email** {
email
email
}
**notification_email_from** email
**smtp_server** host
**smtp_connect_timeout** num
**router_id** string
}
======================== ====================================================== =========
Keyword Definition Type
======================== ====================================================== =========
global_defs identify the global def configuration block
notification_email email accounts that will receive the notification mail List
notification_email_from email to use when processing “MAIL FROM:” SMTP command List
smtp_server remote SMTP server to use for sending mail notifications alphanum
smtp_connect_timeout specify a timeout for SMTP stream processing numerical
router_id specify the name of the LVS director string
======================== ====================================================== =========
Email type: Is a string using charset as specified into the SMTP RFC eg: “user@domain.com”
Virtual Server Definitions Synopsis
***********************************
.. parsed-literal::
**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
}
}
======================= =========================================================== =========
Keyword Definition Type
======================= =========================================================== =========
virtual_server identify a virtual server definition block
fwmark specify that virtual server is a FWMARK
delay_loop specify in seconds the interval between checks numerical
lb_algo select a specific scheduler (rr|wrr|lc|wlc...) string
lb_kind select a specific forwarding method (NAT|DR|TUN) string
persistence_timeout specify a timeout value for persistent connections numerical
persistence_granularity specify a granularity mask for persistent connections
virtualhost specify a HTTP virtualhost to use for HTTP|SSL_GET alphanum
protocol specify the protocol kind (TCP|UDP) numerical
sorry_server server to be added to the pool if all real servers are down
real_server specify a real server member
weight specify the real server weight for load balancing decisions numerical
TCP_CHECK check real server availability using TCP connect
MISC_CHECK check real server availability using user defined script
misc_path identify the script to run with full path path
HTTP_GET check real server availability using HTTP GET request
SSL_GET check real server availability using SSL GET request
url identify a url definition block
path specify the url path alphanum
digest specify the digest for a specific url path alphanum
connect_port connect remote server on specified TCP port numerical
connect_timeout connect remote server using timeout numerical
retry maximum number of retries numerical
delay_before_retry delay between two successive retries numerical
======================= =========================================================== =========
.. note::
The "nat_mask" keyword is obsolete if you are not using LVS with Linux kernel 2.2 series. This flag give you the ability to define the reverse NAT granularity.
.. note::
Currently, Healthcheck framework, only implements TCP protocol for service monitoring.
.. note::
Type "path" refers to the full path of the script being called. Note that for scripts requiring arguments the path and arguments must be enclosed in double quotes (").
VRRP Instance Definitions Synopsis
**********************************
.. parsed-literal::
**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>”)
}
========================== ======================================================================= =========
Keyword Definition Type
========================== ======================================================================= =========
vrrp_instance identify a VRRP instance definition block
state specify the instance state in standard use
Interface specify the network interface for the instance to run on string
mcast_src_ip specify the src IP address value for VRRP adverts IP header
lvs_sync_daemon_inteface specify the network interface for the LVS sync_daemon to run on string
virtual_router_id specify to which VRRP router id the instance belongs numerical
priority specify the instance priority in the VRRP router numerical
advert_int specify the advertisement interval in seconds (set to 1) numerical
smtp_alert Activate the SMTP notification for MASTER state transition
authentication identify a VRRP authentication definition block
auth_type specify which kind of authentication to use (PASS|AH)
auth_pass specify the password string to use string
virtual_ipaddress identify a VRRP VIP definition block
virtual_ipaddress_excluded identify a VRRP VIP excluded definition block (not protocol VIPs)
notify_master specify a shell script to be executed during transition to master state path
notify_backup specify a shell script to be executed during transition to backup state path
notify_fault specify a shell script to be executed during transition to fault state path
vrrp_sync_group Identify the VRRP synchronization instances group string
========================== ======================================================================= =========
Path type: A system path to a script eg: “/usr/local/bin/transit.sh <arg_list>”