Keepalived配置文件详解

Keepalived的全局配置详解

Keepalived的配置文件都是以块(block)的形式组织的,每个块的内容都包含在{}中,以“#”和“!”开头的行都是注释。全局配置就是对整个Keepalived都生效的配置

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

[email protected]

}

notification_email_from [email protected]

smtp_server 192.168.1.100

smtp_connect_timeout 30

router_id LVS_DEVEL

}

notification_email用于设置报警邮件地址,可以设置多个,每行一个。注意,如果要开启邮件报警,需要开启本机的Sendmail服务。

notification_email_from用于设置邮件的发送地址。

smtp_server用于设置邮件的smtp server地址。

smtp_connect_timeout用于设置连接smtp server的超时时间。

router_id表示运行Keepalived服务器的一个标识,是发邮件时显示在邮件主题中的信息。

Keepalived的VRRPD配置详解

VRRPD配置又可分为VRRP同步组配置和VRRP实例配置。

下面是两个同步组的配置样例:

vrrp_sync_group G1 {

group {

VI_1

VI_2

VI_5

}

notify_backup "/usr/local/bin/vrrp.back arg1 arg2"

notify_master "/usr/local/bin/vrrp.mast arg1 arg2"

notify_fault "/usr/local/bin/vrrp.fault arg1 arg2"

}

vrrp_sync_group G2 {

group {

VI_3

VI_4

}

}

notify_master:指定当Keepalived进入Master状态时要执行的脚本,这个脚本可以是一个状态报警脚本,也可以是一个服务管理脚本。Keepalived允许脚本传入参数,因此灵活性很强。

notify_backup:指定当Keepalived进入Backup状态时要执行的脚本,同理,这个脚本可以是一个状态报警脚本,也可以是一个服务管理脚本。

notify_fault:指定当Keepalived进入Fault状态时要执行的脚本,脚本功能与前两个类似。

notify_stop:指定当Keepalived程序终止时需要执行的脚本。

VRRP实例的配置

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

mcast_src_ip <IPADDR>

garp_master_delay  10

track_interface {

eth0

eth1

}

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

#<IPADDR>/<MASK>  brd  <IPADDR>  dev <STRING>  scope <SCOPT>  label <LABEL>

192.168.200.16

192.168.200.17 dev eth1

192.168.200.18 dev eth2

}

virtual_routes {

#src  <IPADDR>  [to] <IPADDR>/<MASK>  via|gw  <IPADDR>  dev <STRING>  scope <SCOPE>

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

192.168.113.0/24 via 192.168.100.252 or 192.168.100.253

}

nopreempt

preemtp_delay  300

}

vrrp_instance是VRRP实例开始的标识,后跟VRRP实例名称。

state用于指定Keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器。

interface用于指定HA监测网络的接口。

virtual_router_id是虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识,即在同一个vrrp_instance下,MASTER和BACKUP必须是一致的。

priority用于定义节点优先级,数字越大表示节点的优先级就越高。在一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级。

advert_int用于设定MASTER与BACKUP主机之间同步检查的时间间隔,单位是秒。

mcast_src_ip用于设置发送多播包的地址,如果不设置,将使用绑定的网卡所对应的IP地址。

garp_master_delay用于设定在切换到Master状态后延时进行Gratuitous arp请求的时间。

track_interface用于设置一些额外的网络监控接口,其中任何一个网络接口出现故障,Keepalived都会进入FAULT状态。

authentication用于设定节点间通信验证类型和密码,验证类型主要有PASS和AH两种,在一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信。

virtual_ipaddress用于设置虚拟IP地址(VIP),又叫做漂移IP地址。可以设置多个虚拟IP地址,每行一个。可以写成 “192.168.16.189/24 dev eth1” 这样的形式

virtual_routes和virtual_ipaddress段一样,用来设置在切换时添加或删除相关路由信息。通过“ip route”命令可以查看路由信息是否添加成功,也可以通过notify_master选项来代替virtual_routes实现相同的功能。

nopreempt设置的是高可用集群中的不抢占功能。在使用不抢占时,只能在“state”状态为“BACKUP”的节点上设置,而且这个节点的优先级必须高于其他节点。

preemtp_delay用于设置抢占的延时时间,单位是秒。

vrrp_script check_mysqld
{
     script "killall -0 mysqld"
     interval 2
}
track_script
{
     check_mysqld
}

script "killall -0 mysqld"用于检测mysqld服务是否正常启动,0代表正常、1代表异常

interval 2用于设置检查的时间间隔

check_mysqld返回检查的值



Keepalived的LVS配置详解

LVS段的配置以“virtual_server”作为开始标识,此段内容有两部分组成,分别是real_server段和健康检测段。下面是virtual_server段常用选项的一个配置示例:

virtual_server 192.168.12.200 80 {

delay_loop 6

lb_algo rr

lb_kind DR

persistence_timeout 50

persistence_granularity  <NETMASK>

protocol TCP

ha_suspend

virtualhost  <string>

sorry_server <IPADDR>  <PORT>

virtual_server:设置虚拟服务器的开始,后面跟虚拟IP地址和服务端口,IP与端口之间用空格隔开。

delay_loop:设置健康检查的时间间隔,单位是秒。

lb_algo:设置负载调度算法,可用的调度算法有rr、wrr、lc、wlc、lblc、sh、dh等,常用的算法有rr和wlc。

lb_kind:设置LVS实现负载均衡的机制,有NAT、TUN和DR三个模式可选。

persistence_timeout:会话保持时间,单位是秒。

persistence_granularity:此选项是配合persistence_timeout的,后面跟的值是子网掩码,表示持久连接的粒度。默认是255.255.255.255,也就是一个单独的客户端IP。如果将掩码修改为255.255.255.0,那么客户端IP所在的整个网段的请求都会分配到同一个real server上。

protocol:指定转发协议类型,有TCP和UDP两种可选。

ha_suspend:节点状态从Master到Backup切换时,暂不启用real server节点的健康检查。

virtualhost:在通过HTTP_GET/ SSL_GET做健康检测时,指定的Web服务器的虚拟主机地址。

sorry_server:相当于一个备用节点,在所有real server失效后,这个备用节点会启用。

real_server段的一个配置示例:

real_server 192.168.12.132 80 {

weight 3

inhibit_on_failure

notify_up  <STRING> | <QUOTED-STRING>

notify_down <STRING> | <QUOTED-STRING>

}

real_server:是real_server段开始的标识,用来指定real server节点,后面跟的是real server的真实IP地址和端口,IP与端口之间用空格隔开。

weight:用来配置real server节点的权值。权值大小用数字表示,数字越大,权值越高。设置权值的大小可以为不同性能的服务器分配不同的负载,为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值

inhibit_on_failure:表示在检测到real server节点失效后,把它的“weight”值设置为0,而不是从IPVS中删除。

notify_up:此选项与上面介绍过的notify_maser有相同的功能,后跟一个脚本,表示在检测到real server节点服务处于UP状态后执行的脚本。

notify_down:表示在检测到real server节点服务处于DOWN状态后执行的脚本。

健康检测段允许多种检查方式,常见的有HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK、MISC_CHECK。

TCP_CHECK检测方式示例:
TCP_CHECK  {

connect_port 80

connect_timeout  3

nb_get_retry  3

delay_before_retry  3

}

connect_port:健康检查的端口,如果无指定,默认是real_server指定的端口。

connect_timeout:表示无响应超时时间,单位是秒,这里是3秒超时。

nb_get_retry:表示重试次数,这里是3次。

delay_before_retry:表示重试间隔,这里是间隔3秒。

HTTP_GET和SSL_GET检测方式的示例:
HTTP_GET |SSL_GET

{

url  {

path  /index.html

digest  e6c271eb5f017f280cf97ec2f51b02d3

status_code   200

}

connect_port 80

bindto  192.168.12.80

connect_timeout  3

nb_get_retry  3

delay_before_retry  2

}

url:用来指定HTTP/SSL检查的URL信息,可以指定多个URL。

path:后跟详细的URL路径。

digest:SSL检查后的摘要信息,这些摘要信息可以通过genhash命令工具获取。例如:genhash -s 192.168.12.80 -p 80 -u /index.html。

status_code:指定HTTP检查返回正常状态码的类型,一般是200。

bindto:表示通过此地址来发送请求对服务器进行健康检查。

MISC_CHECK检测方式的示例:

MISC_CHECK

{

misc_path  /usr/local/bin/script.sh

misc_timeout  5

! misc_dynamic

}

misc_path:用来指定一个外部程序或者一个脚本路径。

misc_timeout:设定执行脚本的超时时间。

misc_dynamic:表示是否启用动态调整real server节点权重,“!misc_dynamic”表示不启用,相反则表示启用。

时间: 2024-10-14 04:30:44

Keepalived配置文件详解的相关文章

Keepalived配置文件详解(以Haproxy作为负载均衡器)

Keepalived是一款优秀的.可实现高可用的开源软件,它运行在LVS之上,为LVS应运而生.在生产环境中也可以将其应用于Haproxy/Nginx中,提供简单稳定的高可用解决方案.现将其配置文件作如下说明(以Haproxy为前端调度器): ! Configuration File for keepalived global_defs { notification_email { [email protected] #定义发生故障时的收件人 } notification_email_from

HAproxy简介及其配置文件详解

一.HAProxy简介HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上.HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或多线程

Nginx知多少系列之(三)配置文件详解

原文:Nginx知多少系列之(三)配置文件详解 目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.Linux下.NET Core项目Nginx+Keepalived高可用(主从模式) 8.Linux下.NET Core项目Nginx+Keepalived高可用(双主模式) 9.Linux下.NET Core项目LVS+Keepalived+Nginx高可用集群 10.构建静态服务器 11.日志

监控服务 - Nagios配置文件详解

一.Nagios的配置文件类型: Nagios安装后有四种默认的配置文件:主配置文件.CGI配置文件.资源定义文件.对象定义文件.这些配置文件间具有一些关系,只有充分理解各配置文件,才能使得配置Nagios服务如行云流水. 二.Nagios配置文件详解: 1.主配置文件(nagios.cfg): Nagios的主配置文件是用来定义Nagios服务的基本参数信息的,其中包括:对象定义文件的声明.CGI配置文件的声明.资源定义文件的声明等.其常用参数如下: log_file=/usr/local/n

Hadoop1.2.1 配置文件详解

首先我们先回顾一下Hadoop的一些概念: Apache Hdoop 1.x 组成 NameNode(元数据服务器) Secondary NameNode(辅助元数据服务器) JobTracker(任务调度员) DataNodes(块存储) TaskTrackers(任务执行) HDFS文件系统 NameNoode:属于管理层,用于管理数据存储 SecondaryNameNode:也属于管理层,辅助NameNode进行管理 DataNode:属于应用层,用户进行数据的存储,被NameNode进行

ThinkPHP源码阅读2-----C函数配置文件详解

ThinkPHP的配置非常灵活,可自定义加载.大概看了一下,一共有这几个地方会加载配置文件,方便以后的读取 /** * 获取和设置配置参数 支持批量定义 * * @param string|array $name * 配置变量 * @param mixed $value * 配置值 * @return mixed */ function C($name = null, $value = null) { static $_config = array (); // 无参数时获取所有 if (emp

Zabbix配置文件详解之服务端——zabbix_server

作为zabbix的部署,这里就不说了,网上一大堆文档,但关于配置文件的说明就比较少,这里列出服务端的配置文件zabbix_server的详细解释,感谢我主管的功劳. Zabbix Server端配置文件说明 # This is a configuration file for Zabbix Server process # To get more information about Zabbix, # visit http://www.zabbix.com ############ GENERA

Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

原创整理不易,转载请注明出处:Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解 代码下载地址:http://www.zuidaima.com/share/1772661373422592.htm 本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifi

[转]Web.config配置文件详解(新手必看)

本文转自:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以