13916729435 发表于 2018-12-30 11:56:49

keepalived 配置文件解析

keepalived 配置文件解析
  什么是keepalived?
http://baike.baidu.com/link?url=BJL-qbgDBRqciYuZn_kmdoOaDRUSPq1EHBkuAEMhAzuOAr0gzMl9szgmi4BSxw8hQMJ-cWSiDLaT6_o1XnvkIK  keepalived原理
  keepalived是模块化设计,不同模块负责不同功能,其组件主要包括:
core    #core是keepalived的核心,负责主进程的启动和维护全局配置文件的加载解析等;
check   #负责healthchecker(健康检查),包括各种健康检查方式以及对应的配置的解析(包括LVS的配置解析)
vrrp    #VRRPD子进程,实现vrrp协议
libipfwc #iptables(ipchains)库配置LVS会用到
libipvs #配置LVS会用到  keepalived进程
父进程:内存管理、子进程管理等等
子进程:VRRP子进程
子进程:healthchecker子进程  Keepalived配置文件
  主要包括三类区域:全局配置、VRRPD配置、LVS配置
  全局配置:包含全局定义和静态路由配置
  全局定义:

# Configuration File for keepalived
global_defs {      #全局配置标识
    notification_email {
      admin@domain.com    #定义邮件发送地址
      0633225522@domain.com
    }
    notification_email_from keepalived@domain.com #发送邮件用户
    smtp_server 192.168.200.20    #SMTP server 地址
    smtp_connect_timeout 30    #SMTP server重连时间
    lvs_id LVS_MAIN    #LVS 服务器名
}  静态路由配置:
static_ipaddress
{
192.168.1.1/24 brd + dev eth0 scope global    #设置eth0的ip地址
192.168.1.2/24 brd + dev eth1 scope global    #设置eth1的ip地址
}
static_routes
{
src $SRC_IP to $DST_IP dev $SRC_DEVICE
src $SRC_IP to $DST_IP via $GW dev $SRC_DEVICE
}  这里实际上就是给服务器配置真实的IP地址和路由的,一般这个区域不需要配置

  VRRPD包括:VRRP同步组、VRRP实例、VRRP脚本
  VRRP同步组(synchroization group)配置范例

vrrp_sync_group VG_1 {
group {      
http      #http和mysql是实例名和下面的实例名一致
mysql
}
notify_master /path/to/to_master.sh #notify_master /path/to/to_master.sh:表示当切换到master状态时,要执行的脚本
notify_backup /path_to/to_backup.sh    #notify_backup /path_to/to_backup.sh:表示当切换到backup状态时,要执行的脚本
notify_fault "/path/fault.sh VG_1"
notify /path/to/notify.sh
smtp_alert    #切换时给global defs中定义的邮件地址发送邮件通知
}  VRRP实例(instance)配置范例:
vrrp_instance http {
    state MASTER    #角色,结合优先级设定
    interface eth0    #VIP工作接口
    dont_track_primary    #忽略VRRP的interface错误
    track_interface {    #设置跟踪接口,也就是对网卡接口进行健康检查
      eth0
      eth1
    }
    mcast_src_ip   #发送多播数据包时的源IP地址,相当于heartbeat的心跳端口,如果没有设置那么就用默认的绑定的网卡的IP,也就是interface指定的IP地址
    garp_master_delay 10    #在切换到master状态后,延迟进行ARP(gratuitous ARP)请求
    virtual_router_id 51    #这里设置VRID,这里非常重要,相同的VRID为一个组,将决定多播的MAC地址
    priority 100    # 优先级,优先级高的为master
    advert_int 1    # 检查间隔,默认为1秒
    authentication {    #认证设置
    auth_type PASS    #认证类型:包括pass和AH两种
    autp_pass 1234    #认证密码
}
    virtual_ipaddress {    #VIP地址设置
      #/ brddevscopelabel
      192.168.200.17/24 dev eth1
      192.168.200.18/24 dev eth2 label eth2:1
    }
    virtual_routes {    #虚拟路由,与VIP一起工作,
      # src / via|gwdevscopetab
      src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1
      192.168.110.0/24 via 192.168.200.254 dev eth1
      192.168.111.0/24 dev eth2
      192.168.112.0/24 via 192.168.100.254
    }
    nopreempt    #不抢占模式,只能设置在state和backup上,而且这个节点优先级必须比别的高
    preemtp_delay 300    #抢占延迟
    debug    #debug级别
    notify master    #和sync group里面设置一样,可以设置不同实例通知不同管理人员
}  VRRP脚本

vrrp_script check_running {   #脚本运行设置
   script "/usr/local/bin/check_running"    #设置脚本路径
   interval 10    #脚本执行间隔
   weight 10    #脚本结果导致优先级变更:10表示优先级+10;-10表示优先级-10
}
vrrp_instance http {    #定义实例
   state BACKUP
   smtp_alert
   interface eth0
   virtual_router_id 101
   priority 90
   advert_int 3
   authentication {
   auth_type PASS
   auth_pass whatever
   }
   virtual_ipaddress {
   1.1.1.1
   }
   track_script {
   check_running weight 20    #调用脚本
   }
}  LVS配置:
#负载均衡服务
virtual_server 192.168.200.15 80 {    #指定192.168.200.15的http服务
    delay_loop 30            #每个30秒检查一次real_server状态
    lb_algo wrr      #LVS算法
    lb_kind NAT      #LVS模式
    persistence_timeout 50    #每个TCP会话连接保持时间为50s
    protocol TCP      #使用TCP协议
    sorry_server 192.168.100.100 80 #当real_server出现问题时切换到sorry_server
    real_server 192.168.100.2 80 {    #负载均衡real_server 1
      weight 2      #权重,算法采用的是加权轮询算法,因此需要配置权重
      HTTP_GET {      #http请求
            url {
                path /testurl/test.jsp
                digest ec90a42b99ea9a2f5ecbe213ac9eba03
                }
            url {
                path /testurl2/test.jsp
                digest 640205b7b0fc66c1ea91c463fac6334c
                }
            connect_timeout 3    #连接超时时间
            nb_get_retry 3    #重连次数
            delay_before_retry 2    #重连间隔时间
      }
    }  部分参考博客“王者之心”:http://www.cnblogs.com/pricks/p/3822232.html
  持续更新中……




页: [1]
查看完整版本: keepalived 配置文件解析