Keepalived高可用软件概述:
1)互联网主要的高可用软件:Keepalived、Hearttbeat、其中Keepalived是轻量级的,Keepalived是一款开源、免费的实现网站、数据库、业务系统之间的高可用软件,是目前企业中使用最广泛的软件。
 
2)Keepalived实现高可用,主要考两个功能实现:
  • 健康检查:
Keepalived可以去检查后端nginx、MySQL、NFS、redis、服务器的运行状态,具体可以类似交换机制 3层(网络层ping)、4层(传输层:telnet port)、7层(应用层:URL、HTTP、FTP)检查。
  • VRRP技术:
Keepalived可以使用VRRP(虚拟路由器冗余技术),可以将两台物理机封装称为路由器集群,根据优先级选举产生master和backup,成为master的路由器(主机)会产生VIP地址,并且由VIP地址(路由器)负责用户的请求或者路由转发。
 
成为master的路由器(主机)之后,会定时向集群内部组发送组播信息(包),backup接收到组播信息之后,会认为master还是存活的,此时不会参与竞选或者抢占为master,没有收到组播包之后会参与集群内部竞选,竞选通常是以优先级来决定,优先级高则为master,低则为backup。
 
3)
 
4)配置Keepalived,两台服务器keepalived.conf常用内容如下:
! Configuration File for keepalived
global_defs {
notification_email {
support@jfedu.net
}
notification_email_from wgkgood@163.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
} vrrp_script chk_nginx {
script "/data/sh/check_nginx.sh"
interval 2
weight 2
}
# VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 151
priority 100
advert_int 5
nopreempt
authentication {
auth_type PASS
auth_pass 1111 }
virtual_ipaddress {
192.168.0.198
}
track_script {
chk_nginx
}
}
5)配置文件参数详解:
完整的keepalived的配置文件,其配置文件keepalived.conf可以包含三个文本块:全局定义块、VRRP实例定义块机虚拟服务器定义块。全局定义块和虚拟服务器定义块是必须的,如果在只有一个负载均衡器的场合,就不需要VRRP实例定义块。
 
#全局定义块:
! Configuration File for keepalived               # !改行表示注释;
global_defs {
notification_email { # 指定keepalived在发生切换时需要发送email到的对象,一行一个;
support@jfedu.net
}
notification_email_from wgkgood@163.com # 指定发件人;
smtp_server 127.0.0.1 # 指定smtp服务器地址;
smtp_connect_timeout 30 # 指定smtp连接超时时间;
router_id LVS_DEVEL # 运行keepalived机器的标识;
}

#监控nginx进程:

vrrp script chk_nginx {
script "/data/script/nginx.sh" # 监控服务脚本路径,脚本需要有x执行权限;
interval 2 # 检测时间隔(执行脚本间隔);
weight 2
}

#VRRP实例定义块:

vrrp sync group VG_1{                           # 监控多个网段的实例;
group{
VI_1 # 实例名;
VI_2
}
notify master /data/sh/nginx.sh # 指定当时切换到master时,执行脚本;
notify backup /data/sh/nginx.sh # 指定当时切换到backup时,执行脚本;
notify /data/sh/nginx.sh # 发生任何切换,均执行的脚本;
smtp alert; # 使用global defs中提供的邮件地址和smtp服务器发送邮件通知;
} vrrp instance VI_1{
state BACKUP # 设置主机状态;
MASTER/BACKUP
nopreempt # 设置为不抢占;
interface ens33 # 对外提供服务的网络接口;
lvs sync daemon interface ens33 # 负载均衡器之间监控接口;
track interface { # 设置额外的监控,网卡出现问题都会切换;
ens33
eth0
}
macast src ip # 发送多播包的地址,如果不设置默认使用绑定网卡的primary ip;
garp master delay # 在切换到master状态后,延迟进行gratuitous ARP请求;
virtual router id 50 # VRID标记,路由ID可通过#tcpdump vrrp查看;
priority 90 # 优先级,高优先级竞选为master;
advert int 5 # 检查间隔,默认5秒;
preempt delay # 抢占延时,默认5秒;
debug # debug日志级别;
authentication { # 设置认证;
auth type PASS # 认证方式;
auth pass 1111 # 认证密码;
}
track script{ # 以脚本为监控;
chk nginx;
chk_nginx
}
virtual ipaddress { #设置vip
192.168.1.188
}
}

注意: 使用了脚本监控nginx或者MySQL,不需要如下虚拟服务器设置块。
#全局定义块:

virtual server 192.168.1.188 3306 {
delay loop 6 # 健康检查时间间隔;
lb_algo rr # 调度算法rr|wrr|lc|wlc|lblc|sh|dh;
lb kind DR # 负载均衡转发规则 ;
NAT|DR|TUN
persistence timeout 5 # 会话保持时间;
porsistence TCP # 使用的协议;
real server 192.168.1.199 3306 {
weight 1 # 默认为1,0为失效;
notify up <string> | <quoted-string> # 在检测到server up后执行脚本;
notify down <string> | <quoted-string> # 在检测到server down后执行脚本;
TCP_CHECK {
        connect_timeout 3 # 连接超时时间;
 nb_get_retry  1      # 重连次数;
               delay_before_retry 1  # 重连间隔时间;
               connect_port 3306  # 健康检查的端口;
               }
       HTTP_GET {   
       url  {
          path /index.html        # 检测url,可写多个
          digest  24326582a86bee478bac72d5af25089e    # 检测效验码;
          genhash -s IP -p 80 -u http://IP/index.html # digest效验码获取方法:
          status_code 200         # 检测返回http状态码
}
}
}

查看日志:

tail -fn 30 /var/log/messages

Keepalived高可用软件概述的更多相关文章

  1. Keepalived高可用软件的安装与配置

    监听和替换多台服务器之间的来回切换 一.安装tar zxvf keepalived-1.1.15.tar.gzcd keepalived-1.1.15./configure --prefix=/usr ...

  2. Linux实战教学笔记31:Keepalived高可用集群应用实践

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

  3. 企业级Nginx负载均衡与keepalived高可用实战(二)keepalived篇

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

  4. Keepalived高可用服务器案例

    部署Keepalived高可用软件,实现如下: - 使用Keepalived实现web服务器的高可用 - Web服务器IP地址分别为192.168.4.100和192.168.4.200 - Web服 ...

  5. Cluster基础(三):配置HAProxy负载平衡集群、Keepalived高可用服务器、Keepalived+LVS服务器

    一.配置HAProxy负载平衡集群 目标: 准备三台Linux服务器,两台做Web服务器,一台安装HAProxy,实现如下功能: 客户端访问HAProxy,HAProxy分发请求到后端Real Ser ...

  6. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

  7. LVS+Keepalived 高可用群集部署

    LVS+Keepalived 高可用群集部署 1.LVS+Keepalived 高可用群集概述 2.LVS+Keepalived高可用群集部署 1.LVS+Keepalived 高可用群集概述: LV ...

  8. 高可用软件Keepalived

    关于高可用软件Keepalived的使用及配置请参见:http://www.voidcn.com/blog/9124573/article/p-5990263.html

  9. Linux下实现高可用软件-Keepalived基础知识梳理

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

  10. 一次 Keepalived 高可用的事故,让我重学了一遍它!

    原文首发: 你好,我是悟空. 前言 上次我们遇到了一个 MySQL 故障的事故,这次我又遇到了另外一个奇葩的问题: Keepalived 高可用组件的虚拟 IP 持续漂移,导致 MySQL 主从不断切 ...

随机推荐

  1. 6月有奖征文挑战,ZEGO开发者社区首季活动报名入口!

    前 言 哈喽 开发者们: ZEGO即构科技作为一家20年技术积累的音视频云服务商,已经为全球200+个国家的企业服务,单日通话时长突破30亿+分钟,现下即构开发者社区举办首期征文活动!本次征文活动围绕 ...

  2. 河南省CCPC大学生程序设计竞赛赛后总结yy

    这次的ccpc总体来说,取得的成绩并不理想,首先是题目解决的数量较少,其次是罚时太多了.开始也是找到了签到题,按理说应该不难拿下,虽然大家解决这道签到题都不是很快,但是我们小队在比赛已经过去两个小时左 ...

  3. SketchUp Pro 2023 下载和安装教程

    SketchUp Pro 2023 下载和安装教程 下载链接 123云盘:https://www.123pan.com/s/JyAKVv-NTXB.html 安装教程 演示操作系统:Windows 1 ...

  4. 【Azure Event Hub】Event Hub的Process Data页面无法通过JSON格式预览数据

    问题描述 在Event Hub的门户页面中,可以通过Process Data页面查看Event Hub中的数据,但是当使用JSON格式预览时(View in JSON),却出现错误. 消息一: No ...

  5. Postgresql: 常用配置

    允许远程链接postgresql 要允许 PostgreSQL 数据库允许远程连接,需要进行以下配置步骤: 打开 PostgreSQL 的主配置文件 postgresql.conf.通常,该文件位于以 ...

  6. 如何操作(增、删、改、查)常见的 HTML 元素呢?(包含原生 js 和 JQuery 语法对照)

    一.通用的操作示例 1.查询 根据 id 查询(结果为单个对象) // 原生 js 写法 var elementobj = document.getElementById("elementi ...

  7. 好用的css3特性-动画和3d变换

    上一篇文章总结了过渡和2D变化,这一篇来总结一下动画和3D变换,动画可用的场景也很多,比如在加载的页面的时候,可以放置一个gif图,也可以自定义小动画来缓解用户等待的焦虑感,比如以下三个小圆圈转圈圈的 ...

  8. redis数据持久化之RDB和AOF

    前言 redis虽然是内存缓存程序,但是可以将内存中的数据保存到硬盘上,从而实现数据保存.目前有两种redis数据持久化方式,分别是RDB和AOF. RDB模式 RDB之简介 RDB(redis da ...

  9. .NET Core多线 (5) 常见性能问题

    合集:.NET Core多线程温故知新 .NET Core多线程(1)Thread与Task .NET Core多线程(2)异步 - 上 .NET Core多线程(3)异步 - 下 .NET Core ...

  10. vue中使用Tinymce

    1.安装tinymce编辑器 npm i tinymcenpm i @tinymce/tinymce-vue 或: yarn add tinymce yarn add @tinymce/tinymce ...