keeperalived配置

keeperalived配置

0基础概述:

keepalived如果想要配置两台服务器的高可用,部署的东西一定要采用相同的账号密码和端口,keepalived其实就是代理,默认keepalived的VIP端口号是与其代理的服务器一一对应的。

举个例子,你现在有两台服务器,A服务器为主服务器,B服务器为副服务器,我们以Mysql为例,A服务器上的Mysql端口号是3306,B服务器上为3309,如果在不额外配置的情况下,肯定是无法成功转移到B服务器上的,用户名和密码亦是同理。

keepalived搭建:

1、Master安装keepalived

安装keepalived

yum install –y kernel-devel openssl-develpopt-devel

yum install -y keepalived

修改配置:

! Configuration File for keepalived

global_defs {

# 当keepalived服务出现特定事件(如主备切换、服务故障等)时,会向这些邮箱发送通知邮件

notification_email {

admin1@qq.com

}

# 定义发送通知邮件的发件邮箱地址

notification_email_from admin@qq.com

# 指定用于发送通知邮件的SMTP服务器地址

smtp_server smtp.qq.com

# 设置连接SMTP服务器的超时时间

smtp_connect_timeout 30

# SMTP服务器验证身份

smtp_user admin@qq.com

# 授权码

smtp_password "xxxxxxxx"

}

vrrp_script chk_mysql_port {

# 指定要执行的脚本路径

script "/tmp/mysql.sh"

# 设置脚本执行的时间间隔

interval 2

}

# 定义VRRP实例,用于实现虚拟路由器冗余功能

vrrp_instance VI_1 {

# 定义当前节点在此VRRP实例中的初始状态,可选值为MASTER(主节点)或BACKUP(备份节点)

state MASTER

# 指定绑定虚拟IP的网卡接口名称

interface eth0

# 设置本机的IP地址

mcast_src_ip 192.168.110.73

# 虚拟路由器标识,同一个VRRP组内(即多个节点共同参与的冗余场景)的所有节点此值必须一致

virtual_router_id 51

# 定义节点的优先级,数字越大优先级越高

priority 101

# 定义VRRP通告消息的发送间隔时间,单位为秒,用于节点之间交换状态信息,保持状态同步

advert_int 1

# 配置VRRP实例的认证信息,用于节点之间验证通信的合法性

authentication {

auth_type PASS

auth_pass 123456

}

# 定义虚拟IP地址及对应的子网掩码

virtual_ipaddress {

192.168.110.79/24

}

# 定义跟踪脚本相关配置

track_script {

chk_mysql_port

}

}

注:keepalived的配置文件读取顺序是从上往下读取的,创建方法,必须要在引用方法的上方,例如上方我配置了跟踪脚本,必须要在track_script 引用的上方,不能出现在下方,否则,运行会出现错误,即找不到引用的方法。

编写kill_keepalived.sh

vim /tmp/mysql.sh

mysql.sh内容如下

#!/bin/bash

counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)

if [ "${counter}" == 0 ];then

systemctl stop keepalived

fi

设置权限

chmod 755 /tmp/mysql.sh

启动keepalived

systemctl start keepalived

2、Slave安装keepalived

安装keepalived

yum install –y kernel-devel openssl-develpopt-devel

yum install -y keepalived

修改配置:

! Configuration File for keepalived

global_defs {

# 当keepalived服务出现特定事件(如主备切换、服务故障等)时,会向这些邮箱发送通知邮件

notification_email {

admin1@qq.com

}

# 定义发送通知邮件的发件邮箱地址

notification_email_from admin@qq.com

# 指定用于发送通知邮件的SMTP服务器地址

smtp_server smtp.qq.com

# 设置连接SMTP服务器的超时时间

smtp_connect_timeout 30

# SMTP服务器验证身份

# smtp_user admin@qq.com

# 授权码

# smtp_password "xxxxxxxxx"

}

vrrp_script chk_mysql_port {

# 指定要执行的脚本路径

script "/tmp/mysql.sh"

# 设置脚本执行的时间间隔

interval 2

}

# 定义VRRP实例,用于实现虚拟路由器冗余功能

vrrp_instance VI_1 {

# 定义当前节点在此VRRP实例中的初始状态,可选值为MASTER(主节点)或BACKUP(备份节点)

state BACKUP

# 指定绑定虚拟IP的网卡接口名称

interface eth0

# 设置本机的IP地址

mcast_src_ip 192.168.110.71

# 虚拟路由器标识,同一个VRRP组内(即多个节点共同参与的冗余场景)的所有节点此值必须一致

virtual_router_id 51

# 定义节点的优先级,数字越大优先级越高

priority 99

# 定义VRRP通告消息的发送间隔时间,单位为秒,用于节点之间交换状态信息,保持状态同步

advert_int 1

# 配置VRRP实例的认证信息,用于节点之间验证通信的合法性

authentication {

auth_type PASS

auth_pass 123456

}

# 定义虚拟IP地址及对应的子网掩码

virtual_ipaddress {

192.168.110.79/24

}

# 定义跟踪脚本相关配置

track_script {

chk_mysql_port

}

}

注:不知道为什么,这里的邮箱提示报错,尚未解决,如果有能解决的请解决一下。

编写kill_keepalived.sh

vim /tmp/mysql.sh

mysql.sh内容如下

#!/bin/bash

counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)

if [ "${counter}" == 0 ];then

systemctl stop keepalived

fi

设置权限

chmod 755 /tmp/mysql.sh

启动keepalived

systemctl start keepalived

相关推荐

微软预告将发布 Surface Laptop 8 和 Surface Pro 12
bt365在线投注

微软预告将发布 Surface Laptop 8 和 Surface Pro 12

📅 06-27 👀 8620
哪些“毛”可以制作毛笔丨三联文房毛笔课堂(第三讲)
WeChat 安全中心
www.bst365.com

WeChat 安全中心

📅 07-03 👀 4271
WeChat 安全中心
www.bst365.com

WeChat 安全中心

📅 07-03 👀 4271