热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

keepalived.conf配置文件介绍

一、基本说明keepalived.conf是配置文件,其中描述所有的Keepalived关键字。关键字需要放置在含有等级结构的块和子块中,每一层都由成
一、 基本说明

keepalived.conf是配置文件,其中描述所有的 Keepalived 关键字。
关键字需要放置在含有等级结构的块和子块中,每一层都由成对的大括号 {
} 组成。

注释使用 #! , 它们可放在一行的开头, 也可以放在一行中的任何地方,直到一行的结尾,都会被看做注释。

关键字 include允许包含其他配置文件, 就行 Nginx 的配置文件一样。

下面的配置说明中的参数语法:

  • on | off | true | false | yes | no 之一
  • 是以秒为单位的时间值,包括小数秒,例如2.71828或3;计时器的分辨率是微
    秒。

二、 配置文件结构

Keepalived 配置文件围绕一组配置块进行连接。
每个块都针对特定功能,并有专门的守护进程。

! Configuration File for keepalivedglobal_defs {全局配置块
}vrrp_instance VI_1 {vrrpd 实例配置块, 可以配置多个
}virtual_server 192.168.200.100 443 {LVS 配置块, 可以配置多个
}

三、 全局配置块

global_defs {notification_email {# 接收通知邮件的电子邮箱账户列表# 注意发送邮件需要本机开启邮件服务,目前一般企业不用这种方式# 而是使用 zabbix 等监控实现acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}# 指定发件人,这将会显示在发送的邮件中notification_email_from Alexandre.Cassen@firewall.loc# 用于发送邮件通知的SMTP服务器smtp_server 127.0.0.1# 指定SMTP流处理的超时时间smtp_connect_timeout 30# 标识机器的字符串(不必是主机名)。router_id LVS_DEVEL# 检查收到的VRRP 组播中的所有地址可能很耗时。 # 设置此标志意味着,如果组播与先前收到的组播来自同一主路由器,则不会进行检查。vrrp_skip_check_adv_addr# 强制严格遵守VRRP协议。 这将禁止:#0 VIP#单播对等#VRRP版本2中的IPv6地址vrrp_strictvrrp_garp_interval 0.001vrrp_gna_interval 0.000001
}

四、 VRRPD 实例配置块

配置示例

vrrp_instance VI_1 { # 实例名称, 所有机器应保持一致# 此 keepalived 的角色&#xff0c;在一组 keepalived 中只允许有一个 MASTER# 其他的应该设置为 BACKUP.# 实际上&#xff0c;一旦其他机器启动&#xff0c;将举行一次选举&#xff0c;# 并且具有最高优先级的计算机将成为MASTER。# 因此&#xff0c;这里的条目并不重要&#xff0c;只是有利于可读性。state MASTER# 绑定 vrrp 的内部接口&#xff0c;用于发送心跳信息&#xff08;组播信息&#xff0c;地址是:224.0.0.18&#xff09;interface eth0# 从1到255的任意唯一数字# 用于区分在同一NIC&#xff08;并因此使用的同一套接字&#xff09;上运行的vrrpd的多个实例# 同一个集群中的每个调度器上应该设置为一致virtual_router_id 51# 优先级&#xff0c;用于选举 MASTER# 要想成为 MASTER, 使其比其他机器多50priority 100# VRRP 组播通告间隔&#xff0c;单位是秒&#xff08;例如0.92&#xff09;。advert_int 1# 认证信息&#xff0c;所有的机器上应该一致authentication {auth_type PASSauth_pass 1111}# VIP 地址&#xff0c;会随着角色转换而改变&#xff0c;VIP 总是在 MASTER 上被绑定。# 所有的机器应设置为一样的内容virtual_ipaddress {192.168.122.100}notify_master /path_to_script/script_master.sh(or notify_master “ /path_to_script/script_master.sh <arg_list>)notify_backup /path_to_script/script_backup.sh(or notify_backup “ /path_to_script/script_backup.sh <arg_list>)notify_fault /path_to_script/script_fault.sh(or notify_fault “ /path_to_script/script_fault.sh <arg_list>)
}

配置项参考


关键字定义类型
vrrp_instance标识VRRP实例定义块Block
state在标准使用中指定实例状态
interface指定实例运行所要用到的网络接口string
mcast_src_ip指定VRRP通告的IP头的源地址
lvs_sync_daemon_inteface指定LVS sync_daemon运行所要用到的网络接口string
virtual_router_id指定实例所属的VRRP路由器IDnumerical
priority指定实例在VRRP路由器中的优先级numerical
advert_int以秒为单位指定通告的间隔时间(设置为1)numerical
smtp_alert激活MASTER状态转换的SMTP通知
authentication标识VRRP认证定义块Block
auth_type指定要使用哪种身份认证(PASSAH)
auth_pass指定要使用的密码字符串string
virtual_ipaddress标识VRRP VIP定义块Block
virtual_ipaddress_excluded标识VRRP VIP排除定义块Block
notify_master指定在切换到master时要执行的脚本path
notify_backup指定在切换到backup时要执行的脚本path
notify_fault指定在切换到故障状态时要执行的脚本path

五、 LVS 配置块

假如使用 Keepalived &#43; LVS 应该设置这一部分&#xff0c;假如高可用针对的不是 LVS&#xff0c;则不需要设置此部分。

virtual_server 192.168.122.100 80 { #LVS配置delay_loop 6 #健康检查rs时间间隔lb_algo rr #LVS调度算法lb_kind DR #LVS集群模式&#xff08;路由模式&#xff09;protocol TCP #健康检查使用的协议real_server 192.168.122.10 80 {weight 1inhibit_on_failure #当该节点失败时&#xff0c;把权重设置为0&#xff0c;而不是从IPVS中删除TCP_CHECK { #健康检查connect_port 80 #检查的端口connect_timeout 3 #连接超时的时间, 单位为: 秒}}real_server 192.168.122.20 80 {weight 1inhibit_on_failureTCP_CHECK {connect_timeout 3connect_port 80}}
}# LVS 的 VIP&#xff0c;要和 virtual_ipaddress 中值一致
virtual_server 192.168.122.100 443 {delay_loop 6 # 检查 RS 的轮询间隔&#xff0c;单位秒lvs_sched rr # LVS 调度算法lvs_method DR # LVS 的工作模式,默认 NATpersistence_timeout 50 # LVS持久性超时&#xff08;以秒为单位&#xff09;&#xff0c;默认为6分钟protocol TCP # 健康检查使用的协议 real_server 192.168.122.10 443 {# 权重weight 1# Healthchecker检测到故障时将权重设置为0&#xff0c;默认配置文件中没有inhibit_on_failureSSL_GET {url {path /digest ff20ad2481f97b1754ef3e12ecd3a9cc}url {path /mrtg/digest 9b3a0c85a887a256d6939da88aabd8cd}connect_timeout 3retry 3delay_before_retry 3}}
}

关键字定义类型
virtual_server标识虚拟服务器定义块Block
fwmark指定虚拟服务器是FWMARK
delay_loop以秒为单位指定检查之间的间隔时间numerical
lb_algo选择一个特定的调度程序(rrwrr
lb_kind选择一个特定的转发方法(NATDR
persistence_timeout为持久连接指定超时时间numerical
persistence_granularity为持久连接指定粒度掩码
virtualhost指定用于HTTPSSL_GET的虚拟主机
protocol指定协议类型(TCPUDP)
sorry_server当所有真实服务器都宕掉时添加到池中的服务器
real_server指定一个真实服务器成员
weight为真实服务器指定负载均衡的权重numerical
TCP_CHECK使用TCP连接检查真实服务器的可用性
MISC_CHECK使用用户定义的脚本检查真实服务器的可用性
misc_path标识要运行脚本的完整路径path
HTTP_GET使用HTTP GET请求检查真实服务器的可用性
SSL_GET使用HTTPS GET请求检查真实服务器的可用性
url标识url定义块Block
path指定url路径alphanum
digest指定特定url路径的摘要alphanum
connect_port指定连接远程服务器的TCP端口numerical
connect_timeout指定连接远程服务器的超时时间numerical
retry最大重试次数numerical
delay_before_retry两次连续重试之间的延迟numerical

类型“path”指的是被调用脚本的完整路径。对于需要参数的脚本&#xff0c;路径和参数必须用双引号括起来。


六、VRRP script

vrrp_script 关键字用于设置检查脚本&#xff0c;主要是检查 keepalived 程序自身是否正常&#xff0c;比如是否正常向 224.0.0.18 发送组播,可以防止脑裂。 此配置块是独立的&#xff0c;也就是说它是顶级配置块&#xff0c;需要顶满格写。注意&#xff1a;需要至少有一个实例配置使用此脚本&#xff0c;此脚本才会运行。

track_script 用于添加一个跟踪脚本到 VRRP 实例中&#xff0c;这个脚本就是 vrrp_script 配置块中定义的&#xff0c;用于监控 VRRP 实例是否正常。

1 vrrp_script

vrrp_script <SCRIPT_NAME> {&#xff03;要执行的脚本的路径, 假如有参数&#xff0c;使用双引号引起来 quoted 是双引号的意思script <STRING> | <QUOTED-STRING># 脚本调用之间的秒数&#xff08;默认值&#xff1a;1秒&#xff09;interval <INTEGER># 多少秒后&#xff0c;脚本被视为执行失败timeout <INTEGER>&#xff03;通过此权重调整优先级&#xff0c;&#xff08;默认值&#xff1a;0&#xff09;&#xff03;有关反转的描述&#xff0c;请参见track_script。&#xff03;&#39;weight 0 reverse&#39; 将在脚本启动时导致vrrp实例关闭&#xff0c;反之亦然。。weight <INTEGER:-253..253> [reverse]&#xff03;进行OK转换所需的成功次数rise <INTEGER>&#xff03;KO转换所需的成功次数fall <INTEGER>&#xff03;用这里设置的用户名和组执行此脚本。&#xff03;组默认为用户组user USERNAME [GROUPNAME]&#xff03;假设脚本最初处于失败状态init_fail}

该脚本将每隔秒执行一次。

默认权重等于0&#xff0c;这意味着在脚本连续失败后&#xff0c;任何监视脚本的VRRP实例都将转换为故障状态。
此后&#xff0c;连续成功将导致VRRP实例退出故障状态&#xff0c;除非由于它们正在跟踪的其他脚本或接口而使它们也处于故障状态。

2 track_script

vrrp_instance <STRING> {...略...track_script {<SCRIPT_NAME>}
}

vrrp_script 配置块中的名称,例如&#xff1a;

vrrp_script check_nginx{...
}track_script&#96;<SCRIPT_NAME> 的值应该是 &#96;check_nginx



推荐阅读
  • ! Configuration File for keepalivedglobal_defs {   notification_email {     ... [详细]
  • 由于php没有提供现成的smtp函数,却提供了一个功能不甚灵活的mail()函数,这个函数需要服务器配置上的支持,并且不支持smtp验证,在很多场合无法正常的工作,因此不建议使用。 ... [详细]
  • 适合小型网络环境的免费网络管理软件Intermapper
    InterMapper网络管理软件可支持监测5台以内的网络设备,特别适合安装使用在小型网络环境,可以实时了解网络运行状态和网络拓扑,支持多 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • NSD cisco高级路由与交换技术2014.8.12
    实验01:DHCP服务的应用实验目标:通过建立DHCP服务,给计算机自动分配地址实验环境:实验步骤:一、配置计算机pc8pc ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
  • 参考网上搜到的结果,但仍有问题,调试后完整步骤如下配置163邮箱SMTP,需要配置授权码(作为密码使用)&#x ... [详细]
  • 一、生产服务器netstattcp连接状态 ... [详细]
  • 2016年8月29日当初想的太简单~~~哎写在前面从3月份开始各大互联网类、游戏类、软件类等公司开始招暑期实习,9月份正式招聘,面临众多的工作选择和技术方向,我们不免有些眼花缭乱啊 ... [详细]
  • 高可用架构_MySQL高可用架构设计
    文章来自于https:www.jianshu.compd3107bda2963PHP进阶学习交流QQ群:983229225Mysql复制功能介绍Mysql的复制功能提 ... [详细]
  • 软测管理工具实践04
    一.今日任务——安装完成QC9.0进过几天的安装,终于把QC9.0成功的安装在了自己win7系统的电脑上。其中遇到的困难很多,首先是QC的版本问题&#x ... [详细]
  • LVS服务器集群系统
    LVS介绍LVS:LinuxVirtualServer,负载调度器,内核集成,章文嵩(花名正明),阿里的四层SLB(ServerLoadBalance)是基于LVS+keepali ... [详细]
  • 一、Zabbix简介1.1Zabbix简介  官方网站:http:www.zabbix.com。Zabbix通过CS模式采集数据,通过BS模式在web端展示和配置。1.2Za ... [详细]
author-avatar
我的爱来了2012_800
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有