装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. 【LigerUI】ajax请求firefox返回NS_BINDING_ABORTED

    在ligergrid中请求链接,post提交,返回NS_BINDING_ABORTED. 是因为ligergrid中默认是异步提交方式,如果没有设置同步的话, 在请求该链接的时候第一次请求还没有执行完 ...

  2. Codeforces Round #315 (Div. 2B) 569B Inventory 贪心

    题目:Click here 题意:给你n,然后n个数,n个数中可能重复,可能不是1到n中的数.然后你用最少的改变数,让这个序列包含1到n所有数,并输出最后的序列. 分析:贪心. #include &l ...

  3. c/c++字符数组和字符串大揭秘

    第一:写这篇文章源于我对'\0'和“\0”的探讨 当我对char a []="\0"; int size_a=sizeof(a); //结果为2 当时我很纳闷字符串不是以'\0'结 ...

  4. javascript学习(10)——[知识储备]链式调用

    上次我们简单的说了下单例的用法,这个也是在我们java中比较常见的设计模式. 今天简单说下链式调用,可能有很多人并没有听过链式调用,但是其实只要我简单的说下的话,你肯定基本上都在用,大家熟知的jQue ...

  5. Android 中 ListView 常用属性合集

    class ListView.FixedViewInfo//用来在列表内展现一个固定位置视图,如在列表顶端的header和在列表底端的footer 一.XML属性 1.ListView的XML属性 a ...

  6. HDU 5025Saving Tang Monk BFS + 二进制枚举状态

    3A的题目,第一次TLE,是因为一次BFS起点到终点状态太多爆掉了时间. 第二次WA,是因为没有枚举蛇的状态. 解体思路: 因为蛇的数目是小于5只的,那就首先枚举是否杀死每只蛇即可. 然后多次BFS, ...

  7. django 新闻编辑笔记

    url(r'^news_manage/edit/$',views.news_edit,name='edit') url配置 <a href="/management/news_mana ...

  8. zoj 2277 The Gate to Freedom

    N^N = X --->    Nlog10(N) = log10( X ) ---->    X的最高位为 Nlog10(N) 小数部分的第一个非0位 #include<stdio ...

  9. poj3308 Paratroopers --- 最小点权覆盖-&gt;最小割

    题目是一个非常明显的二分图带权匹配模型, 加入源点到nx建边,ny到汇点建边,(nx.ny)=inf建边.求最小割既得最小点权覆盖. 在本题中因为求的是乘积,所以先所有取log转换为加法,最后再乘方回 ...

  10. Use Node.js DDP Client on Arduino Yun to Access Meteor Server

    Use Node.js DDP Client on Arduino Yun to Access Meteor Server 概述 在Arduino Yun上安装 Node.js, 并測试与 Meteo ...