master服务器ip地址:192.168.0.182

slave服务器ip地址:192.168.0.189

虚拟ip(VIP,一个尚未占用的内网ip即可)地址:192.168.0.180

 确认使用的网卡

使用第2个网卡【enp0s3】

使用wget命令下载,下载位置/usr/local/

keepalived下载地址:http://www.keepalived.org/download.html

  1. wget http://www.keepalived.org/software/keepalived-1.4.2.tar.gz

解压:

  1. tar zxvf keepalived-1.4..tar.gz

安装依赖插件:

  1. yum install -y gcc openssl-devel popt-devel

编译安装:

  1. cd keepalived-1.4.
  2.  
  3. #指定安装目录
  4. ./configure --prefix=/usr/local/keepalived
  5.  
  6. make && make install

运行前配置

  1. #
  2. cp /usr/local/keepalived-1.4./keepalived/etc/init.d/keepalived /etc/init.d/
  3.  
  4. #
  5. mkdir /etc/keepalived
  6.  
  7. #
  8. cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
  9.  
  10. #
  11. cp /usr/local/keepalived-1.4./keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  12.  
  13. #
  14. cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

修改配置文件:

  1. vim /etc/keepalived/keepalived.conf

具体配置如下:

master服务器配置:

  1. ! Configuration File for keepalived
  2.  
  3. global_defs {
  4. #一个没重复的名字即可
  5. router_id xxoo_master
  6. }
  7.  
  8. # 检测nginx是否运行
  9. vrrp_script chk_nginx {
  10. script "/etc/keepalived/nginx_check.sh"
  11. interval
  12. weight -
  13. }
  14.  
  15. vrrp_instance VI_1 {
  16.  
  17. # 此处不设置为MASTER,通过priority来竞争master
  18. state BACKUP
  19.  
  20. # 网卡名字,文章下方会给出如何获取网卡名字的方法
  21. interface enp0s3
  22.  
  23. # 同一个keepalived集群的virtual_router_id相同
  24. virtual_router_id
  25.  
  26. # 权重,master要大于slave
  27. priority
  28.  
  29. # 主备通讯时间间隔
  30. advert_int
  31.  
  32. # 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
  33. # 本机ip
  34. unicast_src_ip 192.168.0.182
  35. unicast_peer {
  36. # 其他机器ip
  37. 192.168.0.189
  38. }
  39.  
  40. # 设置nopreempt防止抢占资源
  41. nopreempt
  42.  
  43. # 主备保持一致
  44. authentication {
  45. auth_type PASS
  46. auth_pass
  47. }
  48.  
  49. # 与上方nginx运行状况检测呼应
  50. track_script {
  51. chk_nginx
  52. }
  53.  
  54. virtual_ipaddress {
  55. # 虚拟ip地址(VIP,一个尚未占用的内网ip即可)
  56. 192.168.0.180
  57. }
  58. }

slave服务器配置:

  1. ! Configuration File for keepalived
  2.  
  3. global_defs {
  4. #一个没重复的名字即可
  5. router_id xxoo_slave
  6. }
  7.  
  8. # 检测nginx是否运行
  9. vrrp_script chk_nginx {
  10. script "/etc/keepalived/nginx_check.sh"
  11. interval
  12. weight -
  13. }
  14.  
  15. vrrp_instance VI_1 {
  16.  
  17. # 此处不设置为MASTER,通过priority来竞争master
  18. state BACKUP
  19.  
  20. # 网卡名字,文章下方会给出如何获取网卡名字的方法
  21. interface enp0s3
  22.  
  23. # 同一个keepalived集群的virtual_router_id相同
  24. virtual_router_id
  25.  
  26. # 权重,master要大于slave
  27. priority
  28.  
  29. # 主备通讯时间间隔
  30. advert_int
  31.  
  32. # 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
  33. # 本机ip
  34. unicast_src_ip 192.168.0.189
  35. unicast_peer {
  36. # 其他机器ip
  37. 192.168.0.182
  38. }
  39.  
  40. # 设置nopreempt防止抢占资源
  41. nopreempt
  42.  
  43. # 主备保持一致
  44. authentication {
  45. auth_type PASS
  46. auth_pass
  47. }
  48.  
  49. # 与上方nginx运行状况检测呼应
  50. track_script {
  51. chk_nginx
  52. }
  53.  
  54. virtual_ipaddress {
  55. # 虚拟ip地址(VIP,一个尚未占用的内网ip即可)
  56. 192.168.0.180
  57. }
  58. }

nginx监听脚本:

  1. #创建nginx检测脚本
  2. #touch nginx_check.sh
  3.  
  4. #给脚本增加可执行权限
  5. #chmod +x nginx_check.sh

脚本添加如下内容:

  1. #! /bin/bash
  2. pidof nginx
  3. if [ $? -ne ];then
  4. /etc/init.d/keepalived stop
  5. fi

防止出现脑裂现象(主备同时获取了VIP地址)

  1. # 指定keepalived配置的网卡:enp0s3,固定的VRRP广播地址:224.0.0.18
  2. firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT --in-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
  3. firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT --out-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
  4. firewall-cmd --reload
  5.  
  6. # 查看配置的规则
  7. firewall-cmd --direct --get-rules ipv4 filter INPUT
  8. firewall-cmd --direct --get-rules ipv4 filter OUTPUT

启动服务:

  1. service keepalived start
  2.  
  3. # 配置开机自启动
  4. systemctl enable keepalived

查看服务启动情况:

  1. ps -aux |grep keepalived

查看启动日志:

  1. journalctl -xe

查看keepalived日志

  1. tail -f /var/log/messages

配置成功后的效果。enp0s3是网卡名字;192.168.0.180是虚拟ip,已经成功绑定到网卡上。

QQ技术交流群:282575808

--------------------------------------

声明: 原创文章,未经允许,禁止转载!

--------------------------------------

Centos7下安装运行keepalived的更多相关文章

  1. Centos7下安装配置keepalived

    这里用的是两台设备做高可用 master服务器ip地址:192.168.12.78 slave服务器ip地址:192.168.12.79 虚拟ip(VIP,一个尚未占用的内网ip即可)地址:192.1 ...

  2. Linux CentOs7 下安装 redis

    Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装  命令如下 $ yum install gcc-c++ $ wget ht ...

  3. centOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  4. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  5. centos7下安装指定版本mysql5.7.23

    现在mysql版本已经到MySQL 8.0(GA)稳定版本了,所以需求是想简单又快速在centos7下安装指定版本例如MySQL 5.7(GA)版本有下面这种方法 首先需要到mysql官网这里下载对应 ...

  6. CentOS7 下安装 iSCSI Target(tgt) ,使用 Ceph rbd

    目录 一.iSCSI 介绍 1. iSCSI 定义 2. 几种常见的 iSCSI Target 3. 优缺点比较 二.安装步骤 1. 关闭防火墙 2. 关闭selinux 3. 通过 yum 安装 t ...

  7. MariaDB Centos7 下安装MariaDB

    Centos7 下安装MariaDB by:授客 QQ:1033553122 1.下载安装文件 rpm包为例,对于标准服务器安装,至少需要下载client,shared,serve文件(安装时如果少了 ...

  8. Centos7下安装Seafile实现私有网盘

    Seafile是一个开源.专业.可靠的云存储平台:解决文件集中存储.共享和跨平台访问等问题,由北京海文互知网络有限公司开发,发布于2012年10月:除了一般网盘所提供的云存储以及共享功能外,Seafi ...

  9. 学习笔记(1)centos7 下安装nginx

    学习笔记(1)centos7 下安装nginx 这里我是通过来自nginx.org的nginx软件包进行安装的. 1.首先为centos设置添加nginx的yum存储库 1.通过vi命令创建一个rep ...

随机推荐

  1. ganglia安装 by frank

    作者是frank. 1.安装epelrpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm2. ...

  2. Shiro(一):shiro架构和组件介绍

    简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份认证.授权.加密和会话管理.使用Shiro的易于理解的API,可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最大的网 ...

  3. [svc]Linux中Swap与Memory内存简单介绍

    swap区域是干嘛的 cpu 内存(不常用到的进程swap区) 磁盘 当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去.但是踢到哪里去,这时候swap就出现了. 背景介绍 对于Linux来说 ...

  4. 【Android】1.2 创建Android模拟器

    分类:C#.Android.VS2015:  创建日期:2016-01-20 调试手机应用程序一般先用模拟器来实现,只是因为每次都发布到手机上调试太麻烦了.当应用程序在模拟器上调试没错后,再发布到手机 ...

  5. 正确安全清空在线慢查询日志slow log的流程

    查看慢查询日志的状态: mysql> show variables like '%slow%'; +---------------------+------------------------- ...

  6. LL&LR parser

    https://stackoverflow.com/questions/5975741/what-is-the-difference-between-ll-and-lr-parsing https:/ ...

  7. Delphi下IOCP开源框架:DIOCP 成功应用案例分享

    首先说明,该项目不是本人的项目,本文转自盒子. 该项目使用的DIOCP版本为1.0,目前diocp为3.5 以下是盒子的原文 ------------------------------------- ...

  8. DIOCP-开源项目ECHO测试.

    DIOCP自开源以来,得到了很多朋友的测试,并进行了诸多的改进,现在已经运用到了一些具体的项目当中. DIOCP底层运行稳定. 昨天做了个ECHO测试,这个连接数并没有达到上限. 11K 连接,1个半 ...

  9. 【转】(七)unity4.6Ugui中文教程文档-------概要-UGUI Auto Layout

    原创至上,移步请戳:(七)unity4.6Ugui中文教程文档-------概要-UGUI Auto Layout 6. Auto Layout Rect Transform布局系统是足够灵活,可以处 ...

  10. Git详解之Git分支

    Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...