Keepalived的全局配置
默认配置文件如下:
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进入终止状态的时候要执行的脚本