设为首页 收藏本站

运维网

查看: 2279|回复: 3

[经验分享] keepalived配置高可用集群

  [复制链接]

尚未签到

发表于 2018-4-10 15:12:04 | 显示全部楼层 |阅读模式
准备工作

分别在主从上安装keepalived和nginx
yum install -y keepalived
yum install -y nginx
关闭主从上的防火墙和SELinux
systemctl stop firewalld
setenforce 0
配置主机

查看主机ip

[iyunv@lynn-04 ~]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.130.116  netmask 255.255.255.0  broadcast 192.168.130.255
        inet6 fe80::181c:4847:3f62:dc4c  prefixlen 64  scopeid 0x20
        ether 00:0c:29:60:ed:4a  txqueuelen 1000  (Ethernet)
        RX packets 11701  bytes 10394449 (9.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13559  bytes 972155 (949.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1  (Local Loopback)
        RX packets 86  bytes 6720 (6.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 86  bytes 6720 (6.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

清空主上keepalived配置文件/etc/keepalived/keepalived.conf

[iyunv@lynn-04 ~]# > /etc/keepalived/keepalived.conf

编辑主上配置文件/etc/keepalived/keepalived.conf

[iyunv@lynn-04 ~]# vim /etc/keepalived/keepalived.conf

加入以下内容:

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.130.100
    }
    track_script {
        chk_nginx
    }
}

定义主上监控脚本/usr/local/sbin/check_ng.sh

[iyunv@lynn-04 ~]# vim /usr/local/sbin/check_ng.sh

写入下面内容

#!/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

更改主上/usr/local/sbin/check_ng.sh权限

[iyunv@lynn-04 ~]# chmod 755 /usr/local/sbin/check_ng.sh

启动主上keepalived

[iyunv@lynn-04 ~]# systemctl start keepalived
[iyunv@lynn-04 ~]# ps aux |grep keepalived
root       1741  0.0  0.1 120740  1404 ?        Ss   10:46   0:00 /usr/sbin/keepalived -D
root       1742  0.0  0.3 127476  3260 ?        S    10:46   0:00 /usr/sbin/keepalived -D
root       1745  0.0  0.3 131780  3116 ?        S    10:46   0:00 /usr/sbin/keepalived -D
root       1799  0.0  0.0 112676   988 pts/0    S+   10:47   0:00 grep --color=auto keepalived

为了区分主从的nginx需要把nginx的默认页做个标记

[iyunv@lynn-04 ~]# echo master > /data/wwwroot/default/index.html

在另一台机器使用从ip访问
得到下面结果

[iyunv@lynn-02 ~]# curl 192.168.130.116
master

配置从机

查看从机ip

[iyunv@lynn-06 ~]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.130.128  netmask 255.255.255.0  broadcast 192.168.130.255
        inet6 fe80::fef6:fd37:2682:fabc  prefixlen 64  scopeid 0x20
        ether 00:0c:29:af:03:e8  txqueuelen 1000  (Ethernet)
        RX packets 45666  bytes 48434560 (46.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14753  bytes 1287938 (1.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1  (Local Loopback)
        RX packets 80  bytes 6256 (6.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 80  bytes 6256 (6.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

清空从上配置文件/etc/keepalived/keepalived.conf

[iyunv@lynn-06 ~]# > /etc/keepalived/keepalived.conf

编辑从上配置文件/etc/keepalived/keepalived.conf

[iyunv@lynn-06 ~]# vim /etc/keepalived/keepalived.conf

加入下面内容

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.130.100
    }
    track_script {
        chk_nginx
    }
}

定义从上监控脚本/usr/local/sbin/check_ng.sh

[iyunv@lynn-06 ~]# vim /usr/local/sbin/check_ng.sh

加入下面内容

#时间变量,用于记录日志
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

更改从上/usr/local/sbin/check_ng.sh权限

[iyunv@lynn-06 ~]# chmod 755 /usr/local/sbin/check_ng.sh

启动从上keepalived

[iyunv@lynn-06 ~]# systemctl start keepalived
[iyunv@lynn-06 ~]# ps aux |grep keepalived
root       3589  0.0  0.1 120740  1400 ?        Ss   11:03   0:00 /usr/sbin/keepalived -D
root       3590  0.0  0.3 127476  3260 ?        S    11:03   0:00 /usr/sbin/keepalived -D
root       3591  0.0  0.3 131780  3124 ?        S    11:03   0:00 /usr/sbin/keepalived -D
root       3680  0.0  0.0 112676   988 pts/0    S+   11:03   0:00 grep --color=auto keepalived

为了区分主从的nginx需要把nginx的默认页做个标记

[iyunv@lynn-06 ~]# echo backup > /usr/share/nginx/html/index.html

在另一台机器使用从ip访问
得到下面结果

[iyunv@lynn-02 ~]# curl 192.168.130.128
backup

测试高可用

首先在主从keepalived都开启的情况
下查看得到vip在主机上 使用另一台机器通过vip访问得到master
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
然后在主机keepalived关闭的情况下查看得到vip在从机上 使用另一台机器通过vip访问得到backup
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
再次开启主机的keepalived情况下查看得到vip又回到主机上 使用另一台机器通过vip访问得到master
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@yunvn.com 网址:www.iyunv.com

点击关注更多内容

累计签到:1 天
连续签到:1 天
发表于 2018-6-12 17:23:05 | 显示全部楼层
不是吧不能看

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

累计签到:34 天
连续签到:1 天
发表于 2018-10-17 13:40:02 | 显示全部楼层
很详细,谢谢分享!

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@yunvn.com 网址:www.iyunv.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

 
 
客服QQ:
点击这里给我发消息
客服邮箱:
kefu@yunvn.com
运维网交流群②:
运维网交流群②
运维网交流群⑤:
运维网交流群⑤
运维网交流群⑥:
运维网交流群⑥
工作时间:
8:00-18:00
 
扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2020

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up


客服E-mail:kefu@yunvn.com 在线客服QQ:点击这里给我发消息


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud bjyun

快速回复 返回顶部 返回列表