首页 > 其他 > 详细

2018-7-3

时间:2018-07-11 10:26:57      阅读:125      评论:0      收藏:0      [点我收藏+]
18.1 集群介绍/18.2 keepalived介绍

18.3/18.4/18.5 用keepalived配置高可用集群



18.1 集群介绍/18.2 keepalived介绍

技术分享图片


集群听起来好像就是一个很高端很的技术,其实不是的,那么集群其实就是一堆计算机的集合,给用户提供同一个服务的一组计算机,就称之为集群,对于用户而言好像就是一台计算机提供的服务


技术分享图片



18.3/18.4/18.5 用keepalived配置高可用集群

准备两台机器

技术分享图片

131作为master

技术分享图片

133作为backp



安装keepalived:两台机器都执行yum install -y keepalived

技术分享图片


两台机器都安装nginx

131已经安装过

技术分享图片

yum install -y nginx


更改配置文件

技术分享图片

技术分享图片


清空配置文件

技术分享图片

配置模板

global_defs {

   notification_email {

     aming@aminglinux.com

   }

   notification_email_from root@aminglinux.com

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}


vrrp_script chk_nginx {

    script "/usr/local/sbin/check_ng.sh"

    interval 3

}


vrrp_instance VI_1 {

    state MASTER

    interface ens33

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass aminglinux>com

    }

    virtual_ipaddress {

        192.168.188.100

    }


    track_script {

        chk_nginx

    }


}


编辑监控脚本vim

技术分享图片

模板:

#!/bin/bash

#时间变量,用于记录日志

d=`date --date today +%Y%m%d_%H:%M:%S`

#计算nginx进程数量

n=`ps -C nginx --no-heading|wc -l`

#如果进程为0,则启动nginx,并且再次检测nginx进程数量,

#如果还为0,说明nginx无法启动,此时需要关闭keepalived

if [ $n -eq "0" ]; then

        /etc/init.d/nginx start

        n2=`ps -C nginx --no-heading|wc -l`

        if [ $n2 -eq "0"  ]; then

                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log

                systemctl stop keepalived

        fi

fi


给脚本755权限

启动服务

技术分享图片

主上配置完毕,注意selinux和firewalld


131编辑配置文件,模板:

global_defs {

   notification_email {

     aming@aminglinux.com

   }

   notification_email_from root@aminglinux.com

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}


vrrp_script chk_nginx {

    script "/usr/local/sbin/check_ng.sh"

    interval 3

}


vrrp_instance VI_1 {

    state BACKUP

    interface ens33

    virtual_router_id 51

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass aminglinux>com

    }

    virtual_ipaddress {

        192.168.188.100

    }


    track_script {

        chk_nginx

    }


}


编辑监控脚本:

#时间变量,用于记录日志

d=`date --date today +%Y%m%d_%H:%M:%S`

#计算nginx进程数量

n=`ps -C nginx --no-heading|wc -l`

#如果进程为0,则启动nginx,并且再次检测nginx进程数量,

#如果还为0,说明nginx无法启动,此时需要关闭keepalived

if [ $n -eq "0" ]; then

        systemctl start nginx

        n2=`ps -C nginx --no-heading|wc -l`

        if [ $n2 -eq "0"  ]; then

                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log

                systemctl stop keepalived

        fi

fi



测试:

先确定好两台机器上nginx差异,比如可以通过curl -I 来查看nginx版本

 测试1:关闭master上的nginx服务

 测试2:在master上增加iptabls规则 

 iptables -I OUTPUT -p vrrp -j DROP

 测试3:关闭master上的keepalived服务

 测试4:启动master上的keepalived服务


2018-7-3

原文:http://blog.51cto.com/13646170/2140108

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!