keepalive配置文件详解
第一部分:全局定义块
1、email通知。作用:有故障,发邮件报警。
2、Lvs负载均衡器标识(lvs_id)。在一个网络内,它应该是唯一的。
3、花括号“{}”。用来分隔定义块,因此必须成对出现。如果写漏了,keepalived运行时,不会得到预期的结果。由于定义块内存在嵌套关系,因此很容易遗漏结尾处的花括号,这点要特别注意。
global_defs {
notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个
sysadmin@fire.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #指定发件人
smtp_server localhost #指定smtp服务器地址
smtp_connect_timeout #指定smtp连接超时时间
router_id LVS_DEVEL #运行keepalived机器的一个标识
}
第二部分:vrrp_sync_group作用:确定失败切换(FailOver)包含的路由实例个数。即在有2个负载均衡器的场景,一旦某个负载均衡器失效,需要自动切换到另外一个负载均衡器的实例是哪些? 实例组group{}至少包含一个vrrp实例
vrrp_sync_group VG_1{ #监控多个网段的实例
group {
VI_1 #实例名
VI_2
......
}
notify_master /path/xx.sh #指定当切换到master时,执行的脚本
netify_backup /path/xx.sh #指定当切换到backup时,执行的脚本
notify_fault "path/xx.sh VG_1" #故障时执行的脚本
notify /path/xx.sh
smtp_alert #使用global_defs中提供的邮件地址和smtp服务器发送邮件通知
}
第三部分:vrrp_instance,实例名出自实例组group所包含的那些名字。
vrrp_instance VI_1 {
state BACKUP #指定那个为master,那个为backup,如果设置了nopreempt这个值不起作用,主备考priority决
定
interface eth0 #设置实例绑定的网卡
dont_track_primary #忽略vrrp的interface错误(默认不设置)
track_interface{ #设置额外的监控,里面那个网卡出现问题都会切换
eth0
eth1
}
mcast_src_ip #发送多播包的地址,如果不设置默认使用绑定网卡的primary ip
garp_master_delay #在切换到master状态后,延迟进行gratuitous ARP请求
virtual_router_id #VPID标记
priority #优先级,高优先级竞选为master
advert_int #检查间隔,默认1秒
nopreempt #设置为不抢占 注:这个配置只能设置在backup主机上,而且这个主机优先级要比另外一台高
preempt_delay #抢占延时,默认5分钟
debug #debug级别
authentication { #设置认证
auth_type PASS #认证方式
auth_pass #认证密码
}
virtual_ipaddress { #设置vip
192.168.202.200
}
}
第四部分:
虚拟服务器virtual_server定义块 ,虚拟服务器定义是keepalived框架最重要的项目了,是keepalived.conf必不可少的部分。 该部分是用来管理LVS的,是实现keepalive和LVS相结合的模块。ipvsadm命令可以实现的管理在这里都可以通过参数配置实现,注意:real_server是被包含在viyual_server模块中的,是子模块。
virtual_server 192.168.202.200 { //VIP地址,要和vrrp_instance模块中的virtual_ipaddress地址一致
delay_loop #健康检查时间间隔
lb_algo rr #lvs调度算法rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #负载均衡转发规则NAT|DR|RUN
persistence_timeout #会话保持时间
protocol TCP #使用的协议
persistence_granularity <NETMASK> #lvs会话保持粒度
virtualhost <string> #检查的web服务器的虚拟主机(host:头)
sorry_server<IPADDR> <port> #备用机,所有realserver失效后启用 real_server 192.168.200.5 { //RS的真实IP地址
weight #默认为1,0为失效
inhibit_on_failure #在服务器健康检查失效时,将其设为0,而不是直接从ipvs中删除
notify_up <string> | <quoted-string> #在检测到server up后执行脚本
notify_down <string> | <quoted-string> #在检测到server down后执行脚本 TCP_CHECK { //常用
connect_timeout #连接超时时间
nb_get_retry #重连次数
delay_before_retry #重连间隔时间
connect_port 健康检查的端口的端口
bindto <ip>
}
HTTP_GET | SSL_GET{ //不常用
url{ #检查url,可以指定多个
path /
digest <string> #检查后的摘要信息
status_code #检查的返回状态码
}
connect_port <port>
bindto <IPADD>
connect_timeout
nb_get_retry
delay_before_retry
} SMTP_CHECK{ //不常用
host{
connect_ip <IP ADDRESS>
connect_port <port> #默认检查25端口
bindto <IP ADDRESS>
}
connect_timeout
retry
delay_before_retry
helo_name <string> | <quoted-string> #smtp helo请求命令参数,可选
}
MISC_CHECK{ //不常用
misc_path <string> | <quoted-string> #外部脚本路径
misc_timeout #脚本执行超时时间
misc_dynamic #如设置该项,则退出状态码会用来动态调整服务器的权重,返回0 正常,不修改;返回1, 检查失败,权重改为0;返回2-,正常,权重设置为:返回状态码-
}
}
生产环境配置文件实例:
[root@LB2 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs {
notification_email {
@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 10.0.0.1
smtp_connect_timeout
router_id LVS_2
} vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.220.110/
} virtual_server 192.168.220.110 {
delay_loop
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout
protocol TCP
} real_server 192.168.220.129 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
} real_server 192.168.220.138 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}
[root@LB2 ~]#
为keepalive指定日志文件
默认keepalive的日志文件是
/var/log/messages
[root@LB2 ~]# tail - /var/log/messages
Dec :: LB2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
Dec :: LB2 Keepalived_vrrp: VRRP sockpool: [ifindex(), proto(), fd(,)]
Dec :: LB2 Keepalived_healthcheckers: Opening file '/etc/keepalived/keepalived.conf'.
Dec :: LB2 Keepalived_healthcheckers: Configuration is using : Bytes
Dec :: LB2 Keepalived_healthcheckers: Using LinkWatch kernel netlink reflector...
[root@LB2 ~]#
修改配置
[root@LB2 ~]# vim /etc/sysconfig/keepalived
......
#KEEPALIVED_OPTIONS="-D" //注释掉该行
KEEPALIVED_OPTIONS="-D -d -S 0" //添加改行
......
[root@LB2 ~]# vim /etc/rsyslog.conf
......
local0.* /var/log/keepalived.log //添加改行
[root@LB2 ~]# /etc/init.d/rsyslog restart //重启日志服务
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
[root@LB2 ~]# /etc/init.d/keepalived restart //重启keepalive服务
Stopping keepalived: [ OK ]
Starting keepalived: [ OK ]
[root@LB2 ~]# tail - /var/log/keepalived.log
Dec :: LB2 Keepalived_vrrp: Virtual IP =
Dec :: LB2 Keepalived_vrrp: 192.168.220.110/ brd 192.168.220.110 dev eth0 scope global
Dec :: LB2 Keepalived_vrrp: Using LinkWatch kernel netlink reflector...
Dec :: LB2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
Dec :: LB2 Keepalived_vrrp: VRRP sockpool: [ifindex(), proto(), fd(,)]
[root@LB2 ~]#
keepalive配置文件详解的更多相关文章
- (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)
LAMP搭建之二:apache配置文件详解(中英文对照版) # This is the main Apache server configuration file. It contains the # ...
- 【转】nginx服务器安装及配置文件详解
原文:http://seanlook.com/2015/05/17/nginx-install-and-config/ nginx服务器安装及配置文件详解 nginx在工作中已经有好几个环境在使用了, ...
- Haproxy均衡负载部署和配置文件详解
HAproxy均衡负载部署和配置文件详解 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G ...
- haproxy 安装与配置文件详解
本文主要阐述haproxy的安装配置详解,对于它的概念,作用,功能,和其它LB软件的区别,优点,缺点等不再进行说明. 一. haproxy 的安装配置 # cat /etc/redhat-releas ...
- [转帖]nginx服务器安装及配置文件详解
nginx服务器安装及配置文件详解 http://seanlook.com/2015/05/17/nginx-install-and-config/ 发表于 2015-05-17 | 更新于: 2 ...
- httpd配置文件详解及实例
httpd配置文件详解及实例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.http协议的组成 http协议是C/S架构:我们可以把浏览器(如:IE,Firefox,Safar ...
- Linux:SSH服务配置文件详解
SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...
- SaltStack系列(一)之环境部署、命令及配置文件详解
一.SaltStack介绍 1.1 saltstack简介: saltstack是基于python开发的一套C/S架构配置管理工具,它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证 ...
- nginx高性能WEB服务器系列之四配置文件详解
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
随机推荐
- Struts2的概述和入门
忽如一夜春风来,千树万树梨花开 上节我们说到,JAVAEE的三层架构,即web层,service层,dao层.hibernate是应用在dao层的.而我们现在所学的Struts2是应用在web层.St ...
- 今日头条- iOS客户端 启动速度优化实践
版权声明 作者:今日头条iOS团队 原文:https://techblog.toutiao.com/2017/01/17/iosspeed/ 应用启动时间,直接影响用户对一款应用的判断和使用体验.头条 ...
- Android Studio 错误集
错误列表与解决方案: 1.Android studio Gradle project sync failed Android studio 构建项目出错 Error:Unable to start t ...
- Spark源码分析之Spark Shell(上)
终于开始看Spark源码了,先从最常用的spark-shell脚本开始吧.不要觉得一个启动脚本有什么东东,其实里面还是有很多知识点的.另外,从启动脚本入手,是寻找代码入口最简单的方法,很多开源框架,其 ...
- Array方法归类总结
数组的转换方法 valueOf()方法,数组调用该方法后返回的还是原来的数组. toString()方法,数组调用该方法后会调用每一项的toStirng()方法,之后将每一项拼接成一个以逗号分割的字符 ...
- node文件中的package.json文件解析
{ "name":"myejsapp", "version":"0.0.0", "private": ...
- 2013~2014年度 NOIP~GDOI总结
滚回去撸一年中考撸完之后就迎来了NOIP2013(话说初赛差点被坑了有木有= =)想想当年10月还是那样的天真的去了广州,结果就被虐成翔的回来了= =只做了三道签到题的渣渣就是弱= =DAY1T2死活 ...
- jQuery源码学习:Sizzle
本文所有讨论均基于jQuery版本3.1.1,官网http://jquery.com/. 一 简介 Sizzle是用javascript实现的CSS selector engine,官网见https: ...
- ThinkPHP5.0学习1 — 命名空间
定义命名空间:namespace sp1: 访问命名空间:\sp1\somefunction(); 非限定名称访问方式 //访问当前命名空间内容:somefunction(); 限定名称访问方 ...
- 网站Web业务架构从小到大演变
有一天,我突发奇想创建了一个站点,基于 LNMP 架构,起初只有我自己访问,后来因为我点儿正,访问量越来越大,所以最终导致下面的架构演变. 1.单台机器 单台机器因为只是一个小站,访问量一天也没有多少 ...