Linux高可用集群之keepalived详解——(2)

4 篇文章 0 订阅
3 篇文章 0 订阅

10.怎么完成维护模式keepalived切换?

问题:我们一般进行主从切换测试时都是关闭keepalived或关闭网卡接口,有没有一种方法能实现在不关闭keepalived下或网卡接口来实现维护呢?方法肯定是有的,在keepalived新版本中,支持脚本vrrp_srcipt,具体如何使用大家可以man keepalived.conf查看。下面我们来演示一下具体怎么实现。

(1).定义脚本

1
2
3
4
5
6
7
vrrp_srcipt chk_schedown { 
    script  "[ -e /etc/keepalived/down ] && exit 1 || exit 0"  
    interval 1  #监控间隔  
    weight -5  #减小优先级  
    fall 2  #监控失败次数  
    rise 1  #监控成功次数  
}

(2).执行脚本

1
2
3
track_script {
    chk_schedown  #执行chk_schedown脚本
}

(3).修改配置文件

master:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[root@master ~] # cat /etc/keepalived/keepalived.conf  
! Configuration File  for  keepalived
global_defs { 
    notification_email {  
      15251076067@163.com  
    }  
    notification_email_from root  
    smtp_server 127.0.0.1  
    smtp_connect_timeout 30  
    router_id LVS_DEVEL  
}
vrrp_script chk_schedown {  #定义vrrp执行脚本  
    script  "[ -e /etc/keepalived/down ] && exit 1 || exit 0"  #查看是否有down文件,有就进入维护模式  
    interval 1  #监控间隔时间  
    weight -5  #降低优先级  
    fall 2  #失败次数  
    rise 1  #成功数次  
}
vrrp_instance VI_1 { 
     state MASTER  
     interface eth0  
     virtual_router_id 51  
     priority 101  
     advert_int 1  
     authentication {  
         auth_type PASS  
         auth_pass 1111  
     }  
     virtual_ipaddress {  
         192.168.18.200  
     }  
     track_script {  #执行脚本  
         chk_schedown  
     }  
}
virtual_server 192.168.18.200 80 { 
     delay_loop 6  
     lb_algo rr  
     lb_kind DR  
     nat_mask 255.255.255.0  
     protocol TCP
     real_server 192.168.18.201 80 { 
         weight 1  
         HTTP_GET {  
             url {  
               path /  
           status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
     real_server 192.168.18.202 80 {  
         weight 1  
         HTTP_GET {  
             url {  
               path /  
               status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
    sorry_server 127.0.0.1 80  
}

slave:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
[root@slave ~] # cat /etc/keepalived/keepalived.conf  
! Configuration File  for  keepalived
global_defs { 
    notification_email {  
      15251076067@163.com  
    }  
    notification_email_from root  
    smtp_server 127.0.0.1  
    smtp_connect_timeout 30  
    router_id LVS_DEVEL  
}
vrrp_script chk_schedown { 
    script  "[ -e /etc/keepalived/down ] && exit 1 || exit 0"  
    interval 1  
    weight -5  
    fall 2  
    rise 1  
}
vrrp_instance VI_1 { 
     state BACKUP  
     interface eth0  
     virtual_router_id 51  
     priority 100  
     advert_int 1  
     authentication {  
         auth_type PASS  
         auth_pass 1111  
     }  
     virtual_ipaddress {  
         192.168.18.200  
     }  
     track_script {  
     chk_schedown  
     }
}
virtual_server 192.168.18.200 80 { 
     delay_loop 6  
     lb_algo rr  
     lb_kind DR  
     nat_mask 255.255.255.0  
     protocol TCP
     real_server 192.168.18.201 80 { 
         weight 1  
         HTTP_GET {  
             url {  
               path /  
           status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
     real_server 192.168.18.202 80 {  
         weight 1  
         HTTP_GET {  
             url {  
               path /  
               status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
     sorry_server 127.0.0.1 80

(4).测试

master:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@master keepalived] # touch down #新建一下down文件
[root@master keepalived] # ll 
总用量 4  
-rw-r--r-- 1 root root    0 8月  22 13:39 down  
-rw-r--r-- 1 root root 1317 8月  22 13:35 keepalived.conf
[root@master keepalived] # tail -f /var/log/messages #查看一下日志 
Aug 22 13:43:52 master Keepalived_vrrp[12003]: VRRP_Instance(VI_1) Entering MASTER STATE  
Aug 22 13:43:52 master Keepalived_vrrp[12003]: VRRP_Instance(VI_1) setting protocol VIPs.  
Aug 22 13:43:52 master Keepalived_vrrp[12003]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0  for  192.168.18.200  
Aug 22 13:43:52 master Keepalived_vrrp[12003]: VRRP_Instance(VI_1) Received higher prio advert  
Aug 22 13:43:52 master Keepalived_vrrp[12003]: VRRP_Instance(VI_1) Entering BACKUP STATE  
Aug 22 13:43:52 master Keepalived_vrrp[12003]: VRRP_Instance(VI_1) removing protocol VIPs.  
Aug 22 13:43:52 master Keepalived_healthcheckers[12002]: Netlink reflector reports IP 192.168.18.200 added  
Aug 22 13:43:52 master Keepalived_healthcheckers[12002]: Netlink reflector reports IP 192.168.18.200 removed  
Aug 22 13:43:52 master Keepalived_healthcheckers[12002]: SMTP alert successfully sent.  
Aug 22 13:43:52 master Keepalived_healthcheckers[12002]: SMTP alert successfully sent.  
^C  
[root@master keepalived] # ip add show #查看VIP  
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN   
     link /loopback  00:00:00:00:00:00 brd 00:00:00:00:00:00  
     inet 127.0.0.1 /8  scope host lo  
     inet6 ::1 /128  scope host   
        valid_lft forever preferred_lft forever  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
     link /ether  00:0c:29:4b:a1:85 brd ff:ff:ff:ff:ff:ff  
     inet 192.168.18.208 /24  brd 192.168.18.255 scope global eth0  
     inet6 fe80::20c:29ff:fe4b:a185 /64  scope link   
        valid_lft forever preferred_lft forever

slave:

1
2
3
4
5
6
7
8
9
10
11
12
[root@slave ~] # ip addr show #查看一下VIP已转移到slave上 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN   
     link /loopback  00:00:00:00:00:00 brd 00:00:00:00:00:00  
     inet 127.0.0.1 /8  scope host lo  
     inet6 ::1 /128  scope host   
        valid_lft forever preferred_lft forever  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
     link /ether  00:0c:29:f9:e6:26 brd ff:ff:ff:ff:ff:ff  
     inet 192.168.18.207 /24  brd 192.168.18.255 scope global eth0  
     inet 192.168.18.200 /32  scope global eth0  
     inet6 fe80::20c:29ff:fef9:e626 /64  scope link   
        valid_lft forever preferred_lft forever

好了,自写监测脚本,完成维护模式切换,到这里就演示成功,下面我们来解决最后一个问题,就是keepalived主从切换的邮件通告。

11.如何在keepalived故障时(或主备切换时),发送警告邮件给指定的管理员?

(1).keepalived通知脚本进阶示例

下面的脚本可以接受选项,其中

  • -s, --service SERVICE,...:指定服务脚本名称,当状态切换时可自动启动、重启或关闭此服务;

  • -a, --address VIP: 指定相关虚拟路由器的VIP地址;

  • -m, --mode {mm|mb}:指定虚拟路由的模型,mm表示主主,mb表示主备;它们表示相对于同一种服务而方,其VIP的工作类型;

  • -n, --notify {master|backup|fault}:指定通知的类型,即vrrp角色切换的目标角色;

  • -h, --help:获取脚本的使用帮助;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/bash 
# Author: freeloda   
# description: An example of notify script  
# Usage: notify.sh -m|--mode {mm|mb} -s|--service SERVICE1,... -a|--address VIP  -n|--notify {master|backup|falut} -h|--help
contact= '1521076067@163.com'
helpflag=0  
serviceflag=0  
modeflag=0  
addressflag=0  
notifyflag=0
Usage() { 
   echo  "Usage: notify.sh [-m|--mode {mm|mb}] [-s|--service SERVICE1,...] <-a|--address VIP>  <-n|--notify {master|backup|falut}>"   
   echo  "Usage: notify.sh -h|--help"  
}
ParseOptions() { 
   local  I=1;  
   if  [ $ # -gt 0 ]; then  
     while  [ $I - le  $ # ]; do  
       case  $1  in  
       -s|--service)  
         [ $ # -lt 2 ] && return 3  
          serviceflag=1  
          services=(` echo  $2| awk  -F ","  '{for(i=1;i<=NF;i++) print $i}' `)  
         shift  2 ;;  
       -h|--help)  
          helpflag=1  
         return  0  
         shift  
         ;;  
       -a|--address)  
         [ $ # -lt 2 ] && return 3  
         addressflag=1  
         vip=$2  
         shift  2  
         ;;  
       -m|--mode)  
         [ $ # -lt 2 ] && return 3  
         mode=$2  
         shift  2  
         ;;  
       -n|--notify)  
         [ $ # -lt 2 ] && return 3  
         notifyflag=1  
         notify=$2  
         shift  2  
         ;;  
       *)  
         echo  "Wrong options..."  
         Usage  
         return  7  
         ;;  
        esac  
     done  
     return  0  
   fi  
}
#workspace=$(dirname $0)
RestartService() { 
   if  [ ${ #@} -gt 0 ]; then  
     for  in  $@;  do  
       if  [ -x  /etc/rc .d /init .d/$I ];  then  
         /etc/rc .d /init .d/$I restart  
       else  
         echo  "$I is not a valid service..."  
       fi  
     done  
   fi  
}
StopService() { 
   if  [ ${ #@} -gt 0 ]; then  
     for  in  $@;  do  
       if  [ -x  /etc/rc .d /init .d/$I ];  then  
         /etc/rc .d /init .d/$I stop  
       else  
         echo  "$I is not a valid service..."  
       fi  
     done  
   fi  
}
Notify() {  
     mailsubject= "`hostname` to be $1: $vip floating"  
     mailbody= "`date '+%F %H:%M:%S'`, vrrp transition, `hostname` changed to be $1."  
     echo  $mailbody | mail -s  "$mailsubject"  $contact  
}
# Main Function  
ParseOptions $@  
[ $? - ne  0 ] && Usage &&  exit  5
[ $helpflag - eq  1 ] && Usage &&  exit  0
if  [ $addressflag - ne  1 -o $notifyflag - ne  1 ];  then 
   Usage  
   exit  2  
fi
mode=${mode:-mb}
case  $notify  in 
'master' )  
   if  [ $serviceflag - eq  1 ];  then  
       RestartService ${services[*]}  
   fi  
   Notify master  
   ;;  
'backup' )  
   if  [ $serviceflag - eq  1 ];  then  
     if  "$mode"  ==  'mb'  ];  then  
       StopService ${services[*]}  
     else  
       RestartService ${services[*]}  
     fi  
   fi  
   Notify backup  
   ;;  
'fault' )  
   Notify fault  
   ;;  
*)  
   Usage  
   exit  4  
   ;;  
esac

(2).在keepalived.conf配置文件中,其调用方法如下所示:

  • notify_master "/etc/keepalived/notify.sh -n master -a 192.168.18.200"  

  • notify_backup "/etc/keepalived/notify.sh -n backup -a 192.168.18.200"  

  • notify_fault "/etc/keepalived/notify.sh -n fault -a 192.168.18.200"  

(3).修改配置文件

master:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[root@master keepalived] # cat keepalived.conf  
! Configuration File  for  keepalived
global_defs { 
    notification_email {  
      15251076067@163.com  
    }  
    notification_email_from root  
    smtp_server 127.0.0.1  
    smtp_connect_timeout 30  
    router_id LVS_DEVEL  
}
vrrp_script chk_schedown { 
    script  "[ -e /etc/keepalived/down ] && exit 1 || exit 0"  
    interval 1  
    weight -5  
    fall 2  
    rise 1  
}
vrrp_instance VI_1 { 
     state MASTER  
     interface eth0  
     virtual_router_id 51  
     priority 101  
     advert_int 1  
     authentication {  
         auth_type PASS  
         auth_pass 1111  
     }  
     virtual_ipaddress {  
         192.168.18.200  
     }  
     track_script {  
         chk_schedown  
     }
     #增加以下三行 
     notify_master  "/etc/keepalived/notify.sh -n master -a 192.168.18.200"  
     notify_backup  "/etc/keepalived/notify.sh -n backup -a 192.168.18.200"
     notify_fault  "/etc/keepalived/notify.sh -n fault -a 192.168.18.200"
}
virtual_server 192.168.18.200 80 { 
     delay_loop 6  
     lb_algo rr  
     lb_kind DR  
     nat_mask 255.255.255.0  
     protocol TCP
     real_server 192.168.18.201 80 { 
         weight 1  
         HTTP_GET {  
             url {  
               path /  
           status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
     real_server 192.168.18.202 80 {  
         weight 1  
         HTTP_GET {  
             url {  
               path /  
               status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
    sorry_server 127.0.0.1 80  
}

slave:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[root@slave keepalived] # cat keepalived.conf  
! Configuration File  for  keepalived
global_defs { 
    notification_email {  
      15251076067@163.com  
    }  
    notification_email_from root  
    smtp_server 127.0.0.1  
    smtp_connect_timeout 30  
    router_id LVS_DEVEL  
}
vrrp_script chk_schedown { 
    script  "[ -e /etc/keepalived/down ] && exit 1 || exit 0"  
    interval 1  
    weight -5  
    fall 2  
    rise 1  
}
vrrp_instance VI_1 { 
     state BACKUP  
     interface eth0  
     virtual_router_id 51  
     priority 100  
     advert_int 1  
     authentication {  
         auth_type PASS  
         auth_pass 1111  
     }  
     virtual_ipaddress {  
         192.168.18.200  
     }  
     track_script {  
     chk_schedown  
     }
     #增加以下三行 
     notify_master  "/etc/keepalived/notify.sh -n master -a 192.168.18.200"
     notify_backup  "/etc/keepalived/notify.sh -n backup -a 192.168.18.200"  
     notify_fault  "/etc/keepalived/notify.sh -n fault -a 192.168.18.200"  
}
virtual_server 192.168.18.200 80 { 
     delay_loop 6  
     lb_algo rr  
     lb_kind DR  
     nat_mask 255.255.255.0  
     protocol TCP
     real_server 192.168.18.201 80 { 
         weight 1  
         HTTP_GET {  
             url {  
               path /  
           status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
     real_server 192.168.18.202 80 {  
         weight 1  
         HTTP_GET {  
             url {  
               path /  
               status_code 200  
             }  
             connect_timeout 2  
             nb_get_retry 3  
             delay_before_retry 1  
         }  
     }  
     sorry_server 127.0.0.1 80  
}

(4).增加脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
[root@slave keepalived] # pwd 
/etc/keepalived  
[root@slave keepalived] # vim notify.sh
[root@slave keepalived] # cat notify.sh  
#!/bin/bash  
# Author: freeloda   
# description: An example of notify script  
# Usage: notify.sh -m|--mode {mm|mb} -s|--service SERVICE1,... -a|--address VIP  -n|--notify {master|backup|falut} -h|--help
contact= '15251076067@163.com' 
helpflag=0  
serviceflag=0  
modeflag=0  
addressflag=0  
notifyflag=0
Usage() { 
   echo  "Usage: notify.sh [-m|--mode {mm|mb}] [-s|--service SERVICE1,...] <-a|--address VIP>  <-n|--notify {master|backup|falut}>"   
   echo  "Usage: notify.sh -h|--help"  
}
ParseOptions() { 
   local  I=1;  
   if  [ $ # -gt 0 ]; then  
     while  [ $I - le  $ # ]; do  
       case  $1  in  
       -s|--service)  
         [ $ # -lt 2 ] && return 3  
          serviceflag=1  
          services=(` echo  $2| awk  -F ","  '{for(i=1;i<=NF;i++) print $i}' `)  
         shift  2 ;;  
       -h|--help)  
          helpflag=1  
         return  0  
         shift  
         ;;  
       -a|--address)  
         [ $ # -lt 2 ] && return 3  
         addressflag=1  
         vip=$2  
         shift  2  
         ;;  
       -m|--mode)  
         [ $ # -lt 2 ] && return 3  
         mode=$2  
         shift  2  
         ;;  
       -n|--notify)  
         [ $ # -lt 2 ] && return 3  
         notifyflag=1  
         notify=$2  
         shift  2  
         ;;  
       *)  
         echo  "Wrong options..."  
         Usage  
         return  7  
         ;;  
        esac  
     done  
     return  0  
   fi  
}
#workspace=$(dirname $0)
RestartService() { 
   if  [ ${ #@} -gt 0 ]; then  
     for  in  $@;  do  
       if  [ -x  /etc/rc .d /init .d/$I ];  then  
         /etc/rc .d /init .d/$I restart  
       else  
         echo  "$I is not a valid service..."  
       fi  
     done  
   fi  
}
StopService() { 
   if  [ ${ #@} -gt 0 ]; then  
     for  in  $@;  do  
       if  [ -x  /etc/rc .d /init .d/$I ];  then  
         /etc/rc .d /init .d/$I stop  
       else  
         echo  "$I is not a valid service..."  
       fi  
     done  
   fi  
}
Notify() {  
     mailsubject= "`hostname` to be $1: $vip floating"  
     mailbody= "`date '+%F %H:%M:%S'`, vrrp transition, `hostname` changed to be $1."  
     echo  $mailbody | mail -s  "$mailsubject"  $contact  
}
# Main Function  
ParseOptions $@  
[ $? - ne  0 ] && Usage &&  exit  5
[ $helpflag - eq  1 ] && Usage &&  exit  0
if  [ $addressflag - ne  1 -o $notifyflag - ne  1 ];  then 
   Usage  
   exit  2  
fi
mode=${mode:-mb}
case  $notify  in 
'master' )  
   if  [ $serviceflag - eq  1 ];  then  
       RestartService ${services[*]}  
   fi  
   Notify master  
   ;;  
'backup' )  
   if  [ $serviceflag - eq  1 ];  then  
     if  "$mode"  ==  'mb'  ];  then  
       StopService ${services[*]}  
     else  
       RestartService ${services[*]}  
     fi  
   fi  
   Notify backup  
   ;;  
'fault' )  
   Notify fault  
   ;;  
*)  
   Usage  
   exit  4  
   ;;  
esac

(5).给脚本增加执行权限

1
[root@slave keepalived] # chmod +x notify.sh

(6).将master上脚本复制到slave上

1
[root@slave keepalived] # scp -p notify.sh root@192.168.18.207:/etc/keepalived/

(7).测试一下脚本

1
2
3
4
5
6
7
[root@slave keepalived] # ./notify.sh -h 
Usage: notify.sh [-m|--mode {mm|mb}] [-s|--service SERVICE1,...] <-a|--address VIP>  <-n|--notify {master|backup|falut}>  
Usage: notify.sh -h|--help  
[root@slave keepalived] # ./notify.sh --help  
Usage: notify.sh [-m|--mode {mm|mb}] [-s|--service SERVICE1,...] <-a|--address VIP>  <-n|--notify {master|backup|falut}>  
Usage: notify.sh -h|--help  
[root@slave keepalived] # ./notify.sh -m mb -a 1.1.1.1 -n master

(8).查看一下邮件

k13

注,大家可以看到成功收到邮件,测试成功。在模拟故障时先重启一下keepalived服务

(9).模拟故障

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@master keepalived] # ip addr show #查看一下VIP 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN   
     link /loopback  00:00:00:00:00:00 brd 00:00:00:00:00:00  
     inet 127.0.0.1 /8  scope host lo  
     inet6 ::1 /128  scope host   
        valid_lft forever preferred_lft forever  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
     link /ether  00:0c:29:4b:a1:85 brd ff:ff:ff:ff:ff:ff  
     inet 192.168.18.208 /24  brd 192.168.18.255 scope global eth0  
     inet 192.168.18.200 /32  scope global eth0  
     inet6 fe80::20c:29ff:fe4b:a185 /64  scope link   
        valid_lft forever preferred_lft forever  
[root@master keepalived] # touch down #进入维护模式  
[root@master keepalived] # ll  
总用量 8  
-rw-r--r-- 1 root root    0 8月  22 14:39 down  
-rw-r--r-- 1 root root 1543 8月  22 14:04 keepalived.conf  
-rwxr-xr-x 1 root root 2516 8月  22 14:15 notify.sh  
[root@master keepalived] # ip addr show #再次查看VIP  
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN   
     link /loopback  00:00:00:00:00:00 brd 00:00:00:00:00:00  
     inet 127.0.0.1 /8  scope host lo  
     inet6 ::1 /128  scope host   
        valid_lft forever preferred_lft forever  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
     link /ether  00:0c:29:4b:a1:85 brd ff:ff:ff:ff:ff:ff  
     inet 192.168.18.208 /24  brd 192.168.18.255 scope global eth0  
     inet6 fe80::20c:29ff:fe4b:a185 /64  scope link   
        valid_lft forever preferred_lft forever
[root@slave keepalived] # ip addr show #大家可以看到VIP成功移动到slave上 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN   
     link /loopback  00:00:00:00:00:00 brd 00:00:00:00:00:00  
     inet 127.0.0.1 /8  scope host lo  
     inet6 ::1 /128  scope host   
        valid_lft forever preferred_lft forever  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
     link /ether  00:0c:29:f9:e6:26 brd ff:ff:ff:ff:ff:ff  
     inet 192.168.18.207 /24  brd 192.168.18.255 scope global eth0  
     inet 192.168.18.200 /32  scope global eth0  
     inet6 fe80::20c:29ff:fef9:e626 /64  scope link   
        valid_lft forever preferred_lft forever

(10).查看一下邮件

k14

注,大家可以看到,主备切换时,会发送邮件报警,好了到这里所有演示全部完成。希望大家有所收获^_^……


本文出自 “Share your knowledge …” 博客,请务必保留此出处http://freeloda.blog.51cto.com/2033581/1280962


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值