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: (7) 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 信号 0 来对进程运行状态进行监控,0 为正常,1 为异常
  interval 2                    # 检测间隔时间,即两秒检测一次
  weight 30                     # 一个正整数或负整数。权重值,关系到整个集群角色选举,尤为重要( 单独出帖 )
}

track_script {
  check_nginx                   # 引用上面定义的监控模块
}

2、检测端口运行状态

vrrp_script check_nginx {
  script "< /dev/tcp/127.0.0.1:80"  # 通过 < /dev/tcp/127.0.0.1:80 这样的方式定义一个对本机端口状态的检测
  interval 2
  fall 2                            # 检测失败的最大次数,超过两次认为节点资源发生故障
  rise 1                            # 请求一次成功认为节点恢复正常
  weight 30
}

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 2
  fall 1
  rise 1
  weight 30
}

track_script {
  check_nginx
}

4、通过脚本进行服务状态监控

vrrp_script check_nginx {
  script "/etc/keepalived/check_nginx.sh"
  interval 2
  weight 30
}

track_script {
  check_nginx
}

## 其中 check.nginx.sh 也是本着正常返回 0 ,异常返回 1 的原则来定义

## 这两种方法,个人感觉基本一个意思,简单点的检测就用语句,复杂点的就写脚本里

时间: 2024-12-14 10:51:36

Keepalived 资源监控的相关文章

jmeter资源监控插件

地址为: http://jmeter-plugins.org/wiki/PerfMon/ jmeter资源监控插件,布布扣,bubuko.com

大开测试:性能-如何实现对Web应用程序服务器资源监控(连载25)

7.25  如何实现对Web应用程序服务器资源监控 1.问题提出 如何实现对Web应用程序服务器资源监控? 2.问题解答 可以使用LoadRunner的Web应用程序服务器资源监控器,在场景或会话步骤运行期间监控Web应用程序服务器,并隔离应用程序服务器性能瓶颈. Web应用程序服务器资源监控器提供了场景或会话步骤执行过程中,有关Ariba.ATG Dynamo.BroadVision.ColdFusion.Fujitsu INTERSTAGE.iPlanet (NAS).Microsoft A

容器和实时资源监控的必知要素

您是否实时监控您的容器资源?如果没有,那意味着您可能没有对之进行有效监控.在快速变化的.动态的微服务环境中,即使是几秒钟以前的监视数据也可能不再可行.为了防止中断,您需要实时监控. 在这篇文章中,我解释了为什么对容器资源进行实时监控是很重要的,以及实时监控中您应该关注的容器指标. 首先要明确的是,这篇文章并非在为哪个特定的容器监控产品站台.虽然现在有很多可供容器使用的实时监控平台,但我认为最好的做法,还是充分了解容器监控的基本要素,而不是只关注特定产品的某些特性.如果您知道为保证容器基础设施正常

C#监控-机器资源监控:CPU、内存、C盘、D盘资源监控及邮件预警

针对CPU.内存.C盘.D盘资源监控及邮件预警,要实现在页面上配置资源监控选项,并且页面上能看到资源使用情况,超出阈值,邮件预警,效果图如下: 配置监控列表页 2. 配置监控详情页 3. 实时监控信息展示页 4. 监控信息图标展示 5. 超出阈值发送预警邮件 实现详情: 处于性能上的优化,每个监控都写成了个单例,并且通过多线程来取得各个监控数据 CPU监控 通过PerformanceCounter("Processor", "% Processor Time", &

UNIX资源监控

UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate),如果该参数值一直很高,表明I/O有问题.可考虑更换更快的硬盘系统 UNIX资源监控中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存.如果持续很高,则内存可能是瓶颈.也可能是内存访问命中率低. CPU相关指标 ? CPU utilization(System mode CPU utilization +User mode CPU utilization )  ——CPU利用

服务器资源监控指标

内存:1 UNIX资源监控中指标内存页交换速率(Paging rate,使用称为“页面”的单位,将固定大小的代码和数据块从 RAM 移动到磁盘的过程,其目的是为了释放内存空间),如果该值偶尔走高,表明当时有线程竞争内存.如果持续很高,则内存可能是瓶颈.也可能是内存访问命中率低.2 Windows资源监控中,如果Process/Private Bytes计数器和Process/Working Set计数器的值在长时间内持续升高,同时Memory/Available bytes计数器的值持续降低,则

深度解析Tengine的调试与资源监控方法论

摘要: Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,提供更强大的流量负载均衡能力.全站HTTPS服务.安全防×××.链路追踪等众多高级特性.团队的核心成员来自于淘宝.搜狗等互联网企业,从2011年12月开始,Tengine成为一个开源项目,团队在积极地开发和维护着它,最终目标是打造一个高效.稳定.安全.易用的Web平台. 阿里云CDN现在服务超过24万家客户,Tengine作为接入层提供高性能Web Server服务,是CDN系统最核心的组件之

k8s资源监控metrics-server

简述: 在k8s早期版本中,对资源的监控使用的是heapster的资源监控工具. 但是从 Kubernetes 1.8 开始,Kubernetes 通过 Metrics API 获取资源使用指标,例如容器 CPU 和内存使用情况. 这些度量指标可以由用户直接访问,例如通过使用kubectl top 命令,或者使用集群中的控制器. Metrics API: 通过 Metrics API,您可以获得 node 或 pod 当前的资源使用情况(但是不存储). metres-server比 heapst

性能测试-Linux资源监控?式

Linux资源监控?式 1. 命令 2. 第三??具(nmon) 3. LR(需要安装RPC相应服务包和开启服务)(略) ?.命令 ?式 1. top (系统资源管理器) 2. vmstat (查看虚拟内存状态) 3. free(查看未使?的和已使?的内存数?) 4. iostat (查看io磁盘信息) 5. sar ?络 1.1 命令 top(系统资源管理器) 说明: 1). top命令类似与windows的任务管理器,查看内存.CPU.进程等操作信息 2). 在Linux系统中常?top命令