/export/servers/keepalived/conf/keepalived.conf配置文件詳解:
! Configuration File for keepalived
#全局配置
global_defs {
notification_email { #設置報警郵件地址,每行一個,(如何要開啓郵件報警,需要開啓本機的sendmail服務)
}
notification_email_from [email protected] #設置郵件的發送地址
smtp_server mail.jd.com #設置郵件的smtp server地址
smtp_connect_timeout 30 #設置連接smtp server的超時時間
router_id LVS_DEVEL #表示keepalived服務器的一個標識,是發郵件時顯示在郵件主題中的信息
}
#keepalived的VRRPD配置,是所有keepalived配置的核心
#VRRP實例配置
vrrp_instance VIP_142 #是VRRP實例開始的標識,後跟VRRP實例名稱
{
state MASTER #keepalived的角色,MASTER主,BACKUP備
interface eth0 #用於指定HA監測網絡的接口
virtual_router_id 142 #虛擬路由標識,這個標識是一個數字,同一個VRRP實例使用唯一的一個標識,即在同一個vrrp_instance下,MASTER和BACKUP必須是一致的!
priority 100 #權重優先級
advert_int 2 #用於設定master和backup主機之間同步檢查的時間間隔,單位是秒
garp_master_delay 10 #用於切換到master狀態後延時進行Gratuitous arp請求的時間
smtp_alert #表示是否開啓郵件通知(用全局區域的郵件設置來發通知)
authentication #主備之間進行通信的驗證類型和密碼:驗證類型主要有PASS和AH兩種,一個在vrrp_instance下,MASTER和backup必須使用相同的密碼纔可以通信
{
auth_type PASS
auth_pass 123456
}
#virtual_ipaddress用於設置虛擬ip地址,可以設置多個vip,每行一個,
virtual_ipaddress
{
10.95.0.200/24
}
track_interface #用於設置一些額外的網絡監控接口,其中任何一個網絡接口出現故障,keepalived都會進去fault狀態!
{
eth0
}
nopreempt #設置不搶佔功能,只能在backup上使用,知道機器有故障了才切換,
preemtp_delay 300 #用於設置搶佔的延時時間,(例:開啓啓動沒必要搶佔)
}
#以下是lvs的主要主要配置信息,主要實現lvs的ip包轉發功能!
virtual_server 10.95.0.200 80 #虛擬ip和端口
{
delay_loop 6 #設置健康檢查的時間間隔
lb_algo wrr #設置負載調度算法
lb_kind DR #設置lvs的模式
persistence_timeout 60 #會話保持時間,單位秒
protocol TCP #ip包轉發協議,有TCP和UDP兩種
real_server 10.95.0.143 80 #real server 的ip
{
weight 3 #權重
TCP_CHECK #健康檢查
{
connect_timeout 10 #表示無響應超時時間
nb_get_retry 3 #表示重連次數
delay_before_retry 3 #表示重試間隔
connect_port 80 #表示端口
}
}
real_server 10.95.0.144 80
{
weight 3
TCP_CHECK
{
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
健康監測應許多種檢查方式,常見的有,HTTP_GET,SSL_GET,TCP_CHEC,SMTP_CHECK,MISC_CHECK.
HTTP_GET |SSL_GET
{
url{
path /index.html #指定url信息
digest e6owjfdsjfalsjdfsalkf30wfdsfjwqe
#ssl檢查後的摘要信息,這些摘要信息可以通過genhash命令工具獲取,
#例:genhash -s 192.168.12.80 -p 80 -u /index.html
status_code 200
}
connect_port 80
bindto 192.168.31.128 #表示通過此地址來對發送請求對服務器進行健康檢查
nb_get_retry 3
delay_before_retry 2
}