Centos7 keepalived安装并监控mysql实现自动切换
时间:2022-07-22
本文章向大家介绍Centos7 keepalived安装并监控mysql实现自动切换,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
安装
下载(https://www.keepalived.org/download.html)
wget https://www.keepalived.org/software/keepalived-2.1.5.tar.gz
tar -xvf keepalived-2.1.5.tar.gz -C /usr/local/src
cd /usr/local/src/keepalived-2.1.5
./configure --prefix=/
#安装一般不能一帆风顺,一般会缺少OpenSSL
#1.在线安装:yum install -y openssl openssl-devel
#2.离线安装:参考离线安装openssl.md
make && make install
修改配置 /etc/keepalived/keepalived.conf
#node117
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_script chk_msql {
script "/etc/keepalived/check_mysql.sh"
interval 3
timeout 9
fall 2
rise 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 125
mcast_src_ip 192.168.6.117
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_msql
}
virtual_ipaddress {
192.168.6.125
}
}
#node118
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_script chk_msql {
script "/etc/keepalived/check_mysql.sh"
interval 3
timeout 9
fall 2
rise 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 125
mcast_src_ip 192.168.6.118
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_msql
}
virtual_ipaddress {
192.168.6.125
}
}
#check_mysql.sh
#!/bin/bash
#MYSQL=mysql
#MYSQL_HOST=localhost
#MYSQL_USER=root
MYSQL_PASSWORD=xiaoWEI0923!
#$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD -e "show status;" >/dev/null 2>&1
mysql -uroot -p$MYSQL_PASSWORD -e "show status;" >/dev/null 2>&1
#$mysqlclient --host=$host --port=$port --user=$user --password=$password -e "show databases;" > /dev/null 2>&1
if [ $? == 0 ]
then
echo " $host mysql login successfully "
exit 0
else
#echo " $host mysql login faild"
#/etc/init.d/keepalived stop
exit 2
fi
#check_nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
sleep 2
if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
#systemctl stop keepalived
echo "nginx exit"
exit 2
fi
fi
echo "nginx running..."
exit 0
启动
systemctl enable keepalived.service
systemctl start keepalived.service
# 可通过status查看相关错误
systemctl status keepalived.service
测试
1.ip addr查看虚拟ip绑定到了哪台机器(假如为A机器)
2.停止A机器keepalived,确认ip绑定到了另一台机器(B机器)
3.启动A机器keealived,停止B机器上keepavlived,ip绑定到A机器
4.同样方式测试mysql,停止A机器mysql,ip绑定到了B
4.恢复A机器mysql,停止B机器mysql,ip绑定到了A
另一种配置方法
#通过端口区分不同业务
! Configuration File for keepalived
global_defs {
router_id 001
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 125
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.6.125
}
track_script {
nginx_check
}
}
vrrp_script nginx_check {
script "/etc/keepalived/scripts/check_n.sh"
interval 1
weight -20
}
virtual_server 192.168.6.125 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.6.117 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.6.118 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
- 四、请求库之selenium模块
- python中列表的sort方法使用详解
- 深度学习2017成果展
- Python正则表达式中的re.S的作用
- 图片转文字居然这么简单,多亏了这几个神器!
- 三、请求库之requests模块
- 升级 微信技术输出 时尚新门店尝鲜刷脸支付
- WSP Global品牌升级 启用3声母域名
- 一、爬虫基本原理
- python 中__setattr__, __getattr__,__getattribute__, __call__使用方法
- 量子技术与人工智能:同时进化的双生子
- TCP协议三次握手与四次挥手通俗解析
- Silverlight/aspx/ajax/mvc的UI自动化测试
- Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法