keepalived安装及配置使用keepalived监听端口

keepalived安装及配置使用keepalived监听端口

keepalived安装及配置使用keepalived监听端口

教程分享

>

Java教程

(12830)

2023-03-28 11:29:14

(keepalived双机网络图)

1.通过yum安装keepalived软件

yum install keepalived -y

2.keepalived默认配置文件存放位置

/etc/keepalived/keepalived.conf

3.keepalived配置文件详解

模式1:通过keepalived检查脚本,脚本检查应用的方式使用。 通过shell脚本检查应用的进程是否存在,如果不存在则停止keepalived服务,达到让本机失去抢占VIP的机会。剩下的其他机器根据优先级占用VIP; 注意:每个机器的优先级必须不同;每个机器状态默认均为BACKUP(BACKUP不会在高优先级启动的时候瞬间抢占VIP,主要用于数据库方面的数据同步,如果瞬间抢回中间未同步完全的数据将会出现问题);

! Configuration File for keepalived

global_defs {

router_id 10086 #用户标识本节点的名称,通常为hostname

}

vrrp_script check_redis {#创建一个vrrp_script脚本,检查配置

script "/etc/keepalived/check_redis.sh" #在脚本中杀死keepalived的进程

interval 2 #检查脚本的频率,单位(秒)

}

vrrp_instance VI_1 {

state BACKUP #配置为BACKUP节点,一般有三个配置可选MASTER(主机)、BACKUP(备机)

nopreempt #不抢占模式,必须配合BACKUP。在配置了该模式后优先级则失去作用。谁先启动谁就是MASTER,失败后必须杀死当前keepalived进程,再次重启不会立即抢占资源。实际场合中推荐使用该方式而不是使用优先级的抢占模式。抢占模式会出现一些数据同步的问题。

interface eth0 #虚拟IP使用的网卡名称

virtual_router_id 51 #VRRP组名,多个节点的设置值必须一样,以指明各个节点属于同一个VRRP组

priority 90 #节点的优先级(1-254之间的值)

advert_int 1 #组播信息发送间隔,多个节点设置必须一样

authentication {#设置验证信息,同一个组的多个节点设置必须一致

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {#指定虚拟IP(即VIP)同一个组的多个节点必须设置一致

192.168.1.100

}

track_script {

check_redis #执行指定vrrp_script脚本

}

}

check_redis.sh脚本:

#!/bin/sh

CHECK_PROCESS=`ps -C redis-server --no-heading| wc -l`

if [ $CHECK_PROCESS -eq 0 ];then

echo "Redis is stop"

sleep 2

CHECK_PROCESS=`ps -C redis-server --no-heading| wc -l`

if [ $CHECK_PROCESS -eq 0 ];then

/etc/init.d/keepalived stop

fi

fi

check_port.sh脚本

#!/bin/bash

#keepalived 监控端口脚本

#使用方法:

#在keepalived的配置文件中

#vrrp_script check_port {#创建一个vrrp_script脚本,检查配置

# script "/etc/keepalived/check_port.sh 6379" #配置监听的端口

# interval 2 #检查脚本的频率,单位(秒)

#}

CHK_PORT=$1

echo $CHK_PORT

if [ "$CHK_PORT" != "" ];then

PORT_PROCESS=`lsof -i:$CHK_PORT|wc -l`

if [ $PORT_PROCESS -eq 0 ];then

echo "Port $CHK_PORT Is Not Used,End."

sleep 2

PORT_PROCESS=`lsof -i:$CHK_PORT|wc -l`

if [ $PORT_PROCESS -eq 0 ];then

/etc/init.d/keepalived stop

fi

fi

else

echo "Check Port Cant Be Empty!"

fi

模式二:通过keepalived直接监听应用端口方式使用 配置文件:/etc/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id 10086

}

vrrp_script check_redis {

script "

interval 2 #检查脚本的频率,单位(秒)

weight -30 #端口检查失败,优先级减少30,默认减少2[注意:两台主机配置的weight相同时候必须保证weight的值大于priority差值]

}

vrrp_instance VI_1 {

state MASTER#BACKUP

interface eth0

virtual_router_id 51

priority 95

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.100

192.168.2.110

}

track_script {

check_redis

}

} 每个主机配置的内容仅仅优先级不能相同,其他保持一致。这里默认使用的MASTER,所以在优先级高的节点恢复之后会立即抢占VIP。如果不希望立即抢回VIP则配置BACKUP,BACKUP则是当前VIP机器的keepalived服务挂掉再去寻找高优先级的主机。 整个过程可以通过一下命令查看日志:

tail -f /var/log/message

推荐使用脚本+非抢占模式使用

4.开放防火墙端口 注意:keepalived默认使用端口122进行通讯,必须开放112端口,或者停用防火墙.保证各个主机之间112端口的连通性 CentOS6中iptables配置开放112端口

#iptables -I INPUT -p 112 -j ACCEPT 保存规则并重启防火墙

service iptables save

service iptables restart

查看iptables端口开放情况

[root@template keepalived]# iptables -L -n --line-numbers

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 ACCEPT 112 -- 0.0.0.0/0 0.0.0.0/0

2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

3 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

[root@template keepalived]#

5.启动keepalived 启动命令:

service keepalived start 查看启用状态

service keepalived status 设置开机启动

chkconfig keepalived on keepalived其他详细配置说明

全局定义块

1、email通知(notification_email、smtp_server、smtp_connect_timeout):用于服务有故障时发送邮件报警,可选项,不建议用。需要系统开启sendmail服务,建议用第三独立监控服务,如用nagios全面监控代替。 2、lvs_id:lvs负载均衡器标识,在一个网络内,它的值应该是唯一的。 3、router_id:用户标识本节点的名称,通常为hostname 4、花括号{}:用来分隔定义块,必须成对出现。如果写漏了,keepalived运行时不会得到预期的结果。由于定义块存在嵌套关系,因此很容易遗漏结尾处的花括号,这点需要特别注意。

VRRP实例定义块

vrrp_sync_group:同步vrrp级,用于确定失败切换(FailOver)包含的路由实例个数。即在有2个负载均衡器的场景,一旦某个负载均衡器失效,需要自动切换到另外一个负载均衡器的实例是哪

group:至少要包含一个vrrp实例,vrrp实例名称必须和vrrp_instance定义的一致

vrrp_instance:vrrp实例名 1> state:实例状态,只有MASTER 和 BACKUP两种状态,并且需要全部大写。抢占模式下,其中MASTER为工作状态,BACKUP为备用状态。当MASTER所在的服务器失效时,BACKUP所在的服务会自动把它的状态由BACKUP切换到MASTER状态。当失效的MASTER所在的服务恢复时,BACKUP从MASTER恢复到BACKUP状态。 2> interface:对外提供服务的网卡接口,即VIP绑定的网卡接口。如:eth0,eth1。当前主流的服务器都有2个或2个以上的接口(分别对应外网和内网),在选择网卡接口时,一定要核实清楚。 3>mcast_src_ip:本机IP地址 4>virtual_router_id:虚拟路由的ID号,每个节点设置必须一样,可选择IP最后一段使用,相同的 VRID 为一个组,他将决定多播的 MAC 地址。 5> priority:节点优先级,取值范围0~254,MASTER要比BACKUP高 6>advert_int:MASTER与BACKUP节点间同步检查的时间间隔,单位为秒 7>lvs_sync_daemon_inteface:负载均衡器之间的监控接口,类似于 HA HeartBeat的心跳线。但它的机制优于 Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。在 DR 模式中,lvs_sync_daemon_inteface与服务接口interface使用同一个网络接口 8> authentication:验证类型和验证密码。类型主要有 PASS、AH 两种,通常使用PASS类型,据说AH使用时有问题。验证密码为明文,同一vrrp实例MASTER与BACKUP使用相同的密码才能正常通信。 9>smtp_alert:有故障时是否激活邮件通知 10>nopreempt:禁止抢占服务。默认情况,当MASTER服务挂掉之后,BACKUP自动升级为MASTER并接替它的任务,当MASTER服务恢复后,升级为MASTER的BACKUP服务又自动降为BACKUP,把工作权交给原MASTER。当配置了nopreempt,MASTER从挂掉到恢复,不再将服务抢占过来。 11>virtual_ipaddress:虚拟IP地址池,可以有多个IP,每个IP占一行,不需要指定子网掩码。注意:这个IP必须与我们的设定的vip保持一致。

keepalived.conf配置文件中加入以下内容

1.notify_master“想要执行的脚本路径” #表示当切换到master状态时,要执行的脚本

2.notify_backup “想要执行的脚本路径”#表示当切换到backup状态时,要执行的脚本

3.notify_fault“想要执行的脚本路径”#表示切换出现故障时要执行的脚本

keepalived

https://www.leftso.com/article/252.html

相关推荐

手机怎么上推特?国内手机怎么下载twitter?
大话西游2游戏里面的11-13星出现的具体时间跟位置?(大话西游211星12星奖励)
年轻人为什么会长白胡子
365体育网址

年轻人为什么会长白胡子

📅 06-29 👁️ 5719
电脑文件加密怎么设置?文件加密的5种方法,千万别错过!
人妖日本AV影片和免费预告片列表 (番号库)
365体育网址

人妖日本AV影片和免费预告片列表 (番号库)

📅 06-27 👁️ 2964
优游国际注册:如何完成注册,享受全球顶级娱乐体验
《贪玩蓝月》最实用装备全解攻略曝光 赶快围观!
365体育黑钱吗

《贪玩蓝月》最实用装备全解攻略曝光 赶快围观!

📅 07-05 👁️ 5858
斗鱼app怎么看回放
365体育黑钱吗

斗鱼app怎么看回放

📅 06-29 👁️ 3743
隐藏文件夹怎么找出来?(3种方法)
365体育黑钱吗

隐藏文件夹怎么找出来?(3种方法)

📅 06-30 👁️ 1174