keepalived安装使用

news2024/9/24 1:26:32

keeepalived介绍

Keepalived的作用是检测服务器的状态, 如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器

keepalived基于VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议,解决静态网关单点故障风险,它能够保证当个别节点宕机时,整个网络可以不间断地运行协议的软件实现,原生设计目的为了高可用 ipvs IP虚拟服务器(IP Virtual Server,简写为IPVS)服务,也就是产生虚拟ip,并且可以解决单点故障

官网:https://www.keepalived.org/

VRRP技术 

工作方式

  • 抢占模式:在抢占模式下,如果Backup设备的优先级比当前Master设备的优先级高,则主动将自己切换成Master。
  • 非抢占模式:在非抢占模式下,只要Master设备没有出现故障,Backup设备即使随后被配置了更高的优先级也不会成为Master设备。

安全认证 

  • 无认证:不进行任何VRRP报文的合法性认证,不提供安全性保障
  • 简单字符认证:预共享密钥,在一个有可能受到安全威胁的网络中,可以将认证方式设置为简单字符认证
  • MD5认证:在一个非常不安全的网络中,可以将认证方式设置为MD5认证

keepalived架构

  • vrrp stack:VIP消息通告
  • checkers:监测real server
  • system call:实现 vrrp 协议状态转换时调用脚本的功能
  • SMTP:邮件组件
  • IPVS wrapper:生成IPVS规则
  • Netlink Reflector:网络接口
  • WatchDog:监控进程

keepalived安装

上传下载好的安装包

https://www.keepalived.org/download.html

 解压压缩包并进入目录

tar -zxvf keepalived-2.1.5.tar.gz

进行配置命令 

./configure --prefix=/usr/local/keepalived

报错openssl问题 

yum install openssl-devel 

可采用yum install openssl-devel 命令安装openssl依赖,如果是离线无网安装,需要下载openssl依赖并执行安装rpm文件。 

rpm -Uvh *.rpm --nodeps --force

再次执行配置命令./configure --prefix=/usr/local/keepalived即可 

 编译安装

make && make install

添加service启动方式 

cp /usr/local/sbin/keepalived /etc/init.d/keepalived 

复制配置文件到/etc/keepalived/keepalived.conf

别忘记给keepalived.conf授权,必须是644,777不好用,这个鬼东西

chmod 644 /etc/keepalived/keepalived.conf

启动keepalived

systemctl start keepalived

如果启动报错,查看日志

journalctl -xe

根据报错调整,一般是配置文件找不到和配置文件无法执行的错误,下面是启动成功的 

 

keepalived配置文件

#根据以下信息对自己的配置文件进行修改
global_defs {
   # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
   router_id keep_104
}
​
vrrp_instance VI_1 {
    # 表示状态是MASTER主机还是备用机BACKUP
    state MASTER
    # 该实例绑定的网卡名称
    interface ens34   #我的100网段对应的是ens34
    # 保证主备节点一致即可
    virtual_router_id 51
    # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
    priority 100
    # 主备之间同步检查时间间隔,单位秒
    advert_int 2
    # 认证权限密码,防止非法节点进入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟出来的ip,可以有多个(vip)
    virtual_ipaddress {
        192.168.100.16   #这里我弄的100.16
    }
}

其中priority是比较重要的部分,keepalived默认配置比较多,需要精简一下到这样就可以啦,至于发送邮件有需要的可以选择配置  

定义执行脚本配置 

如果需要定制执行脚本,监听某一服务状态,需要增加如下配置

# 定义chk_nginx脚本,脚本执行间隔10秒,权重-10,检测nginx服务是否在运行。有很多方式,比如进程,用脚本检测等等
vrrp_script chk_nginx {  
 
    #这里通过脚本监测    
    script "脚本位置xxnginx_.sh"   
	
	#脚本执行间隔,每2s检测一次
    interval 2    
	
    #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5	
    weight -10     
	
    #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)	
    fall 2     
	
    #检测1次成功就算成功。但不修改优先级	
    rise 1                    
}

检测nginx脚本 

count=`ps -C nginx --no-header |wc -l` 
 
if [ "${count}" -eq 0 ];then 
    /usr/local/nginx/sbin/nginx
    sleep 5
   
   count=`ps -C nginx --no-header |wc -l` 
    if [ "${count}" -eq 0 ] 
    then
        systemctl stop keepalived 
    fi 
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PostgreSQL行级安全策略探究

前言 最近和朋友讨论oracle行级安全策略(VPD)时,查看了下官方文档,看起来VPD的原理是针对应用了Oracle行级安全策略的表、视图或同义词发出的 SQL 语句动态添加where子句。通俗理解就是将行级安全策略动态添加为where 条件。那么PG中的行级安全策略是怎…

【Linux】信号量和线程池

目录 一、POSIX信号量 二、基于环形队列和信号量的生产消费模型 三、线程池 一、POSIX信号量 POSIX信号量(POSIX Semaphores)是一种进程间或线程间同步机制,它允许进程或线程以协调的方式访问共享资源或进行其他形式的同步。与System V信…

用MATLAB绘制三向应力圆

% 定义主应力值 sigma1 100; % MPa sigma2 50; % MPa sigma3 -33; % MPa sigma_m1(sigma1 sigma3)/2; sigma_m2(sigma1 sigma2)/2; sigma_m3(sigma2 sigma3)/2; % 计算半径 r1 (sigma1 - sigma3) / 2; r2 (sigma1 - sigma2) / 2; r3 (sigma2 - sigma3…

2024年16个适合现代应用程序的最佳API网关

什么是API? API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值: 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码;这些是为移动开…

生成式AI (Generative artificial intelligence, GenAI or GAI)

安利一个新加坡南洋理工大学的论文总结The Age of Generative AI 一、什么是生成式AI Generative AI, sometimes called gen AI, is artificial intelligence (AI) that can create original content—such as text, images, video, audio or software code—in response to a …

AIGC降痕指南:如何让AI写作不留痕迹

随着AI技术的飞速发展,AI论文工具正逐渐成为学术界的新宠。它们以高效、便捷的优势,吸引了众多学者的目光。然而,随之而来的学术诚信与原创性问题,也成为人们关注的焦点。 如何在享受AI带来的便利的同时,确保论文的原…

凯泽斯劳滕理工大学通过TS-AWG全新DDS固件选件加速量子计算机开发

凯泽斯劳滕理工大学(Technische Universitt Kaiserslautern),位于德国莱茵兰-普法尔茨州,是一所国立理工科大学。该大学成立于1970年7月13日,最初是特里尔/凯泽斯劳滕兄弟大学的一部分。1975年,凯泽斯劳滕理…

2025~《数据结构》试题~考研

作者主页: 知孤云出岫 目录 数据结构模拟卷一、选择题(每题2分,共20分)二、填空题(每题3分,共15分)三、简答题(每题10分,共30分)四、编程题(每题15分&#x…

Flutter跨平台开发技术

仅分享文字,见谅 Flutter Flutter 介绍 功能跨平台性架构流行度Flutter vs React Native 配置 Windows Flutter App 环境配置 Tizen Flutter App 环境用 Dart 语言开发 Flutter AppFlutter-Tizen 的限制 Flutter 介绍 Flutter 是由 Google 推出的开源移动应用开发…

zabbix web页面添加对nginx监控

1.nginx安装zabbix-agent2,并修改配置文件中server地址为zabbix-server的地址 ]# egrep ^Server|^Hostname /etc/zabbix/zabbix_agent2.conf Server172.16.1.162 ServerActive172.16.1.162 Hostnameweb01 2.zabbix web页面上进行添加客户端 3.默认的nginx监控模板中的状态模块…

C++心决之stl中那些你不知道的秘密(string篇)

目录 1. 为什么学习string类? 1.1 C语言中的字符串 2. 标准库中的string类 2.1 string类 2.2 string类的常用接口说明 1. string类对象的常见构造 2. string类对象的操作 3.vs和g下string结构的说明 3. string类的模拟实现 3.2 浅拷贝 3.3 深拷贝 3.4 写…

【算法】【二分法】二分法详解

先给y总打一个广告。(我这种废物收不到钱) 本科时候就在打蓝桥杯玩玩算法,当时听朋友的一个刷题且涵盖教程的网站,ACWING。 www.acwing.com 里面好处是大部分基础算法都有,Y总的视频! y总我的神&#xff01…

设计模式——适配器设计模式

设计模式——适配器设计模式 适配器设计模式1.1 基本介绍1.2 工作原理1.3 类适配器模式1.3.1 基本介绍1.3.2 示例1.3.3 代码实现1.3.4 注意事项 1.4 对象适配器模式1.4.1 基本介绍1.4.2 示例1.4.3 代码实现1.4.4 注意事项 1.5 接口适配器模式1.5.1 基本介绍1.5.2 示例1.5.3 代码…

Web3 社交领域的开发技术

Web3 社交领域的开发技术主要包括以下几种,随着 Web3 技术的不断发展,Web3 社交领域将会出现更多新的技术和应用场景。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 区块链技术 区块链技术是 Web3 社交的…

在Rstudio中点一点就出来了一个R包

新建一个Package Build一个Package 更多开发指南 https://r-pkgs.org/

vscode使用及调试方式和技巧

常用快捷键 ctrl ~ 显示隐藏终端面板 Ctrl\ 快速拆分文件编辑 Alt ↑↓ 移动当前代码行的位置 CtrlD 选中当前匹配项 CtrlB 切换侧边栏 alt 单机左键 或 长按鼠标滚轮鼠标左键下拉 添加多处光标 Ctrlp 快捷键设置 vscode调试 2022年了,该学会用VSC…

通用详情页的打造

背景介绍 大家都知道,详情页承载了站内的核心流量。它的量级到底有多大呢? 我们来看一下,日均播放次数数亿次,这么大的流量,其重要程度可想而知。 在这样一个页面,每一个功能都是大量业务的汇总点。 作为…

RayLink企业版正式上线!

哈咯大家~我是小R 经过RayLink团队的努力,大家期待的RayLink企业版正式上线了,相对于传统的远程控制软件,企业版本更能满足对于企业的安全性,扩展性,以来满足企业不断变化的业务需求。 RayLink企业版:一站…

Android C++系列:Linux网络(二)通信过程

上图对应两台计算机在同一网段中的情况,如果两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器,如下图所示其实在链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线 (双绞线)、早期以太网采用的的同轴电…

逆向之在浏览器上对window等对象进行hook

一般情况下,在chrome浏览器上使用JS对window document等对象是无法hook的,除非魔改浏览器底层代码,原因是因为对象的configurable属性为false 这样如果需要对document对象使用JS进行hook,首先需要一个可配置的chrome浏览器,可以在…