Keepalived简介

Keepalived基于VRRP协议在服务器之间建立了主备关系,通常称之为高可用对。VRRP中文叫虚拟路由冗余协议,目的是解决静态路由的单点故障问题。高可用对之间通过IP多播的方式进行通信,通过竞争机制确定主备关系,优先级高的为主服务器,主服务优先获得资源提供服务,备服务器处于等待状态,主节点不断向备节点发送VRRP数据包,当主服务器宕机时,备节点接收不到数据包,于是接管所有资源(VIP),对外提供服务。VRRP实现了主备关系建立和高可用对之间的故障切换,VIP实现了IP地址的热迁移,无需重启网卡,从而使得切换更加迅速。

安装Keepalived

yum install keepalived -y
rpm -qa keepalived

单实例VIP自动漂移

===lb01===

vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
notification_email {
asdftttt@163.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lb01
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 55
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.12/24 dev eth0 label eth0:1
}
} /etc/init.d/keepalived start
ip addr | grep 10.0.0.12 ===lb02=== vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs {
notification_email {
asdftttt@163.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lb02
} vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 55
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.12/24 dev eth0 label eth0:1
}
} /etc/init.d/keepalived start
ip addr | grep 10.0.0.12

备份服务器创建裂脑检测脚本

裂脑指的是主备服务器上同时存在相同的VIP,原因通常是线路或防火墙导致的无法通信,备份服务器收不到主服务器发送的VRRP数据包即心跳信息,于是接管了服务。

vim /server/scripts/check_split_brain.sh

#!/bin/bash
#原理:Ping主节点,如果Master没有宕机而Slave出现了VIP,发送裂脑警告。
#收到警告后第一时间查看Master中Keepalived服务是否正常。
#有可能只是keepalived服务宕掉了
lb01_vip=10.0.0.12
lb01_ip=172.16.1.5
while true
do
ping -c 2 -W 3 $lb01_ip &> /dev/null
if [ $? -eq 0 -a `ip addr | grep "$lb01_vip" | wc -l` -eq 1 ];then
echo "ha is split brain.warning"
else echo "ha is ok"
fi
sleep 5
done 这个脚本的局限在于当线路问题导致裂脑时,该脚本无法判断,最好在监控服务器上也进行监控

配置Keepalived和服务相关联

vim /server/scripts/chk_nginx_proxy.sh

#!/bin/bash
#keepalived通常只针对服务器,不针对服务,该脚本解决此问题
#当nginx proxy停止,keepalived也停止
if [ `netstat -nutlp | grep nginx | wc -l` -ne 1 ];then
/etc/init.d/keepalived stop
fi chmod u+x /server/scripts/chk_nginx_proxy.sh vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs {
notification_email {
asdftttt@163.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lb01
} vrrp_script chk_nginx_proxy {
script "/server/scripts/chk_nginx_proxy.sh"
interval 2
weight 2
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 55
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.12/24 dev eth0 label eth0:1
}
track_script {
chk_nginx_proxy
}
} /etc/init.d/keepalived reload
/application/nginx/sbin/nginx -s stop
/etc/init.d/keepalived status

配置多播地址

同一网段有多个高可用对,需要配置不同的多播地址

vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
notification_email {
asdftttt@163.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lb01
vrrp_mcast_group4 224.0.0.19
}

配置指定文件记录日志

vim /etc/sysconfig/keepalived 

KEEPALIVED_OPTIONS="-D -d -S 0"
#-D 详细日志 -d 导出备份 -S 0 指定syslog设备为local0 vim /etc/rsyslog.conf 42 *.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
81 local0.* /var/log/keepalived.log /etc/init.d/rsyslog restart

Keepalived高可用配置的更多相关文章

  1. 双主MySQL+keepalived高可用配置

    部署双节点双主数据库服务器mysql 分别在二台服务器上安装mysql,要求同版本或主服务器比从服务器版本高. 主机mysql配置: Vi /etc/my.cnf [mysqld] Log-bin=m ...

  2. Haproxy+Keepalived高可用配置

    基本实验 参考文档 博文地址 环境拓扑 下面使我们要实现的负载均衡集群图示 主节点地址: 92.0.0.11 从节点地址: 92.0.0.12 共享虚拟地址:92.0.0.8 下面是负载均衡集群可能出 ...

  3. Nginx+keepalived高可用配置实战(内附彩蛋)

    1.整体架构图如下 2.环境准备 今天所配置的是keepalived+nginx 的负载均衡 下载keepalived软件 [root@LB01 tools]# wget http://www.kee ...

  4. keepalived高可用配置注意事项

    安装注意事项: 1.关闭防火墙或者打开防火墙vrrp协议的通过,centos6 和centos7打开方式不同 2.一定要关闭防火墙 3.配置完成后重启网卡和keepalived服务 4.日志:/var ...

  5. MySQL+Keepalived高可用配置

    注意:首先关闭两台机器的防火墙 setenforce 0 Environment: 2台CentOS测试机器  安装好MySQL 1.两台机器安装keepalived yum -y install k ...

  6. keepalived 高可用配置

    下载地址:http://www.keepalived.org/software/keepalived-1.2.12.tar.gzht 安装方法:1. ./configure 可能出现的错误 !!! O ...

  7. nginx Keepalived高可用集群

    一.Keepalived高可用 1.简介 Keepalived软件起初是专为LvS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此, ...

  8. MariaDB+Keepalived双主高可用配置MySQL-HA

    利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟VIP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. ...

  9. keepalived高可用简介与配置

    keepalived简介 keepalived介绍 Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP ...

随机推荐

  1. Python 编程实战提高测试工作效率实例之svn 文件管理

    #coding=utf-8 ''' Created on 2016年8月22日 @author:Tom Gao ''' importre importos importtime "" ...

  2. HDOJ.2111 Saving HDU (贪心)

    Saving HDU 点我挑战题目 题意分析 给出来背包容量v和物品数量n,接下来n行分别给出每个商品单位体积的价值和物品总共的体积(注意是单位体积,不是每个物品).求出最多能装多少价值的物品. 典型 ...

  3. PowerDesigner 技巧【1】

    Name与Code同步的问题: PowerDesigner中,修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名. 解决方法如下: 1.选 ...

  4. Linux服务器上nginx安装的完整步骤

    1.环境准备: 服务器系统版本:CentOS 6.5 nginx软件版本:nginx-1.13.9 2.资源准备: nginx下载地址:http://nginx.org/download/nginx- ...

  5. Educational Codeforces Round 48 (Rated for Div. 2) CD题解

    Educational Codeforces Round 48 (Rated for Div. 2) C. Vasya And The Mushrooms 题目链接:https://codeforce ...

  6. HDU4685:Prince and Princess(二分图匹配+tarjan)

    Prince and Princess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Othe ...

  7. POJ 3984 BFS

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20665   Accepted: 12100 Descriptio ...

  8. XSS攻击处理方案

    1. XSS攻击基本概念 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端脚本.攻击者利用XSS漏洞 ...

  9. WPF DataGrid、ListView 简单绑定

    DataGrid运行效果: xaml 代码: DataGridName= dtgData ItemsSource= {Binding} AutoGenerateColumns= False DataG ...

  10. jQuery图表插件Flot中文文档

    转载自:http://www.itivy.com/ivy/archive/2011/6/4/jquery-flot-chinese-doc.html 最近正在使用JQuery的flot进行画图,但是这 ...