keepalived.conf
LVS keepalived负载均衡高可用 配置安装大全
LVS+Keepalived实现高可用集群一、基础介绍 (2)二、搭建配置LVS-NA T模式 (2)三、搭建配置LVS-DR模式 (4)四、另外一种脚本方式实现上面LVS-DR模式 (6)五、keepalived + LVS(DR模式) 高可用 (8)六、Keepalived 配置文件详细介绍 (11)一、基础介绍(一)根据业务目标分成三类:High Availability 高可用Load Balancing 负载均衡High Performance 高性能(二)实现集群产品:HA类:rhcs、heartbeat、keepalivedLB类:haproxy、lvs、nginx、f5、piranhaHPC类:/index/downfile/infor_id/42(三)LVS 负载均衡有三种模式:LVS-DR模式(direct router)直接路由模式进必须经过分发器,出就直接出LVS-NAT模式(network address translation)进出必须都经过分发器LVS-TUN模式(ip tunneling)IP隧道模式服务器可以放到全国各地二、搭建配置LVS-NAT模式1 、服务器IP规划:DR服务器添加一张网卡eth1,一个网卡做DIP,一个网口做VIP。
设置DIP、VIP IP地址:DIP的eth1和所有RIP相连同一个网段CIP和DIP的eth0(Vip)相连同一个网段Vip eth0 192.168.50.200Dip eth1 192.168.58.4客户机IP:Cip 192.168.50.32台真实服务器IP:Rip1 192.168.58.2Rip2 192.168.58.32 、R ealServer1配置:mount /dev/xvdd /media/vi /var/www/html/index.html写入:this is realserver1启动httpdvi /etc/sysconfig/network-scripts/ifcfg-eth0设置RIP,子网掩码必须设置成DIPIPADDR=192.168.58.2NETMASK=255.255.255.0GA TEWAY=192.168.58.43 、R ealServer2 配置:vi /var/www/html/index.html写入:this is realserver2启动httpdvi /etc/sysconfig/network-scripts/ifcfg-eth0设置RIP,子网掩码必须设置成DIPIPADDR=192.168.58.3NETMASK=255.255.255.0GA TEWAY=192.168.58.44 、在DR服务器上做以下设置:开启IP数据包转发vi /etc/sysctl.confnet.ipv4.ip_forward = 0 ##0改成1 ,此步很重要查看是否开启:sysctl -p5 、安装LVS服务:ipvsadmyum -y install ipvsadmlsmod |grep ip_vsTurbolinux系统没有带rpm包,必须下载源码安装:#ln -s /usr/src/kernels/2.6.18-164.el5-x86_64/ /usr/src/linux##如果不做连接,编译时会包错#tar zxvf ipvsadm-1.24.tar.gz#cd ipvsadm-1.24#make && make install运行下ipvsadm ,就加到ip_vs模块到内核了lsmod | grep ip 可以看到有ip_vs模块了6 、配置DR服务器,添加虚拟服务ipvsadm -L -n 查询信息ipvsadm -A -t 192.168.50.200:80 -s rr #添加集群服务、调度算法,rr为调度算法ipvsadm -a -t 192.168.50.200:80 -r 192.168.58.2 -m -w 1 # -m代表net模式,-w代表权重ipvsadm -a -t 192.168.50.200:80 -r 192.168.58.3 -m -w 2ipvsadm -L -n 再次查看是就有了realserverservice ipvsadm save 保存配置iptables -L 关闭或者清空防火墙watch -n 1 'ipvsadm -L -n' 查看访问记录的数显示如下:-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.50.200:80 rr-> 192.168.58.2:80 Masq 1 0 13-> 192.168.58.3:80 Masq 2 0 12ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED;InActConn是指除了ESTABLISHED以外的,所有的其它状态的tcp连接.7 、测试:http://192.168.58.200配完后若想修改算法:ipvsadm -E -t 192.168.58.200:80 -s wlc修改Rip的权重:ipvsadm -e -t 192.168.58.200:80 -r 192.168.58.2 -m -w 1ipvsadm -e -t 192.168.58.200:80 -r 192.168.58.3 -m -w 5三、搭建配置LVS-DR模式lo:1 回应客户端,lo:1上的IP跟机器有关,跟网卡没有关系arp_announce 对网络接口上本地IP地址发出的ARP回应作出相应级别的限制arp_ignore 定义对目标地址为本地IP的ARP询问不同的请求一、3台服务器IP配置规划:DIP:eth0:1 192.168.58.200/32 (VIP)eth0 192.168.58.3/24 (DIP)RIP1 lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.4/24RIP2 lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.5/24 .................................................................RIP n lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.N/24二、每台realserver都加上下面四个步骤配置:1 、配置每台rip的IP、http,web页面2 、关闭每台rip服务器的ARP广播:echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce3 、配置VIPifconfig lo:1 192.168.58.200 netmask 255.255.255.255 broadcast 192.168.58.200 up4 、配置网关route add -host 192.168.58.200 dev lo:1三、DR上的配置(DR模式下Dip不用开启转发):1 、配置DIP,在eth0上添加一个子VIP接口:添加VIP:ifconfig eth0:1 192.168.58.200 broadcast 192.168.58.200 netmask 255.255.255.255 up2 、配置网关:route add -host 192.168.58.200 dev eth0:1route -n3 、安装ipvsadm(方法见文档上面)yum -y install ipvsadmlsmod |grep ip_vs4 、配置LVS集群:ipvsadm -A -t 192.168.58.200:80 -s rr #添加集群服务、调度算法,rr为调度算法ipvsadm -a -t 192.168.58.200:80 -r 192.168.58.3 -g -w 1 # -g代表DR模式,-w代表权重ipvsadm -a -t 192.168.58.200:80 -r 192.168.58.2 -g -w 2service ipvsadm saveipvsadm -L -n 查看信息四、测试:http://192.168.58.200四、另外一种脚本方式实现上面LVS-DR模式IP规划:Dip eth0 192.168.58.139VIP:192.168.58.200RIP1:192.168.58.2RIP2:192.168.58.31 、D R服务器上安装ipvsadm#yum -y install ipvsadm#lsmod | grep ip_vs 查看没有输出#modprobe ip_vs 安装即可2 、配置DIP服务器、LVS这里也是个写脚本为了方便vim /etc/init.d/lvsdr#!/bin/bash#lvs of DRVIP=192.168.58.200RIP1=192.168.58.2RIP2=192.168.58.3case "$1" instart)echo "start lvs of DR"/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.0 up echo "1" > /proc/sys/net/ipv4/ip_forward/sbin/iptables -C/sbin/ipvsadm -A -t $VIP:80 -s rr/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g/sbin/ipvsadm;;stop)echo "stop lvs of DR"echo "0" > /proc/sys/net/ipv4/ip_forward/sbin/ipvsadm -C/sbin/ifconfig eth0:0 down;;*)echo "Usage :$0 {start|stop}"exit1esacexit 0#chmod o+x /etc/init.d/lvsdr启动脚本:#service lvsdr start3 、2台RIP服务器都配置这里我们也都可以写成脚本开启2台RIP的httpd服务。
keepalived监控应用程序端口
keepalived监控类型有三种,最常见的两种就是主服务器网络不通和主服务器keepalived服务down掉,备份机能够自动接管。
还有一种类型是监控应用程序的服务状态,可以用vrrp_script 实现,例如监控postgreSQL端口5432。
主服务器配置vim /etc/keepalived/keepalived.confglobal_defs {router_id HA_1}vrrp_script chk_postgreSQL_port {script "/tcp/127.0.0.1/5432"interval 1weight -30}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 1priority 100advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {192.168.8.254track_script {chk_postgreSQL_port}}备用服务器配置vim /etc/keepalived/keepalived.conf global_defs {router_id HA_1}vrrp_script chk_postgreSQL_port { script "/tcp/127.0.0.1/5432"interval 1weight -30}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 1priority 90advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {192.168.8.254track_script {chk_postgreSQL_port}}注:主备的参数state都是MASTER,根据priority的值大小竞争来决定谁是真正的MASTER。
详解centos7中配置keepalived日志为别的路径
详解centos7中配置keepalived⽇志为别的路径keepalived 安装:cd <keepalived_sourcecode_path>./configure --prefix=/usr/local/keepalivedmake && make installmkdir /etc/keepalivedmkdir /etc/keepalived/scriptscp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/cp /root/keepalived-2.0.6/keepalived/etc/init.d/keepalived /etc/init.d/cp /usr/local/keepalived/sbin/keepalived /sbin/keepalivedcp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/chmod +x /etc/init.d/keepalived由于在默认状态下keepalived的⽇志会写⼊到/var/log/message中,我们需要将此剥离出来。
在centos 6下可以:(1)⾸先修改/etc/sysconfig/keepalived⽂件,注释掉如下,添加如下:#KEEPALIVED_OPTIONS="-D"KEEPALIVED_OPTIONS="-D -d -S 0"(2)其次修改 /etc/rsyslog.conf ⽂件,添加如下:local0.* /var/log/keepalived.log在centos 7 下,还需要修改/lib/systemd/system/keepalived.service ⽂件:centos 7使⽤。
keepalived的日志
keepalived的日志摘要:1.简介2.keepalived 的作用3.keepalived 的日志配置4.keepalived 日志的级别5.keepalived 日志的输出方式6.keepalived 日志的示例分析7.小结正文:keepalived 是一款开源的高可用解决方案,它通过监控虚拟IP 地址和实际IP 地址之间的连通性,实现对网络服务的故障检测和自动切换。
在keepalived 的使用过程中,日志是非常重要的一个部分,它可以帮助我们了解系统的运行状况,及时发现和解决问题。
keepalived 的日志主要用于记录模块、进程、状态变化等信息。
日志的配置可以通过修改keepalived.conf 文件中的log 配置项来实现。
以下是一个简单的log 配置示例:```log {source s_local {file("/var/log/keepalived.log");}source s_remote {udp("192.168.1.1" 1000);}destination d_console {tty("/dev/ttyS0");}destination d_file {file("/var/log/keepalived.log");}}```在这个示例中,我们配置了两个日志来源(本地文件和远程UDP),以及两个日志目的地(控制台和本地文件)。
通过这样的配置,我们可以实现日志的多种输出方式,满足不同场景的需求。
keepalived 日志共有5 个级别,分别是:debug、info、notice、warning、error。
这些级别分别表示不同的日志信息的重要程度,其中debug 级别表示最详细的信息,error 级别表示最紧急的问题。
我们可以根据需要调整日志级别,以控制日志输出的详细程度。
在实际使用过程中,我们可以通过分析keepalived 日志来诊断和解决问题。
keepalived的日志
keepalived的日志什么是keepalived?Keepalived是一款开源软件,主要用于实现高可用性和负载均衡。
它提供了一种基于VRRP(虚拟路由冗余协议)的解决方案,用于在多个服务器之间共享一个虚拟IP地址,并监控服务的可用性。
Keepalived能够及时检测到服务器或服务的故障,并自动将虚拟IP地址切换到备份服务器,确保服务的持续性和稳定性。
Keepalived的日志记录功能Keepalived提供了强大的日志记录功能,可以帮助管理员及时了解系统的运行状况,查找和排查问题。
Keepalived的日志记录主要包括以下几个方面的信息:1. 系统启动信息:Keepalived在启动时会记录一些系统和配置信息,例如版本号、启动参数、配置文件等。
2. VRRP状态变化:VRRP协议是Keepalived的核心功能之一,它负责监控服务器的可用性和切换虚拟IP地址。
当主备切换或故障发生时,Keepalived会记录相关的状态变化信息,例如切换原因、切换时间、新的主机等。
3. 虚拟IP地址绑定:Keepalived负责将虚拟IP地址绑定到合适的网络接口,以实现服务的高可用性和负载均衡。
日志中会记录虚拟IP地址的绑定情况,包括绑定成功与否、绑定的网络接口、绑定的时间等。
4. 节点状态检测:为了保证服务的可用性,Keepalived会定期检测服务器节点的状态。
如果节点无法正常响应,Keepalived会将其标记为故障节点,并触发主备切换。
日志中记录了节点检测的结果,包括节点的健康状态、响应时间、检测时间等。
5. 日常运行日志:除了以上一些重要的事件,Keepalived还会记录一些日常的运行信息,例如定时任务的执行情况、日志轮转、内存使用情况等。
如何查看和分析Keepalived的日志?要查看和分析Keepalived的日志,可以按照以下步骤进行:1. 打开日志文件:Keepalived的日志文件通常位于/var/log/keepalived/目录下,文件名为keepalived.log。
keepalived的配置解析安装与爬坑
keepalived的配置解析安装与爬坑⽬录:⼀. 前情提要⼆. 官⽅配置说明三. 案例解析四. 其他配置⽅式收集五. 爬坑附1: 安装keepalived------------------------⼀. 前情提要以下试验以及说明是经过试验确定了的,准确!!另外,如果想知道每个参数的真正含义,建议看官⽹解决的问题:1,当⼀个节点(Linux设备)挂了,2个VIP都浮动到⼀个节点上2,当这个节点(Linux设备)好了,由于业务有⼀定的延时,所以还不想浮动IP⽴马漂移回来3,如果⼀个节点的业务(设备上运⾏的业务进程)完蛋了,需要⾃⼰主动交出VIP4,等⾃⼰节点的业务(设备上运⾏的业务进程)⼜好了,那么不能⽴马夺权,⽽是有⼀个过渡再夺权⼆. 官⽅配置说明概述:keepalived的具体实现原理这⾥就不做阐述,但是从其配置⽂件的⾓度⼤致将其⼯作模块分成两部分: 全局部分,和VRRP实例部分。
全局部分,顾名思义就是整体相关的配置;VRRP实例部分:⾸先,keepalived通过创建⼀个个VRRP实例来实现浮动IP的管理,⼀个VRRP实例可以看做是⼀个连接实例(使⽤VRRP协议);⼀个实例对应⼀个VIP,⼀台设备可以配置多个VRRP实例即参与多个VIP的抢占;然后,具有相同VRRP实例配置的⼀对设备,会因为实例匹配⽽成功配对;最后,通过协商得到谁是master谁是slave,以及谁来占有VIP。
1. 全局配置部分1. 预定义⼀个脚本以及脚本管理⽅式,之后⽤于VRRP实例引⽤vrrp_script <SCRIPT_NAME> {# 脚本的路径,或者直接就是脚本本⾝script <STRING>|<QUOTED-STRING># 间隔多长时间执⾏⼀次脚本interval <INTEGER>#脚本执⾏如果没有正确返回,则这段时间后就算超时,然后算作是failed了timeout <INTEGER># adjust priority by this weight, (default: 0).For description of reverse, see track_script.# 'weight 0 reverse' will cause the vrrp instance to be down when the script is up, and vice versa.weight <INTEGER:-253..253> [reverse]# required number of successes for OK transitionrise <INTEGER># required number of successes for KO transitionfall <INTEGER># 以哪个⽤户⾝份去执⾏脚本的⼈是谁user USERNAME [GROUPNAME]# 假设初始时脚本是执⾏失败的init_fail}2. VRRP实例部分# Ignore VRRP interface faults (default unset)dont_track_primary #表⽰的含义是,⼀旦接⼝有问题,则忽略之,否则keepalived的代码中对链路有做检查,发现链路down则进⼊fault状态,于是将放弃所有浮动ip# optional, monitor these as well. go to FAULT state if any of these go down if unweighted.# When a weight is specified in track_interface, instead of setting the vrrp instance to the FAULT state in case of failure, its priority will be# increased by the weight when the interface is up (for positive weights), or decreased by the weight's absolute value when the interface is down# (for negative weights), unless reverse is specified, in which case the direction of adjustment of the priority is reversed.# The weight must be comprised between -253 and +253 inclusive.0is the default behaviour which means that a failure implies a# FAULT state. The common practice is to use positive weights to count a limited number of good services so that the server with the highest count# becomes master. Negative weights are better to count unexpected failures among a high number of interfaces, as it will not saturate even with high# number of interfaces. Use reverse to increase priority if an interfaces is downtrack_interface {eth0eth1eth2 weight <-253..253> [reverse]...}# 1 to 255 used to differentiate multiple instances of vrrpd running on the same NIC (and hence same socket).virtual_router_id 51 #⽤来区分多VRRP实例?, 是指为⼀台设备配置多个实例,还是⼀个局域⽹中的多个实例? 貌似是后者,待确认preempt_delay 300 #表⽰的含义是,我当前是backup⾝份,但是我发现对⽅的master不如我,即优先级⽐我低,那么我不会⽴马去抢占,⽽是等五分钟后再去抢占关于weight,rise,fall的综合⽤法A positive weight means that <rise> successes will add <weight> to the priority of all VRRP instances which monitor it.On the opposite, a negative weight will be subtracted from the initial priority in case of <fall> failures解析:rise和正数的weight结合使⽤,如果rise次脚本执⾏都是成功的(返回0),则增加weight数量的优先级fall和负数的weight结合使⽤,如果是fall次脚本执⾏都是失败的(返回1),则减少|weight|数量的优先级其余的组合⽅式不起任何作⽤,即不会影响优先级的增减三. 案例解析节点1:简介:我是backup⾝份,但因为我的优先级⾼,所以是实际的掌权者,当我发现我节点上的业务已经挂了那么我就降低我的级别,让真正的master去掌权直到我的级别⼜上来了,我也不会⽴马夺权,⽽是等待⼀段时间后再夺权vrrp_script chkBackup {##检查进程是否存在,如果存在检查联通性,如果联通了。
基于keepalived故障转移(双机热备)
目录第一章keepalived安装 (1)第二章配置节点主机 (3)第三章虚拟IP漂移测试 (4)第四章通过ARP测试 (5)第五章基于WEB的应用的测试 (6)第一章keepalived安装1、进入10.210.32.37群集主机安装操作系统、挂载光盘镜像、配置本地yum 源节点1-IP:10.210.32.41节点2-IP:10.210.32.42虚拟漂移地址:10.210.32.462、进入keepalived官网下载keepalived安装包,下载下载1.4.13、将keepalived分别上传到两个节点的/home/kp文件夹下mkdir kpchmod 775 kp4、解压keepalived安装包5、安装keepalived指定安装路径./configure –prefix=/usr/local/keepalived(提前在/usr/local/ 下建立目录keepalived,并chmod权限)6、安装openssl包安装完毕,提示openssl包未安装我们需要安装openssl-devel的开发包7、再次运行第5步安装脚本提示未安装ipvs包,同样需要安装libnl和libnl-3两个开发包提示头错误,需要安装libnfnetlink的devel包Yum 源里并没有libnl的包,需要去网上下载,放在/home/kp目录下,再进行安装8、再次运行第5步安装脚本提示成功安装9、进入安装目录#cd /usr/local/keepalived查看子目录的完整性,一般包含4个子目录至此,keepalived安装完毕,同样的步骤安装10.210.32.42即可第二章配置节点主机1、配置MASTER主机(10.210.32.41)将keepalived配置文件拷贝到/etc目录下面,因为启动的时候是进入/etc目录下面去获取配置信息#cd /usr/local/keepalived/etc/#cp –r keepalived /etc/ 整体将拷贝到/etc下面2、配置keepalived.conf文件进入/etc/keepalived/ 目录下面只有两个文件,一个是keepalived,一个是samples#vi keepalived.conf! Configuration File for keepalivedglobal_defs {#将global defs,此函数为配置邮件的函数,可以暂时注释掉,保留前后大括号即可# notification_email {# acassen@firewall.loc# failover@firewall.loc# sysadmin@firewall.loc# }# notification_email_from Alexandre.Cassen@firewall.loc# smtp_server 192.168.200.1# smtp_connect_timeout 30# router_id LVS_DEVEL# vrrp_skip_check_adv_addr# vrrp_strict# vrrp_garp_interval 0# vrrp_gna_interval 0}vrrp_instance VI_1 {state MASTER #主机MASTER,备机为BACKUPinterface eth0 #网卡信息一定写对,不一定全是eth0virtual_router_id 51 #主、备的值都要写成一致51,表示属于同一个虚拟路由priority 90 #根据权重的不同,决定主备,备机一定要小于主机advert_int 1 #写成一样authentication {auth_type PASS #认证的方式写一样auth_pass 1111 #密码写一样}virtual_ipaddress {10.210.32.46 # 虚拟IP,漂移使用}}2、配置BACKUP主机(红色为需要修改的地方)vrrp_instance VI_1 {state BACKUP#主机MASTER,备机为BACKUPinterface eth0 #网卡信息一定写对,不一定全是eth0virtual_router_id 51 #主、备的值都要写成一致51,表示属于同一个虚拟路由priority 89 #根据权重的不同,决定主备,备机一定要小于主机advert_int 1 #写成一样authentication {auth_type PASS #认证的方式写一样auth_pass 1111 #密码写一样}virtual_ipaddress {10.210.32.46 # 虚拟IP,漂移使用}}第三章虚拟IP漂移测试1、启动keepalived服务#cd /usr/local/keepalived/sbin#./keepalived2、查看keepalived进程,正常启动的keepalived有三个进程ps aux | grep keepalived3、杀掉keepalived进程Killall keepalived4、漂移测试(1)、在10.208.0.212上长ping虚拟IPPing 10.210.32.46 –t(2)、关掉10.210.32.41上的keepalived再ping虚拟IP,观察ping数据包是否中断,如果中断,证明IP漂移不成功,如果能ping通,则证明IP已经漂移(3)、关掉10.210.32.42上的keepalived,至此,MASTER和BACKUP都已经关闭再ping 虚拟IP没有故障转移节点了,当然是无法ping通虚拟IP了第四章通过ARP测试1、#ip a 查看虚拟IP2、同理、killall keeplived all,即可看到10.210.32.46消失输入arp-a即可查看到两个IP地址来源于一张网卡第五章基于WEB的应用的测试1、安装nginx略分别在MASTER和BACKUP启动nginx#/usr/local/keepalived/sbin/nginx2、修改静态页面文件,方便测试3、MASTER——BACKUP的切换测试(1)、上图可以看见虚拟IP10.210.32.46目前在10.210.32.42节点上(2)、停止10.210.32.42上的keepalived的服务,再访问10.210.32.46,结果如下图,指向了10.210.32.41上(3)至此,WEB测试完毕。
keepalived中vrrp_script,track_script,notify的使用方法
keepalived中vrrp_script,track_script,notify的使⽤⽅法keepalived中vrrp_script,track_script,notify的使⽤⽅法转⾃:可以在keepalived.conf⽂件中定义的脚本,⽤以实现某个检测功能;例:检测/etc/keepalived⽬录下down⽂件是否存在,如果存在则优先级减20,如果不存在表⽰正常vrrp_script chk {script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"interval 1weight -20注:这个脚本的作⽤是⽤于维护MASTER,使MASTER⼿动下线如何调⽤上⾯定义的脚本呢?在vrrp实例中(vrrp_instance VI_1)加上track_script⽤于追踪脚本track_script {chk}notify的⽤法:notify_master:当当前节点成为master时,通知脚本执⾏任务(⼀般⽤于启动某服务,⽐如nginx,haproxy等)notify_backup:当当前节点成为backup时,通知脚本执⾏任务(⼀般⽤于关闭某服务,⽐如nginx,haproxy等)notify_fault:当当前节点出现故障,执⾏的任务;例:当成为master时启动haproxy,当成为backup时关闭haproxynotify_master "/etc/keepalived/start_haproxy.sh start"notify_backup "/etc/keepalived/start_haproxy.sh stop"⼀个完整的实例:MASTER:初始priority为100BACKUP:初始priority为90模拟MASTER产⽣故障:当检测到/etc/keepalived⽬录下有down⽂件时,priority减少20,变为80;低于BACKUP的priority;此时MASTER变成BACKUP,同时执⾏notify_backup的脚本⽂件(关闭haproxy);同时BACKUP变成MASTER,同时执⾏notify_master的脚本⽂件(启动haproxy);模拟MASTER故障恢复:当删除/etc/keepalived⽬录下的down⽂件时,原MASTER的优先级⼜变为100,⾼于原BACKUP的priority;此时原MASTER由BACKUP⼜抢占成了MASTER,同时执⾏notify_master的脚本⽂件(启动haproxy);同时原BACKUP由MASTER⼜变了BACKUP,同时执⾏notify_backup的脚本⽂件(关闭haproxy);MASTER的配置:global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_script chk {script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"interval 1weight -20}vrrp_instance VI_1 {state MASTERinterface eth1virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.0.22.245}track_script {chk}notify_master "/etc/keepalived/start_haproxy.sh start"notify_backup "/etc/keepalived/start_haproxy.sh stop"BACKUP的配置:global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.0.22.245}notify_master "/etc/keepalived/start_haproxy.sh start"notify_backup "/etc/keepalived/start_haproxy.sh stop"}start_haproxy.sh的脚本内容:#!/bin/bashcase"$1"instart)/etc/init.d/haproxy start;;stop)/etc/init.d/haproxy stop;;restart)/etc/init.d/haproxy stop/etc/init.d/haproxy start*)echo "Usage:$0 start|stop|restart";;esackeepalived检测nginx,当nginx服务不正常时⾃动降级,当nginx恢复时⾃动升级:check_nginx.sh脚本#!/bin/bashnmap localhost -p 80 | grep "80/tcp open"if [ $? -ne 0 ];thenexit 10finotify.sh脚本:#!/bin/bashVIP=$2sendmail (){subject="${VIP}'s server keepalived state is translate"content="`date +'%F %T'`: `hostname`'s state change to master"echo $content | mail -s "$subject" zhengwei.liu@}case"$1"inmaster)nmap localhost -p 80 | grep "80/tcp open"if [ $? -ne 0 ];then/etc/init.d/nginx startfisendmail;;backup)nginx_psr=`ps -C nginx --no-header | wc -l`if [ $nginx_psr -ne 0 ];then/etc/init.d/nginx stopfi;;*)echo "Usage:$0 master|backup VIP";;esacMASTER配置! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id https}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 1weight -20}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 54priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.16.8.19/25}track_script {chk_nginx}notify_master "/etc/keepalived/notify.sh master 172.16.8.19"notify_backup "/etc/keepalived/notify.sh backup 172.16.8.19"}BACKUP配置:backup⽆需检测nginx是否正常,默认nginx是未启动的,当升级为MASTER时启动nginx,当降级为BACKUP时关闭! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id https}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 54priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.16.8.19/25}notify_master "/etc/keepalived/notify.sh master 172.16.8.19"notify_backup "/etc/keepalived/notify.sh backup 172.16.8.19"}。
keepalived编译
Keepalived编译什么是Keepalived?Keepalived是一个用于实现高可用性和负载均衡的开源软件。
它基于VRRP(Virtual Router Redundancy Protocol)协议,可以在多个服务器之间实现故障切换和负载均衡。
通过配置Keepalived,可以将多个服务器组成一个虚拟路由器,并将请求分发到这些服务器上,从而提高系统的可用性和性能。
编译Keepalived的步骤编译Keepalived需要一些准备工作和步骤,下面将详细介绍如何编译Keepalived。
步骤一:安装必要的依赖项在开始编译之前,我们需要安装一些必要的依赖项。
这些依赖项包括:•gcc:C语言编译器•make:构建工具•libssl-dev:OpenSSL库开发包•libpopt-dev:popt库开发包可以使用以下命令来安装这些依赖项:sudo apt-get updatesudo apt-get install gcc make libssl-dev libpopt-dev -y步骤二:下载Keepalived源代码在开始编译之前,我们需要下载Keepalived的源代码。
可以从官方网站或者GitHub上获取最新版本的源代码。
wgettar -zxvf keepalived-2.3.0.tar.gzcd keepalived-2.3.0步骤三:配置编译选项在编译之前,我们需要配置一些选项,例如安装路径、启用的功能等。
可以使用以下命令来配置编译选项:./configure --prefix=/usr/local/keepalived \--sysconf=/etc/keepalived \--enable-libiptc \--enable-snmp \--enable-dynamic-linking这里我们将Keepalived安装到/usr/local/keepalived目录下,并指定了一些启用的功能,例如libiptc、snmp和动态链接。
Keepalived配置详解
Keepalived配置详解Keepalived 配置⽂件解释Keepalived的所有配置都在⼀个配置⽂件⾥⾯,主要分为三类:全局配置VRRPD配置LVS 配置配置⽂件是以配置块的形式存在,每个配置块都在⼀个闭合的{}范围内,所以编辑的时候需要注意⼤括号的闭合问题。
#和!开头都是注释。
全局配置全局配置是对整个 Keepalived ⽣效的配置,⼀个典型的配置如下:global_defs {notification_email { #设置 keepalived 在发⽣事件(⽐如切换)的时候,需要发送到的email地址,可以设置多个,每⾏⼀个。
acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc #设置通知邮件发送来⾃于哪⾥,如果本地开启了sendmail的话,可以使⽤上⾯的默认值。
smtp_server 192.168.200.1 #指定发送邮件的smtp服务器。
smtp_connect_timeout 30 #设置smtp连接超时时间,单位为秒。
router_id LVS_DEVEL #是运⾏keepalived的⼀个表⽰,多个集群设置不同。
}VRRPD配置VRRPD 的配置是 Keepalived ⽐较重要的配置,主要分为两个部分 VRRP 同步组和 VRRP实例,也就是想要使⽤ VRRP 进⾏⾼可⽤选举,那么就⼀定需要配置⼀个VRRP实例,在实例中来定义 VIP、服务器⾓⾊等。
VRRP Sync Groups不使⽤Sync Group的话,如果机器(或者说router)有两个⽹段,⼀个内⽹⼀个外⽹,每个⽹段开启⼀个VRRP实例,假设VRRP配置为检查内⽹,那么当外⽹出现问题时,VRRPD认为⾃⼰仍然健康,那么不会发⽣Master和Backup的切换,从⽽导致了问题。
keepalived 单播vrrp原理
一、概述1、Keepalived简介2、VRRP协议介绍二、Keepalived单播VRRP原理1、VRRP协议工作原理2、Keepalived单播VRRP配置步骤3、Keepalived单播VRRP的优势和不足三、实际应用场景1、企业网络中的应用2、数据中心网络中的应用四、实例分析1、实例一2、实例二五、总结六、参考文献一、概述1、Keepalived简介Keepalived是一款用于实现负载均衡和高可用性的软件,它支持VRRP(Virtual Router Redundancy Protocol)协议,可以在多台服务器之间实现高可用性的部署。
通过Keepalived,可以实现对网络服务的负载均衡和故障切换,从而提高网络的可用性和稳定性。
2、VRRP协议介绍VRRP是一种用于提供路由器冗余的协议,它允许多台路由器共享一个虚拟IP位置区域,其中一台路由器作为Master,负责转发数据流量,其他路由器处于Backup状态,当Master路由器发生故障时,Backup路由器可以接管Master的工作,从而实现对网络的快速故障恢复。
二、Keepalived单播VRRP原理1、VRRP协议工作原理VRRP协议通过在多台路由器之间共享虚拟IP位置区域和虚拟MAC 位置区域来实现冗余,其中一台路由器被选举为Master,负责转发数据流量,其他路由器处于Backup状态。
Master路由器会定期发送VRRP Hello消息,其他路由器通过接收Hello消息来检测Master的存活状态,如果Master路由器发生故障或者超时未发送Hello消息,其他路由器会发起选举过程,选择一台新的Master路由器。
2、Keepalived单播VRRP配置步骤Keepalived可以通过配置文件实现VRRP协议的单播功能,具体配置步骤如下:- 配置Keepalived主配置文件keepalived.conf,指定VRRP实例的名称、虚拟路由器ID、虚拟IP位置区域等参数;- 配置Keepalived的VRRP单播选项,指定单播通信的目标IP位置区域和端口号;- 启动Keepalived服务,通过执行相关命令来启动VRRP协议的单播通信功能。
linux keepalive 参数
linux keepalive 参数在Linux操作系统中,网络通信是非常重要的一部分。
为了确保网络连接的稳定性和高可用性,我们可以使用Keepalive参数进行配置。
Keepalive参数是一种用于监测连接状态并在需要时进行适当处理的机制。
在Linux中,Keepalive参数可以在TCP/IP协议栈中的内核级别进行设置。
它允许系统定期发送小的探测包(keepalive包)来检测连接的状态。
当检测到连接故障或超时时,操作系统可以采取相应的处理措施,例如关闭连接或重新尝试连接。
使用Keepalive参数的好处之一是能够在网络故障或连接中断时自动检测和处理问题。
这可以帮助我们及时发现并解决连接问题,从而提高系统的可靠性和网络的可用性。
在Linux中,我们可以通过修改TCP/IP堆栈中的几个内核参数来配置Keepalive参数。
这些参数包括:1. tcp_keepalive_time:这个参数指定了TCP keepalive探测包的发送间隔。
通过调整这个参数,我们可以设置系统发送探测包的频率。
默认值通常是7200秒(2小时)。
可以根据实际情况进行调整。
2. tcp_keepalive_probes:这个参数定义了发送几个探测包后仍未收到响应时,系统将认为连接已经断开。
默认值为9。
根据网络环境和连接的可靠性,我们可以根据需要适当调整这个参数。
3. tcp_keepalive_intvl:这个参数指定了在发送探测包之间的时间间隔。
默认值为75秒。
通过调整这个参数,我们可以控制系统在发送探测包后等待多长时间才能发送下一个探测包。
除了这些参数之外,还有其他与Keepalive相关的参数,包括tcp_keepalive_time、tcp_keepalive_intvl、tcp_keepalive_probes等。
要配置Keepalive参数,我们需要在系统的网络配置文件中进行修改。
通常情况下,这些配置文件位于/etc/sysctl.conf或者/etc/sysctl.d/目录下。
keepalived编译安装配置自启动
Centos配置Keepalived 做双机热备切换分类:网站架构2009-07-25 13:53 7823人阅读评论(0) 收藏举报centosserverdelayauthenticationsnscompilerKeepalived系统环境:************************************************************两台服务器都装了CentOS-5.2-x86_64系统Virtual IP: 192.168.30.20Squid1+Real Server 1:网卡地址(eth0):192.168.30.12Squid2+Real Server 2:网卡地址(eth0):192.168.30.13************************************************************软件列表:keepalived/software/keepalived-1.1.17.tar.gzopenssl-develyum -y install openssl-devel***************************************************************配置:配置基于高可用keepalived,确定LVS使用DR模式1.安装配置keepalived1.1安装依赖软件如果系统为基本文本安装,需要安装一下软件# yum -y install ipvsadm# yum -y install kernel kernel-devel# reboot 重启系统切换内核# yum -y install openssl-devel ;安装keepalived依赖软件#ln -s /usr/src/kernels/`uname -r`-`uname -m`/ /usr/src/linux;建立内核链接,编译keepalived支持lvs时需要注意建立链接的内核名和当前运行的内核一致,否则导致安装失败#tar zxvf keepalived-1.1.17.tar.gz#cd keepalived-1.1.17#./configure --prefix=/usr --sysconf=/etcKeepalived configuration------------------------Keepalived version : 1.1.17Compiler : gccCompiler flags : -g -O2Extra Lib : -lpopt -lssl -lcryptoUse IPVS Framework : Yes ;注意编译时一定要支持lvsIPVS sync daemon support : YesUse VRRP Framework : YesUse LinkWatch : NoUse Debug flags : No#make#make install1.2编辑keepalived配置文件#Vi /etc/keepalived/keepalived.confglobal_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state MASTER #备份服务器上将MASTER改为BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 #主、备机的virtual_router_id必须相同priority 100 #主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址如果有多个VIP,继续换行填写 }}virtual_server 192.168.30.20 80 {delay_loop 2 #每隔6秒查询realserver状态lb_algo rr #lvs 算法lb_kind DR #Direct Routepersistence_timeout 50 #同一IP 的连接60 秒内被分配到同一台realserverprotocol TCP #用TCP协议检查realserver状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}1.3BACKUP服务器同上配置,先安装lvs再按装keepalived,仍后配置/etc/keepalived/keepalived.conf,只需将红色标示的部分改一下即可.global_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUP #备份服务器上将MASTER改为BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 #主、备机的virtual_router_id必须相同priority 99 #主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址}}virtual_server 192.168.30.20 80 {delay_loop 2 #每隔6秒查询realserver状态lb_algo rr #lvs 算法lb_kind DR #Direct Routepersistence_timeout 50 #同一IP 的连接60 秒内被分配到同一台realserver protocol TCP #用TCP协议检查realserver状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}2. 配置lvs客户端脚本[c-sharp]view plaincopyprint?1.#vi /usr/local/sbin/realserver.sh2. #!/bin/bash3. # description: Config realserver lo and apply noarp4. #Written by :NetSeek 5.6. SNS_VIP=192.168.30.207.8. . /etc/rc.d/init.d/functions9.10.case"$1"in11. start)12. ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP13. /sbin/route add -host $SNS_VIP dev lo:014. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore15. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce16. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore17. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce18. sysctl -p >/dev/null 2>&119. echo "RealServer Start OK"20.21. ;;22. stop)23. ifconfig lo:0 down24. route del $SNS_VIP >/dev/null 2>&125. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore26. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce27. echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore28. echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce29. echo "RealServer Stoped"30. ;;31. *)32. echo "Usage: $0 {start|stop}"33. exit 134. esac35.36. exit 0或者采用secondary ip address方式配置# vi /etc/sysctl.confnet.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2#sysctl -p#ip addr add 192.168.30.20/32 dev lo#ip add list 查看是否绑定3. 启动lvs-dr脚本和realserver启本,在DR上可以查看LVS当前状态: #watch ipvsadm -ln4. 启动keepalived 服务#service httpd start#/etc/init.d/keepalived start查看keepalived的安装位置:# find / -name keepalived将keepalived作为服务添加到chkconfig中,并设置开机启动# chkconfig --add keepalived# chkconfig --level 35 keepalived on# chkconfig --list keepalivedkeepalived 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭“各等级”包括2、3、4、5等级等级0表示:表示关机等级1表示:单用户模式等级2表示:无网络连接的多用户命令行模式等级3表示:有网络连接的多用户命令行模式等级4表示:不可用等级5表示:带图形界面的多用户模式等级6表示:重新启动5. 测试lvs服务是否正常5.1通过浏览器访问http://192.168.30.20是否正常多次刷新浏览器,在主LVS上看连接数变化5.2停止主LVS上的keepalived 看看备份keepalived是否正常接管服务注:realserver如果为windows主机的话需要安装microsoft loopback,设置IP为VIP确认之后搜索注册表,关键字"VIP"把搜到结果的每项里面的subnet mask都改成255.255.255.255然后重启即可。
keepalived 日志规则
keepalived 日志规则摘要:一、keepalived日志规则概述二、keepalived日志级别及意义三、keepalived日志配置方法四、keepalived日志查看与分析五、keepalived日志在故障排查中的应用六、总结与建议正文:keepalived是一款高性能的负载均衡器,广泛应用于服务器、网络设备等领域。
keepalived日志记录了keepalived组件在运行过程中的各种信息,对于故障排查、性能优化等方面具有重要的参考价值。
本文将详细介绍keepalived日志规则、日志级别及意义、日志配置方法,以及在故障排查中的应用。
一、keepalived日志规则概述keepalived日志遵循一定的规则进行记录,这些规则包括:1.日志级别:keepalived日志分为debug、info、warning、error、crit 五大级别,级别越高,日志信息重要性越高。
2.日志输出:keepalived日志默认输出到syslog,也可以自定义日志输出目标,如文件、网络服务器等。
3.日志时间格式:keepalived日志时间格式为“YYYY-MM-DDHH:MM:SS”。
4.日志条目格式:每条日志条目包括日志级别、时间、组件名称、日志信息等内容。
二、keepalived日志级别及意义1.debug:详细信息,用于调试程序。
:一般性信息,表示keepalived组件正常运行。
3.warning:警告信息,提示可能存在的问题,需关注。
4.error:错误信息,表示keepalived组件运行出现故障。
5.crit:严重错误信息,严重影响keepalived组件正常运行。
三、keepalived日志配置方法1.修改配置文件:编辑keepalived的配置文件(如/etc/keepalived/keepalived.conf),设置日志相关参数,如日志级别、输出目标等。
2.修改日志级别:根据实际需求,调整各个组件的日志级别,使其更加符合故障排查和性能优化的需求。
Keepalive配置文件
Keepalive配置⽂件# 默认配置⽂件[root@ct1 ~]# cat /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { # 全局配置notification_email { # 报警邮件地址acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc # 指定发件⼈smtp_server 192.168.200.1 # 指定smtp服务器地址smtp_connect_timeout 30 # 指定连接smtp服务器超时时间router_id LVS_DEVEL # 虚拟路由标识符,发邮件时显⽰在标中的信息vrrp_skip_check_adv_addr # 跳过检查数据报⽂vrrp_strict # 严格遵循VRRP协议,vrrp_garp_interval 0 # ARP报⽂发送延迟时间vrrp_gna_interval 0 # 信息发送延迟时间}vrrp_script SCRIPT_NAME { # 定义⽤于实例执⾏的脚本}# vrrp⽰例配置部分vrrp_instance VI_1 { # VRRP实例配置模块,由{}包裹起来state MASTER # 定义⾓⾊,MASTER或BACKUPinterface eth0 # 绑定⽹卡设置virtual_router_id 51 # 虚拟路由ID,注意在同⼀个vrrp_instance中不能重复priority 100 # 优先级advert_int 1 # 探测时间间隔,⼼跳间隔,单位为秒,MASTER和BACKUP必须⼀致authentication { # 认证部分auth_type PASS # 认证⽅式,PASS或HAauth_pass 1111 # 密码,在⼀个vrrp_instance中MASTER和BACKUP的密码必须⼀致}virtual_ipaddress { # 设置虚拟IP地址,可设置多个。
keepalived配置参数官方文档翻译中文版
1. Globals configurations 1.全局配置部分 This block is divided in 2 sub-block : 此块被划分为 2 分块:
* Global definitions * Static routes *全局定义部分 *静态路由设置部分 1.1. Global definitions 1.1 全局定义部分 The configuration block looks like : 配置模块如下所示
1.3. Static routes 1.3 静态路由
The configuration block looks like : 此模块的配置如下
static_routes {
# block identification
src <IP ADDRESS> [to] <IP ADDRESS>/<MASK> via|gw <IP ADDRESS> dev
<STRING> scope <SCOPE> table <TABLE-ID> # to is optional
src <IP ADDRESS> [to] <IP ADDRESS>/<MASK> via|gw <IP ADDRESS> dev
<STRING> scope <SCOPE> table <TABLE-ID> # to is optional
all VRRP instances which monitor it. On the opposite, a negative weight will be subtracted from the initial priority in case of failure.
keepalived日志
keepalived日 志
默认日志存放在 /var/log/messages
一、查看配置文件
# Options for keepalived. See `keepalived --help' output and keepalived(8) and
-d Dump the configuration data.
# --log-detail
-D Detailed log messages.
# --log-facility -S 0-7 Set local syslog facility (default=LOG_DAEMON)
#
KEEPALIVED_OPTIONS="-D"
# keepalived.conf(5) man pages for a list of all options. Here are the most
# common ones :
#
# --vrrp
-P Only run with VRRP subsystem.
# --check
-C Only run with Health-checker subsystem.
# --dont-release-vrrp -V Dont remove VRRP VIPs & VROUTEs on daemon stop.
# --dont-release-ipvs -I Dont remove IPVS topology on daemon stop.# -Fra bibliotekdump-conf
keepalived的日志 -回复
keepalived的日志-回复Keepalived的日志是指Keepalived进程运行时输出的各种细节信息。
通过查看Keepalived的日志,可以了解Keepalived的运行状态、事件发生情况,以及相关问题的排查和分析。
本文将从几个关键的方面来详细介绍Keepalived的日志,包括日志的格式与输出位置、日志等级、日志事件和故障排查等。
一、日志的格式与输出位置Keepalived的日志默认以syslog格式输出,可以通过修改Keepalived 配置文件来改变日志输出的格式以及输出的位置。
在Keepalived的配置文件(一般为`keepalived.conf`)中,可以通过以下配置语句修改日志输出的格式和位置:log [日志等级] [日志标签] [日志文件路径]log syslog [日志标签]其中,`日志等级`可以设置为`debug`、`info`、`notice`、`warning`、`err`、`crit`、`alert`、`emerg`等。
`日志标签`是可选项,用于标识该条日志的来源,一般为Keepalived的虚拟路由器(VRR)的名称或ID。
`日志文件路径`用于指定日志输出到文件的路径,该参数可选,如果不配置,则日志将通过syslog输出。
二、日志等级Keepalived的日志按照严重程度分为多个等级,分别为:`debug`、`info`、`notice`、`warning`、`err`、`crit`、`alert`和`emerg`。
这些等级的含义如下:- `debug`:用于调试目的,输出详细的调试信息,一般在开发和测试环境中使用。
- `info`:用于输出一般信息,包括Keepalived的起停信息、状态变更等。
- `notice`:用于输出一般但重要的信息。
- `warning`:用于输出警告信息,表示可能会发生一些问题。
- `err`:用于输出错误信息,表示发生了一些错误,但不影响Keepalived 的正常工作。
如何利用shell开发keepalived启动脚本
如何利⽤shell开发keepalived启动脚本keepalived是什么?Keepalived软件起初是专为LVS负载均衡软件设计的,⽤来管理并监控LVS集群系统中各个服务节点的状态,后来⼜加⼊了可以实现⾼可⽤的VRRP功能。
因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的⾼可⽤解决⽅案软件。
Keepalived软件主要是通过VRRP协议实现⾼可⽤功能的。
VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的⽬的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个⽹络可以不间断地运⾏。
所以,Keepalived ⼀⽅⾯具有配置管理LVS的功能,同时还具有对LVS下⾯节点进⾏健康检查的功能,另⼀⽅⾯也可实现系统⽹络服务的⾼可⽤功能。
1.1 keepalived的相关的⽂件keepalived的执⾏命令:/data/apps/keepalived/sbin/keepalivedkeepalived的配置⽂件:/data/apps/keepalived/etc/keepalived/keepalived.confkeepalived的Pid⽂件:/data/apps/keepalived/run/keepalived.pid1.2 keepalived的启停⽌⽅式注意:不要去修改/data/apps/keepalived/etc/sysconfig/keepalived⽂件启动⽅式:keepalived -f 配置⽂件(绝对路径) -p PID⽂件(绝对路径)关闭⽅式:kill $( cat PID⽂件(绝对路径) )1.3 脚本内容注意:该脚本只能Linux的超级⽤户root才能启动,因为脚本中有进⾏限制#!/bin/bash## Define variablesRETVAL=0Conf="/data/apps/keepalived/etc/keepalived/keepalived.conf"Exce="/data/apps/keepalived/sbin/keepalived"Pid="/data/apps/keepalived/run/keepalived.pid"# Determine the user to executeif [ "$UID" -ne "$RETVAL" ];thenecho "Must be root to run scripts"exit 1fi# Load local functions library[ -f /etc/init.d/functions ] && source /etc/init.d/functions# Define functionsstart(){if [ ! -f "$Pid" ];then$Exce -f $Conf -p $Pid >/dev/null 2>&1RETVAL=$?if [ $RETVAL -eq 0 ];thenaction "Start keepalived service" /bin/trueelseaction "Start keepalived service" /bin/falsefielseecho "keepalived service is running"fireturn $RETVAL}stop(){if [ -f "$Pid" ];thenkill $(cat $Pid) >/dev/null 2>&1RETVAL=$?if [ $RETVAL -eq 0 ];thenaction "Stop keepalived service" /bin/trueelseaction "Stop keepalived service" /bin/falsefielseecho "keepalived service is not running"fireturn $RETVAL}status(){if [ -f "$Pid" ];thenecho "keepalived service is running"elseecho "keepalived service is not running"fireturn $RETVAL}# case local functionscase "$1" instart)startRETVAL=$?;;stop)stopRETVAL=$?;;status)statusRETVAL=$?;;restart)stopsleep 2startRETVAL=$?;;*)echo "USAGE:$0{status|start|stop|restart}"exit 1esac# Scripts return valuesexit $RETVAL总结到此这篇关于使⽤shell开发keepalived启动脚本的⽂章就介绍到这了,更多相关shell keepalived启动脚本内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
protocol TCP #//协议类型
real_server 172.19.1.15 80 { #//真实服务器的IP地址、端口
weight 1 #//节点权重
TCP_CHECK {
connect_timeout 10 #//连接超时
}
}
}
virtual_server 172.19.1.19 3478 {
delay_loop 2
lb_algo wrr
lb_kind DR
# persistence_timeout 1
protocol UDP
real_server 172.19.1.15 3478 {
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 172.19.1.19 3478 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 10
protocol UDP
real_server 172.19.1.15 3478 {
weight 1
TCP_CHECK {
172.19.1.19
}
}
virtual_server 172.19.1.19 80 {
delay_loop 2
lb_algo wrr
lb_kind DR
# persistence_timeout 1
protocol TCP
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
}
这2个文件的差别只有2个地方,一个是vrrp_instance.state, 一个是vrrp_instance.priority.
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
real_server 172.19.1.16 3478 {
weight 1
}
}
real_server 172.19.1.16 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
real_server 172.19.1.16 3478 {
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
}
同理LVS2上的也需要配置这个文件:
global_defs {
priority 200 #//竞选优先级,数字越大优先级越高
advert_int 5 #//通告间隔秒数(心跳频率)
authentication { #//本VRRP组的认证信息
auth_type PASS
auth_pass 1111
nb_get_retry 3 #//重试次数
delay_before_retry 3 #//重试间隔
}
}
real_server 172.19.1.16 80 {
weight 1
lb_algo wrr #//负载调度算法(wrr为根据权重轮询,其他参见ipvsadm手册)
lb_kind DR #//负载均衡类型,常用的为DR、NAT方式
# persistence_timeout 1 #//连接保持时间,适用于动态Web站点、FTP站点ss {
172.19.1.19 #//热备所针对的虚拟地址(VIP),可以有多个
}
}
virtual_server 172.19.1.19 80 { #//虚拟服务器的IP地址、端口
delay_loop 2 #//健康检查的间隔时间
router_id LVS_STUN
}
vrrp_sync_group VGM {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
real_server 172.19.1.15 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
virtual_router_id 51
priority 150
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
state MASTER #//负载均衡器的角色
interface eth0 #//承载VIP地址的物理接口
lvs_sync_daemon_inteface eth0 #//虚拟路由器的ID号,每个热备组保持相同
virtual_router_id 51
vi /etc/keepalived/keepalived.conf
内容配置如下:
global_defs {
router_id LVS_STUN
}
vrrp_sync_group VGM {
group {
VI_1
}
}
vrrp_instance VI_1 {