配置环境

node1:192.168.1.72

node2:192.168.1.73

1、node1、node2配置主机名、同步时间、通过hosts文件解析各主机名

2、各节点安装keepalived

yum -y install keepalived

3、配置node1

[root@node1 ~]# cd /etc/keepalived/

[root@node1 keepalived]# cp keepalived.conf{,.bak}

[root@node1 keepalived]# vim keepalived.conf

! Configuration File for keepalived


global_defs {

  notification_email {

root@localhost

  }

  notification_email_from kaadmin@localhost

  smtp_server 127.0.0.1

  smtp_connect_timeout 30

  router_id node1

}


vrrp_script chk_maintanance {

script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"

interval 1

weight -2

}


vrrp_instance VI_1 {

state MASTER

interface eno16777736

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 3b8fd970

}

virtual_ipaddress {

192.168.1.80/24 

}


track_script{

chk_maintanance

}

   #以下三行为添加通知功能

    notify_master "/etc/keepalived/notify.sh master"

    notify_backup "/etc/keepalived/notify.sh backup"

    notify_fault "/etc/keepalived/notify.sh fault"

}


vrrp_instance VI_2 {

state BACKUP

interface eno16777736

virtual_router_id 61

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 7b3fd970aa

}

virtual_ipaddress {

192.168.1.180/24 

}


track_script{

chk_maintanance

}

}


通知脚本(node1和node2相同)


[root@node1 keepalived]# vim /etc/keepalived/notify.sh 

#!/bin/bash

# Author: MageEdu <linuxedu@foxmail.com>

# description: An example of notify script


vip=192.168.1.80

contact='root@localhost'


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

}


case "$1" in

    master)

        notify master

        exit 0

    ;;

    backup)

        notify backup

        exit 0

    ;;

    fault)

        notify fault

        exit 0

    ;;

    *)

        echo 'Usage: `basename $0` {master|backup|fault}'

        exit 1

    ;;

esac


[root@node1 keepalived]# scp notify.sh node2:/etc/keepalived/

4、配置node2

[root@node1 keepalived]# scp keepalived.conf node2:/etc/keepalived/

[root@node2 ~]# cd /etc/keepalived/

[root@node2 keepalived]# vim keepalived.conf

! Configuration File for keepalived


global_defs {

  notification_email {

root@localhost

  }

  notification_email_from kaadmin@localhost

  smtp_server 127.0.0.1

  smtp_connect_timeout 30

  router_id node2

}


vrrp_script chk_maintanance {

script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"

interval 1

weight -2

}


vrrp_instance VI_1 {

state BACKUP

interface eno16777736

virtual_router_id 51

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 3b8fd970

}

virtual_ipaddress {

192.168.1.80/24 

}


track_script{

chk_maintanance

}

   #以下三行为添加通知功能

    notify_master "/etc/keepalived/notify.sh master"

    notify_backup "/etc/keepalived/notify.sh backup"

    notify_fault "/etc/keepalived/notify.sh fault"


}


vrrp_instance VI_2 {

state MASTER

interface eno16777736

virtual_router_id 61

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 7b3fd970aa

}

virtual_ipaddress {

192.168.1.180/24 

}


track_script{

chk_maintanance

}

}



5、启动

[root@node1 keepalived]# systemctl start keepalived.service

[root@node2 keepalived]# systemctl start keepalived.service


6、添加日志储存文件

[root@node1 keepalived]# vim /etc/sysconfig/keepalived 

修改

KEEPALIVED_OPTIONS="-D"

KEEPALIVED_OPTIONS="-D -S 3"

[root@node1 keepalived]# vim /etc/rsyslog.conf 

添加一行

local3.*                                                /var/log/keepalived.log

[root@node1 keepalived]# systemctl restart rsyslog.service

[root@node1 keepalived]# systemctl restart keepalived.service