装keepalived前,要先检查主机上是否已经安装,
ps -ef | grep keepalive
不检查的话。easy把前人装的东西覆盖掉,那么曾经弄的配置文件都没了比較麻烦。


下面都为root用户
root用户上传工具,压缩包就200多k,不大。
cd && mkdir fwy && chmod 777 fwy && cd fwy
scp padba@cnsz081003:/paic/dba/dbsoft/mysql/keepalived-1.1.19.tar.gz .
passwordMdCg2014
tar xvf keepalived-1.1.19.tar.gz
mv keepalived-1.1.19 ..

安装OpenSSL
[root@cnsh042942 fwy]# yum install openssl-devel
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
el6_u5_base | 1.2 kB 00:00
Setting up Install Process
Package openssl-devel-1.0.1e-15.el6.x86_64 already installed and latest version
Nothing to do

编译并安装
mv /root/fwy/keepalived-1.1.19 /root
cd /root/keepalived-1.1.19
./configure
make && make install

配置
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /opt/keepalived
touch /etc/keepalived/keepalived.conf

配置脚本
[root@cnsh042942 keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
    link/ether 00:50:56:aa:0a:89 brd ff:ff:ff:ff:ff:ff
3: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UP
    link/ether 00:50:56:aa:0a:89 brd ff:ff:ff:ff:ff:ff
    inet 10.31.10.138/24 brd 10.31.10.255 scope global bond0
    inet6 fe80::250:56ff:feaa:a89/64 scope link
       valid_lft forever preferred_lft forever

我们的10.31.10.138是绑定在bond0上的,bond0应该算是虚拟网卡。

当中interface bond0的bond0。virtual_router_id 117的117。virtual_ipaddress中的地址。是写成自己想要的vip,也是DA先申请好一个vip以免冲突。


touch /opt/keepalived/keepalived_check_mysql.sh
touch /opt/keepalived/to_master.sh

keepalived.conf配置文件,该文件存在可是是空的。
ls -l /etc/keepalived/keepalived.conf

Master节点用例如以下脚本:
vrrp_script check_mysql {
  script "/opt/keepalived/keepalived_check_mysql.sh"
  weight -10
}
vrrp_instance KEEPALIVED_MYSQL {
        ##注意:两台MYSQLserver都设置为BACKUP
        state backup
        interface bond0
        virtual_router_id 117
        ##Master设置为101,Slave设置为100
        priority 101
        nopreempt
       
        track_script {
          check_mysql
        }
        virtual_ipaddress {
                10.31.10.152
        }
        notify_master /opt/keepalived/to_master.sh
}
vrrp_script check_mysql {
  script "/opt/keepalived/keepalived_check_mysql.sh"
  weight -10
}
主库、从库的virtual_router_id值要同样,mysql取100-149之间,假设同一网段已经有同样的virtual_router_id被用了,那么就会起来失败。

Slave节点用例如以下脚本,能够注意到,priority比上面小1。
vrrp_instance KEEPALIVED_MYSQL {
        ##注意:两台MYSQLserver都设置为BACKUP
        state backup
        interface bond0
        virtual_router_id 117
        ##Master设置为101,Slave设置为100
        priority 100
        ##nopreempt
       
        track_script {
          check_mysql
        }
        virtual_ipaddress {
                10.31.10.152
        }
        notify_master /opt/keepalived/to_master.sh
}


创建通道
通道就是,在mysql里面定义一些能够用密文登陆的用户。然后给一些工具直接用密文来登陆的,以保证安全。

切换到mysql用户:
mysql_config_editor set --login-path=keepalived_monitor --host=localhost --user=keepalived --password
--socket=${MYSQL_HOME}/var/mysql.sock
然后就会在mysql用户家文件夹下生成一下.mylogin.cnf文件。

root用户
cd /opt/keepalived/
keepalived_check_mysql.sh脚本例如以下
MYSQL=/usr/bin/mysql,要改动为/paic/t0gimp/rdbms/mysql/5.6/bin/mysql
LOG_FILE=/opt/keepalived/check_mysql.log 这里能够改动为更具识别名称的/opt/keepalived/check_t0gimp.log
export MYSQL_TEST_LOGIN_FILE=/paic/emmsq/data/mysqldata/emmsq /.mylogin.cnf ,这个.mylogin.cnf文件。在mysql用户的家文件夹下。是用mysql用户创建通道时自己主动建立的。
$MYSQL --login-path=keepalived_monitor -e 的”keepalived_monitor改动为实际的通道名“

#!/bin/bash
MYSQL=/paic/t0gimp/rdbms/mysql/5.6/bin/mysql
# 日志文件
LOG_FILE=/opt/keepalived/check_t0gimp.log
export MYSQL_TEST_LOGIN_FILE=/paic/t0gimp/rdbms/mt0gimp/.mylogin.cnf
# 检查次数
CHECK_TIME=3
#mysql is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0
MYSQL_OK=1
function check_mysql_helth (){
  $MYSQL --login-path=keepalived_monitor -e
"show status;" >/dev/null 2>&1
  if [ $? = 0 ] ;then
    MYSQL_OK=1
  else
    MYSQL_OK=0
  fi
  return $MYSQL_OK
}
while [ $CHECK_TIME -ne 0 ]
do
  let "CHECK_TIME -= 1"
  check_mysql_helth
  if [ $MYSQL_OK = 1 ] ; then
    CHECK_TIME=0
    #echo `date --date=today +"%Y-%m-%d %H:%M:%S"` - [INFO] - mysql available: success[$MYSQL_OK] >> $LOG_FILE
    exit 0
  fi
  if [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]
  then
    echo `date --date=today +"%Y-%m-%d %H:%M:%S"` - [INFO] - mysql invaild. keepalived stop. >> $LOG_FILE
    exit 1
  fi
  sleep 1
done


to_master.sh  这是从库切换为主库之后执行的shell脚本

#!/bin/bash
MYSQL=/paic/t0gimp/rdbms/mysql/5.6/bin/mysql
VIP=10.31.10.152
GATEWAY=10.31.10.200
/sbin/arping -I bond0 -c
5 -s $VIP $GATEWAY &>/dev/null
$MYSQL --login-path=keepalived_switch -e "set
global read_only=OFF" >/dev/null 2>&1

sh脚本赋权
cd /opt/keepalived
chmod 700 *.sh

keepalived启停
[root@cnsh281018 ~]# /etc/init.d/keepalived start
[root@cnsh281018 ~]# /etc/init.d/keepalived stop

验证,
[root@cnsh042942 keepalived]# /etc/init.d/keepalived start
Starting keepalived: [ OK ]
[root@cnsh042942 keepalived]# ps -ef | grep keepa
root 20353 1 0 13:53 ? 00:00:00 keepalived -D
root 20354 20353 0 13:53 ? 00:00:00 keepalived -D
root 20372 1 0 13:53 ? 00:00:00 /bin/bash /opt/keepalived/keepalived_check_mysql.sh
root 20382 20354 3 13:53 ?

00:00:00 keepalived -D

root 20383 20382 0 13:53 ?

00:00:00 /bin/bash /opt/keepalived/keepalived_check_mysql.sh

root 20394 17696 0 13:53 pts/2 00:00:00 grep keepa

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Keepalived安装工具的更多相关文章

  1. Keepalived+HAProxy 搭建高可用负载均衡

    转载自:https://mp.weixin.qq.com/s/VebiWftaRa26x1aA21Jqww 1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技 ...

  2. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

  3. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  4. keepalived从机接管后主机恢复不抢占VIP

    在lvs+keepalived环境中,为了减小keepalived主从切换带来的意外风险,,设置主机恢复后不抢占VIP.待进行vrrp协议通告备机不可用时切换.主要修改两个地方.(红色部分) 只需修改 ...

  5. keepalived 知识备注

    keepalived可用于配置nginx/lvs等负载均衡设备的双机热备. keepalived基于VRRP协议,简单的说就是两个物理路由节点(一主一备),虚拟成一个逻辑上的路由节点. 实际消息的路由 ...

  6. Windows下PowerShell监控Keepalived

    一.背景 某数据库服务器为CentOS,想要监控Keepalived的VIP是否有问题,通过邮件进行报警,但这台机器不能上外网,现在只能在Windows下通过PowerShell来完成发邮件预警. 二 ...

  7. Keepalived+LVS+nginx双机热备

    Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...

  8. 基于keepalived双主模型的高可用LVS

    背景知识: keepalived:Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除, ...

  9. Keepalived使用梳理

    keepalived介绍keepalived观察其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,它集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防 ...

随机推荐

  1. zookeeper perl 版本需求

    [root@wx03 ~]# perl -v This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux Cop ...

  2. JSpider是一个用Java实现的WebSpider

    JSpider是一个用Java实现的WebSpider,JSpider的执行格式如下: jspider [URL] [ConfigName] URL一定要加上协议名称,如:http://,否则会报错. ...

  3. php 遍历文件夹及文件,获取文件名和文件路径存入数据库中

    <?php header("Content-Type:text/html; charset=gbk"); require('../../include/connect.php ...

  4. 关于 Oracle外键列上是否需要索引问题?

    外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可能会造成严重性能问题.   无论是Oracle的官方文档,还是在Tom的书中都说明了两种情况下可以忽略外键上的索引.其 ...

  5. C++成员变量与函数内存分配

    关于结构体和C++类的内存地址问题 C++类是由结构体发展得来的,所以他们的成员变量(C语言的结构体只有成员变量)的内存分配机制是一样的.下面我们以类来说明问题,如果类的问题通了,结构体也也就没问题啦 ...

  6. Java程序猿从笨鸟到菜鸟之(九十二)深入java虚拟机(一)——java虚拟机底层结构具体解释

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在曾经的博客里面,我们介绍了在java领域中大部分的知识点,从最基础的java最基本的语法 ...

  7. Eclipse 和 MyEclipse控制台console不停的自动跳动,跳出来解决方案

    有时候Eclipse启动,控制台console不会自动跳出来,需要手工点击该选项卡才行,按下面的设置,可以让它自动跳出来(或不跳出来):由二种方法: 一.windows  ->   prefer ...

  8. docker学习笔记6:利用dockerfile创建镜像介绍(生成简单web服务器镜像)

    本文介绍如何利用dockerfile来创建镜像.下面介绍具体的操作过程: 一.创建构建环境 操作示例如下: xxx@ubuntu:~$ pwd /home/xxx xxx@ubuntu:~$ mkdi ...

  9. 重探 DFT

    感觉上次学习DFT简直是乱来了.不知道误导了多少人,这里深感抱歉. 这次我再看了看<算法导论>,觉得收获很大,终于粗略的知道DFT的原理了! 如何将两个多项式相乘 对于一个n次多项式,\( ...

  10. CQOI2015 选数

    题目 从\([L, H]\)(\(H-L\leq 10^5\))选出\(n\)个整数,使得这些数的最大公约数为\(k\)的方案数. 算法 首先有一个很简单的转化,原问题可以简化为: 从\([\lcei ...