Keepalived 资源监控
简介:
作为一个高可用集群软件,Keepalived 没有 Heartbeat 、RHCS 等专业的高可用集群软件功能强大,它不能够实现集群资源的托管,也不能实现对集群中运行服务的监控,好在 Keepalived 也考虑到了这一点,它提供了 vrrp_script 、notify_master 、notify_backup 等多个功能模块,通过这些模块也可以实现对集群资源的托管以及集群服务的监控。
## 下面是一个 Keepalived 主备切换的演示过程
shell > curl 192.168.1.35
welcome to Master Nginx
## 客户机访问虚拟 IP 192.168.1.35 ,这时由主服务器提供服务
## 当主服务器宕机或网络出现异常或 Keepalived 本身停止时,主备切换
shell > curl 192.168.1.35
welcome to Slave Nginx
## 当手动停止 Keepalived 服务时,由备机来提供服务,这并没有什么问题
## 第二种测试
shell > curl 192.168.1.35
welcome to Master Nginx
## 现在由主服务器提供服务,当主服务上提供服务的 web 停止时,是否会出现主备切换呢 ?
shell > curl 192.168.1.35
curl: () couldn't connect to host
## 很显然,并没有主备切换。
## 主服务器没有移除 VIP ,备服务器也没有绑定 VIP 。
## 这是因为他们之间通过 VRRP 协议来确定对方是否存活,而 web 停止并不妨碍他们之间的通信。
## 所以备机就认为主服务器处于存活状态,从而导致无法正常提供服务。
## 这时就要由 vrrp_script 出马了 !
vrrp_script
此模块专门用于对集群中服务资源进行监控 。与此模块同时使用的还有 track_script 模块,在此模块中可以引入监控脚本、命令组合、shell 语句等 ,以实现对服务、端口等多方面的监控。track_script 模块主要用来调用 vrrp_script 模块使 keepalived执行对集群服务资源的检测。vrrp_script 模块中还可以定义对服务资源检测的时间间隔、权重等参数,通过 vrrp_script 和 track_script 组合,可以实现对集群资源的监控并改变优先级,进而实现 keepalived 主备节点切换。
## 下面是 vrrp_script 模块常见的几种监控机制
1、killall 命令探测服务运行状态
vrrp_script check_nginx { # check_nginx 为自定义的一个监控名称
script "killall -0 nginx" # 采用 killall 信号 来对进程运行状态进行监控, 为正常, 为异常
interval 2 # 检测间隔时间,即两秒检测一次
weight # 一个正整数或负整数。权重值,关系到整个集群角色选举,尤为重要( 单独出帖 )
}
track_script {
check_nginx # 引用上面定义的监控模块
}
2、检测端口运行状态
vrrp_script check_nginx {
script "< /dev/tcp/127.0.0.1:80" # 通过 < /dev/tcp/127.0.0.1: 这样的方式定义一个对本机端口状态的检测
interval
fall 2 # 检测失败的最大次数,超过两次认为节点资源发生故障
rise 1 # 请求一次成功认为节点恢复正常
weight
}
track_script {
check_nginx
}
3、通过 shell 语句进行状态监控
vrrp_script check_nginx {
script " if [ -f /usr/local/nginx/logs/nginx.pid ]; then exit 0 ; else exit 1; fi"
interval
fall
rise
weight
}
track_script {
check_nginx
}
4、通过脚本进行服务状态监控
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval
weight
}
track_script {
check_nginx
}
## 其中 check.nginx.sh 也是本着正常返回 0 ,异常返回 1 的原则来定义
## 这两种方法,个人感觉基本一个意思,简单点的检测就用语句,复杂点的就写脚本里
Keepalived 资源监控的更多相关文章
- Linux资源监控命令/工具(综合)
目录: ps pstree pidof top free uptime ifuser lsof mpstat vmstst pidstat iostat iotop watch sar 1.ps 1) ...
- 21.Pod的limit和request和资源监控收集服务Heapster
容器的资源需求,资源限制 requests:需求,最低保障: limits:限制,硬限制: CPU: 1颗逻辑CPU =,millicores 500m=.5CPU 内存: E.P.T.G.M.K E ...
- 服务器资源监控插件(jmeter)
零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过 实时监控,可以准确的把握不同测试场景下服务器资源消 ...
- JMeter性能测试-服务器资源监控插件详解
零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过实时监控,可以准确的把握不同测试场景下服 ...
- Windows:打开MSDTC,恢复Windows任务栏,查看windows日志,打开远程桌面,打开Services,资源监控
Windows 服务器系列: Windows:查看IP地址,IP地址对应的机器名,占用的端口,以及占用该端口的应用程 Windows:使用Dos命令管理服务(Services) Windows:任务调 ...
- NodeJS + PhantomJS 前端自动化资源监控
前言:最近做前端资源监控,看了很多例子,没有达到想要的效果.首先的槽点是PhantomJS的官方文档,真鸡肋,其次是网上的例子,多数是介绍PhantomJS的用法,而并没有介绍怎么完整的去实现,跟官方 ...
- Azure VM开启资源监控
目前China的Azure VM资源监控默认是不打开的.本文将介绍如何开启VM的监控功能. 一 Azure VM 打开Azure的Portal页面https://portal.azure.cn,登录后 ...
- k8s资源指标API及metrics-server资源监控
简述: 在k8s早期版本中,对资源的监控使用的是heapster的资源监控工具. 但是从 Kubernetes 1.8 开始,Kubernetes 通过 Metrics API 获取资源使用指标,例如 ...
- Prometheus 监控K8S集群资源监控
Prometheus 监控K8S集群中Pod 目前cAdvisor集成到了kubelet组件内,可以在kubernetes集群中每个启动了kubelet的节点使用cAdvisor提供的metrics接 ...
随机推荐
- Spring 管理Filter和Servlet
本文转载自:http://www.open-open.com/lib/view/open1417248512252.html 在使用spring容器的web应用中,业务对象间的依赖关系都可以用cont ...
- (IOCP)-C#高性能Socket服务器的实现
C#高性能Socket服务器的实现(IOCP) https://www.jianshu.com/p/c65c0eb59f22 引言 我一直在探寻一个高性能的Socket客户端代码.以前,我使用Sock ...
- Python学习-str与byte类型以及编码
Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和b ...
- Clairewd’s message(哈希模板+)
个人心得:一开始就是知道用哈希,但是无从下手,很明显是对哈希不太了解和思维不太好. 先来看一下这一题涉及到的哈希吧和这题的思路吧,思路就是对所给的密文用原文和翻译后进行hash处理,那么必然存在后面那 ...
- Flask第六篇——项目配置文件
我们在开发中,通常将一些需要用到的配置选项单独放在一个文件中,比如叫configs.py中.然后通过一些方式加载. 现在将加载配置文件的方法罗列如下: 1.先新建文件configs.py,文件代码: ...
- Python编码规范和Python风格规范
一.原因 1.长期的工作中,发现大多数程序员的代码可读性差 2.不同的程序员之间的协作很重要,代码可读性必须很好 3.版本升级时,要基于源码升级 4.不友好的代码会影响python的执行效率 二.基于 ...
- oracle数据库存储过程分页
CREATE OR REPLACE PROCEDURE prc_query (p_tableName in varchar2, --表名 p_columnNames in varchar2, --字段 ...
- as3 阻止后续侦听器
public class Test1 extends Sprite { private var spr:Sprite; private var spr2:Sprite; public function ...
- RK3288 USB UVC camera 摄像头 VIDIOC_DQBUF Failed!!! err[I/O error]
RK3288 Android5.1 多个品牌USB摄像头 同一块主板和代码,大部分品牌的USB摄像头可以正常使用,只有某一款USB摄像头不能使用. 插上摄像头,底层可以识别到摄像头. &l ...
- 登录MySQL非默认3306端口号的语句
这里登陆的是mysql3308端口号的数据库 mysql -P3308 -p用户名 -u密码