Keepalived的全局配置

默认配置文件如下:




keepalived stat keepalived state配置_NAT

keepalived stat keepalived state配置_keepalived stat_02

1 ! Configuration File for keepalived
  2 
  3 global_defs {
  4    notification_email {
  5      acassen@firewall.loc
  6      failover@firewall.loc
  7      sysadmin@firewall.loc
  8    }
  9    notification_email_from Alexandre.Cassen@firewall.loc
 10    smtp_server 192.168.200.1
 11    smtp_connect_timeout 30
 12    router_id LVS_DEVEL
 13    vrrp_skip_check_adv_addr
 14    vrrp_strict
 15    vrrp_garp_interval 0
 16    vrrp_gna_interval 0
 17 }
 18 
 19 vrrp_instance VI_1 {
 20     state MASTER
 21     interface eth0
 22     virtual_router_id 51
 23     priority 100
 24     advert_int 1
 25     authentication {
 26         auth_type PASS
 27         auth_pass 1111
 28     }
 29     virtual_ipaddress {
 30         192.168.200.16
 31         192.168.200.17
 32         192.168.200.18
 33     }
 34 }
 35 
 36 virtual_server 192.168.200.100 443 {
 37     delay_loop 6
 38     lb_algo rr
 39     lb_kind NAT
 40     persistence_timeout 50
 41     protocol TCP
 42 
 43     real_server 192.168.201.100 443 {
 44         weight 1
 45         SSL_GET {
 46             url {
 47               path /
 48               digest ff20ad2481f97b1754ef3e12ecd3a9cc
 49             }
 50             url {
 51               path /mrtg/
 52               digest 9b3a0c85a887a256d6939da88aabd8cd
 53             }
 54             connect_timeout 3
 55             nb_get_retry 3
 56             delay_before_retry 3
 57         }
 58     }
 59 }
 60 
 61 virtual_server 10.10.10.2 1358 {
 62     delay_loop 6
 63     lb_algo rr 
 64     lb_kind NAT
 65     persistence_timeout 50
 66     protocol TCP
 67 
 68     sorry_server 192.168.200.200 1358
 69 
 70     real_server 192.168.200.2 1358 {
 71         weight 1
 72         HTTP_GET {
 73             url { 
 74               path /testurl/test.jsp
 75               digest 640205b7b0fc66c1ea91c463fac6334d
 76             }
 77             url { 
 78               path /testurl2/test.jsp
 79               digest 640205b7b0fc66c1ea91c463fac6334d
 80             }
 81             url { 
 82               path /testurl3/test.jsp
 83               digest 640205b7b0fc66c1ea91c463fac6334d
 84             }
 85             connect_timeout 3
 86             nb_get_retry 3
 87             delay_before_retry 3
 88         }
 89     }
 90 
 91     real_server 192.168.200.3 1358 {
 92         weight 1
 93         HTTP_GET {
 94             url { 
 95               path /testurl/test.jsp
 96               digest 640205b7b0fc66c1ea91c463fac6334c
 97             }
 98             url { 
 99               path /testurl2/test.jsp
100               digest 640205b7b0fc66c1ea91c463fac6334c
101             }
102             connect_timeout 3
103             nb_get_retry 3
104             delay_before_retry 3
105         }
106     }
107 }
108 
109 virtual_server 10.10.10.3 1358 {
110     delay_loop 3
111     lb_algo rr 
112     lb_kind NAT
113     persistence_timeout 50
114     protocol TCP
115 
116     real_server 192.168.200.4 1358 {
117         weight 1
118         HTTP_GET {
119             url { 
120               path /testurl/test.jsp
121               digest 640205b7b0fc66c1ea91c463fac6334d
122             }
123             url { 
124               path /testurl2/test.jsp
125               digest 640205b7b0fc66c1ea91c463fac6334d
126             }
127             url { 
128               path /testurl3/test.jsp
129               digest 640205b7b0fc66c1ea91c463fac6334d
130             }
131             connect_timeout 3
132             nb_get_retry 3
133             delay_before_retry 3
134         }
135     }
136 
137     real_server 192.168.200.5 1358 {
138         weight 1
139         HTTP_GET {
140             url { 
141               path /testurl/test.jsp
142               digest 640205b7b0fc66c1ea91c463fac6334d
143             }
144             url { 
145               path /testurl2/test.jsp
146               digest 640205b7b0fc66c1ea91c463fac6334d
147             }
148             url { 
149               path /testurl3/test.jsp
150               digest 640205b7b0fc66c1ea91c463fac6334d
151             }
152             connect_timeout 3
153             nb_get_retry 3
154             delay_before_retry 3
155         }
156     }
157 }


View Code


keepalived的配置文件以块的形式组织,每个块都包含内{}中,# !的都是注释。

Keepalived的所有配置均在/etc/keepalived/keepalived.conf这个配置文件中完成。根据实现的功能,主要可以分3类配置

全局配置:

全局配置对整个keepalived都生效,基本如下



1 global_defs   #全局配置标识
 2 global_defs {
 3     notification_email { #指定keepalived在发生事情的时候,发送邮件告知,可以有多个地址,每行一个。
 4         acassen@firewall.loc
 5         failover@firewall.loc
 6         sysadmin@firewall.loc
 7     }
 8     notification_email_from Alexandre.Cassen@firewall.loc #指定发件人
 9     smtp_server 127.0.0.1 #发送email的smtp地址
10     smtp_connect_timeout 30 #超时时间
11     router_id LVS_DEVEL #运行keepalived的机器的一个标识,多个节点标识可以相同,也可以不同
12     vrrp_skip_check_adv_addr 
13     vrrp_strict       #严格执行VRRP协议规范,此模式不支持节点单播
14     vrrp_garp_interval 0
15     vrrp_gna_interval 0
16 }



VRRPD配置

VRRPD配置是Keepalivved的配置的核心,主要来实现高可用,其中VRRPD配置又分为VRRP同步组配置和VRRP实例配置。

同步组主要是解决多个不同实例在多个不同网段的问题,当两个不同的实例分别位于不同的网段当中的时候,如果VRRPD只是配置了A网段的检测,当B网段出现故障的时候,VRRPD会认为仍然正常,不会主备切换,如果加入同步组中就会,任何一个出现问题,都会导致Keepalived进行主备切换。

配置样例如下



1 vrrp_sync_group G1{
 2     group {
 3         VI_1
 4         VI_2
 5         VI_3
 6      }
 7      notify_backup "/usr/local/bin/vrrp.back arg1 arg2"
 8      notify_master "/usr/local/bin/vrrp.mast arg1 arg2"
 9      notify_fault "/usr/local/bin/vrrp.fault arg1 arg2"
10      notify_stop  "/usr/local/bin/vrrp.stop arg1 arg2"
11 }
12 
13 vrrp_sync_group G2{
14     group {
15     VI_3
16     VI_4
17   }
18 }
19 G1同步组包含3个实例,G2同步组包含两个实例。这五个实例在vrrp_instance中定义
20 其中notify_backup,notify_master,notify_fault,notify_stop是keepalived的配置中的一个通知机制,也是它的四种状态。
21 notify_master:指定当keepalived进入master状态的时候要执行的脚本,可以是一个状态报警脚本,也可以是一个服务管理脚本,脚本准许传入参数。
22 notify_backup:指定当keepalived进入backup状态的时候要执行的脚本,可以是一个状态报警脚本,也可以是一个服务管理脚本,脚本准许传入参数。
23 notify_fault:指定当keepalived进入fault状态的时候要执行的脚本,可以是一个状态报警脚本,也可以是一个服务管理脚本,脚本准许传入参数。 
24 notify_stop:指定当keepalived进入终止状态的时候要执行的脚本