keepalived配置

前两个配置做完实验没截图,后面的实验有图片。

keepalived的的单独设置

1.确保时间同步 ntpdate 10.1.0.1

2.保证/etc/hosts文件可以解析到

3.本机配置ssh-keygen -t rsa -P ''  ,然后ssh-copy-id -i .ssh/id_rsa.pub root@10.1.44.4

4.此时 登入10.1.44.4就不需要密码了

5.yum -y install keepalived,分别进行配置两台主机的地址分别是10.1.44.4(backup) 和10.1.44.3(master)

备机的配置

global_defs {

notification_email {

root@localhost

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node61

vrrp_mcast_group4 224.0.100.29

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 16

priority 98

advert_int 1

authentication {

auth_type PASS

auth_pass 01c5c1c8

}

virtual_ipaddress {

10.1.44.99/16 dev eth0

}

}

主机的配置

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node61

vrrp_mcast_group4 224.0.100.29

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 16

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 01c5c1c8

}

virtual_ipaddress {

10.1.44.99/16 dev eth0

}

}

配置邮件通知机制

邮件脚本:/etc/keepalived/notify.sh

#!/bin/bash

#

contact="root@localhost"

notify() {

mailsubject="$(hostname) to be $1 ,vip floating"

mailbody="$(date +'%F %T'):vrrp transition,$(hostname) changed to be $1"

echo "$mailbody" | mail -s "$mailsubject" $contact

}

case $1 in

master)

notify master

;;

backup)

notify backup

;;

fault)

notify fault

;;

*)

echo "Usage: $(basename $0) {master|backup|fault}"

exit 1

;;

esac

在keepalived.conf中的配置

virtual_ipaddress {

10.1.44.99/16 dev eth0

}

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

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

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

}

keepalived与HTTP结合的配置

第一步:在主机和备机进行测试

先开启service keepalived start

ipvsadm -A -t 10.1.44.99:80 -s rr

ipvsadm -a  -t 10.1.44.99:80 -r 10.1.44.2 -g -w 1

ipvsadm -a  -t 10.1.44.99:80 -r 10.1.44.6 -g -w 1

在另一台设备上使用curl 10.1.44.99

第二步:keepalived配置文件中添加配置

如下为备机配置,主机类似

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node1

vrrp mcast_group4 224.0.100.19

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 15

priority 97

advert_int 1

authentication {

auth_type PASS

auth_pass RrpIoZU8

}

virtual_ipaddress {

10.1.44.99

}

}

virtual_server 10.1.44.99 80 {

delay_loop 3

lb_algo rr

lb_kind DR

protocol TCP

real_server 10.1.44.2 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 1

nb_get_retry 3

delay_before_retry 1

}

}

real_server 10.1.44.6 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 1

nb_get_retry 3

delay_before_retry 1

}

}

}

第三步:测试

配置好文件后,生成了如下的规则

keepalived配置1.jpg

(1)正常情况下会轮替

keepalived配置2.jpg

(2)关闭一台真机

keepalived配置3.jpg

(3)keepalived的主机宕机

此时的ipvsadm的规则已经转移到备机上,用户的访问页面亦然正常

keepalived配置4.jpg

sorry服务器

sorry_server应该配置在keepalived服务器上,以便于在主备真机全部宕机后,能够提供错误页显示服务。

(1)配置文件:

keepalived配置5.jpg

(2)测试

将真机的http服务全部关闭,将调度机的备机启动,

keepalived配置6.jpg

keepalived配置7.jpg

启动调度机的主机启动

keepalived配置8.jpg

keepalived状态检测

keepalived调用外部的辅助脚本进行资源监控,并根据监控的结果状态能实现优先动态调整。可以使用该方法去检测nginx服务是否正常;

分两步:(1)先定义一个脚本;(2)调用此脚本;

实例:

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node1

vrrp mcast_group4 224.0.100.19

}

vrrp_script chk_down {

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

       interval 1

       weight -5

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 15

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass RrpIoZU8

}

virtual_ipaddress {

10.1.44.99

}

  track_script {

       chk_down

   }

}

当创建了down文件后主节点自动调低优先级。

原创文章,作者:178babyhanggege,如若转载,请注明出处:http://www.178linux.com/57259

(0)
178babyhanggege178babyhanggege
上一篇 2016-11-11
下一篇 2016-11-11

相关推荐

  • 在CentOS7.3上编译安装httpd-2.4.27

    在CentOS7.3上编译安装httpd-2.4.27     在实际生产中,软件厂商并不总会提供针对Linux平台的rpm软件包,有时会以源码的形式发布软件。源码,比如c语言的源码,可以跨平台运行。在只能获得源码的情况下,那么就需要用户根据自己的平台,进行手动的编译安装。此时,需要借助一些专门的编译工具,而Linux…

    Linux干货 2017-08-06
  • DNS基础及使用BIND搭建域名服务器

        本文主线是DNS服务相关概念和服务器搭建,在此之前了解一下域名这个东东很有其必要性,因为DNS服务就是应域名而生的。那么域名是什么哪?     域名     域名是用一串用点分开的字符串来表示的internet上的某一台或者一组计算机的名称,用于在数据传输时标识计算机的电子方位。举…

    Linux干货 2015-06-11
  • 根分区伸缩实验

    众所周知LVM是Linux环境下对 磁盘进行管理的一种机制。用户在安装Linux操作系统时,难以分配合适的硬盘空间,当一个分区存放不下某个文件时,这个文件因为文件系统的限制,也不能 跨越多个分区来存放。而遇到出现某个分区耗尽时,只有使用调整分区大小的工具。随着LVM功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方 便…

    Linux干货 2015-05-27
  • linux 磁盘管理

    1、查看系统存在硬盘:lsblk  2、对磁盘分区操作:fdisk /dev/sda p: 显示当前硬件的分区,包括没保存的改动 n: 创建新分区 e: 扩展分区 p: 主分区 d: 删除一个分区 w: 保存退出 t: 修改分区类型 L:显示所支持的所有类型 3、在CentOS 5和7 使用partprobe同步分区。 4、mkfs -t 文件类型…

    Linux干货 2017-08-13
  • iptables基础实战练习

    目录: 一、基本规则练习 二、SNAT源地址转移 三、DNAT目标地址转移   一、基础规则练习   (1) 放行ssh (端口:22) 1 iptables -A INPUT -d 192.168.42.153 -p tcp –dport 22 -j ACCEPT 2 iptables -A OUTPUT -s 192.168.42.…

    2017-08-04
  • 磁盘管理

    1、拿到一块硬盘,通常来讲,第一步是分区,然后是文件系统的创建,管理文件系统,第三步是挂载设备。 2、linux(准确的说是UNIX)哲学,whindows一切皆窗口,一切皆图形。 3、磁盘是一个硬件设备,存放在/dev/目录下,会有相应的文件来对应的表示这些设备文件,在这个目录下存放的全是设备。 4、在/dev目录下和设备相关的有两种,一种是c开头为字符,…

    Linux干货 2017-04-22