源码编译安装keepalived
1:简介
它是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
2:下载keepalived
wget http://www.keepalived.org/software/keepalived-1.4.0.tar.gz tar zxf keepalived-1.4.0.tar.gz cd keepalived-1.4.0/ ./configure --sysconf=/etc --with-kernel-dir=/usr/lib/modules/3.10.0-514.26.2.el7.x86_64/
出现警告:
*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
yum -y install libnl libnl-devel
安装完以后重新执行configure
这次出现错误:
configure: error: libnfnetlink headers missing
yum install -y libnfnetlink-devel
重新编译完成后如下
安装
make && make install
至此安装完成
Keepalive 基础HA功能演示
环境部署说明
主机名 |
主机ip地址 |
集群角色 |
集群服务 |
虚拟IP地址 |
Master |
192.168.1.189 |
Master(主节点) |
HTTPD |
192.168.1.200 |
Backup |
192.168.1.226 |
Backup(备用节点) |
HTTPD |
1、下载并编译安装
yum install gcc openssl-devel libnl libnl-devel libnfnetlink-devel -y
wget http://www.keepalived.org/software/keepalived-1.4.0.tar.gz
tar zxf keepalived-1.4.0.tar.gz
cd keepalived-1.4.0/
./configure --sysconf=/etc --with-kernel-dir=/usr/lib/modules/3.10.0-693.11.1.el7.x86_64/
make && make install
#--sysconf 指定配置文件路径 --with-kernel-dir 指定内核
2、修改配置文件(master)
vim / etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs { #全局配置notification_email { #邮件通知acassen@firewall.loc #多个收件人邮箱failover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc #发件人邮箱smtp_server 192.168.200.1 # SMTP_SERVER smtp_connect_timeout 30 # 连接超时时间 router_id LVS_DEVEL # specify the name of the LVS director 本地有效#vrrp_skip_check_adv_addr #vrrp_strict#vrrp_garp_interval 0#vrrp_gna_interval 0 } vrrp_script check_httpd { # 定义一个检查方法 对集群中的资源进行监控script "/etc/keepalived/check_httpd.sh" # 一个脚本检查方法interval 2 # 检查间隔 second}vrrp_instance VI_1 { # VRRP 实例 实例名state MASTER # master 模式interface enp0s3 # 绑定接口virtual_router_id 80 # 虚拟路由标识, 同一实例下 相同IDpriority 100 # 优先级 越大越优advert_int 2 # master 和 backup 之间检查时间间隔authentication { auth_type PASS # 认证类型 PASS / AH auth_pass 5211 # 密码, master 和 backup 必须相同}notify_master "/etc/keepalived/master.sh" # 当成为主模式时候, 执行的脚本notify_backup "/etc/keepalived/backup.sh" # 当成为 备模式时候, 执行脚本notify_fault "/etc/keepalived/fault.sh" # 当成为 fault 模式, 执行脚本track_script { # 跟踪脚本check_httpd # 脚本名}virtual_ipaddress { # VIP192.168.1.200/24 dev enp0s3 } }
Backup配置文件在master 配置文件上修改2处
state BACKUP priority 80
脚本
[root@master keepalived]# cat check_httpd.sh #!/bin/bash killall -0 httpd[root@master keepalived]# cat master.sh #!/bin/bash LOGFILE=/var/log/keepalived-test.log echo "[master]" >> $LOGFILE date >> $LOGFILE[root@master keepalived]# cat backup.sh #!/bin/bash LOGFILE=/var/log/keepalived-test.log echo "[Backup]" >> $LOGFILE date >> $LOGFILE[root@master keepalived]# cat fault.sh #!/bin/bash LOGFILE=/var/log/keepalived-test.log echo "[Fault]" >> $LOGFILE date >> $LOGFILE
开放防火墙端口
firewalld-cmd --zero=public --permanent --add-port=80/tcp firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp0s8 --destination 224.0.0.18 --protocol vrrp -j ACCEPT firewall-cmd --reload
测试结果
cat /var/log/keepalived-test.log 观察主备切换结果
cat /var/log/messages 查看主备切换日志 11:42:27 秒检测到http服务停止, 28秒主vrrp进入fault state ,29秒备vrrp进入 master state. ping包测试丢一个包。
转载于:https://www.cnblogs.com/blogscc/p/8250486.html
源码编译安装keepalived相关推荐
- mono和monodevelop源码编译安装
之所以用源码编译的方式安装mono和monodevelop,是因为通过yum安装的mono不是最新版本,而且monodevelop不能建 asp.net MVC3的工程. 而且通过源码安装,可以进一步 ...
- mac通过tree源码编译安装tree
通过tree源码编译安装 下载源码:curl -O ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz 解压源码:tar xzvf tree-1.6 ...
- 源码编译安装percona-xtrabackup-2.3.2
一.系统包需求 rpm -q libaio-devel libgpg-error-devel libgcrypt-devel autoconf automake libidn-devel libcur ...
- 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...
- 烂泥:mysql5.5数据库cmake源码编译安装
本文首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开始使用cmake 编译工 ...
- mysql5.7 cmake源码编译安装
mysql5.7 cmake源码编译安装, -----该文章的知识点是一个大牛总结的,我这里只是加工了一下,非原创文章. 搜狐开源镜像站:http://mirrors.sohu.com/ 网易开源镜像 ...
- Splunk安装和配置及源码编译安装SVN
Splunk安装和配置 http://my.oschina.net/tuyang/blog/189159 http://my.oschina.net/longniao/blog/82766 http: ...
- php 7.0 编译安装mysql_源码编译安装php7.0.5
源码编译安装php7.0.5 源码包下载地址 安装epel扩展yum源 [root@xuegod63 ~]# yum clean all [root@xuegod63 ~]# yum list 注:R ...
- linux7安装haproxy,Centos7 源码编译安装haproxy
Centos7 源码编译安装haproxy 操作环境: 一台haproxy主机地址为:192.168.80.100 两台web服务器地址分别为:192.168.80.102 192.168.80.10 ...
最新文章
- 别做喷子,多去钻研!
- 学完python基础知识之后可以做些什么-学完Python基础知识后,你真的会python吗?...
- VxWorks中信号量实现任务间通信与同步机制分析
- php长脚本,长PHP脚本运行多次
- InstallShield与Visual Studio
- 安卓上为什么不能用system.io.file读取streammingAssets目录下的文件
- 计算机考研文章精选[转载]
- linux vi如何输入井号,为什么我可以使用井号(#)来破坏vim用户功能命名规则
- 2021年中国电子签名行业研究报告
- django.db.utils.OperationalError: (1050, “Table ‘表名‘ already exists)解决方法
- 一个优秀的Android应用从建项目开始
- 为什么写网页用php,php能写网页吗
- 如何快速实现直播美颜功能 - 接入美颜SDK详解
- C语言获取键盘方向键的键值
- “创宇ADS”获公安部颁发《计算机信息系统安全专用产品销售许可证》!
- 错误 '800a03ea'
- 重读《由C#风潮想起的-给初学编程者的忠告》有感 (转载)
- C#毕业设计——基于C#+asp.net+sqlserver的中学图书馆系统设计与实现(毕业论文+程序源码)——图书馆系统
- [转载]informix onbar规复饬令用法
- SAP SD模块常用事务码 Tcode