HA 集群软件 keepalived 详解3

在前两篇文章中我们队keepalived做了相关介绍,这里环境还是和之前保持的一样,这次我们主要介绍vrrp_script模块,在上次介绍keepalived基础HA功能时用到了vrrp_script这个模块,此模块专门用于对集群中服务自己进行监控,与此模块一起使用的还有track_script模块,在此模块中可以引用监控脚本,命令组合,shell语句等,以实现对服务端口多方面的监控,track_script模块主要用来调用vrrp_script模块使keepalived执行对集群服务资源的检查,下面就简单介绍下vrrp_script模块厂家的几种检测机制,至于选择哪种监控方面,依据实际应用环境而定

1、通过killall命令探测服务运行状态

这种监控集群服务的方式主要是通过killall命令实现的,killall会发送一个信号到正在运行的指定命令的进程,killall可用的信号名有很多,如9的信号表示强制中断一个程序的运行,这里用到的信号为0,代号为0的信号并不表示要关闭某个程序,而表示对程序(进程)的运行状态进行监控,如果发现进程关闭或其他异常,将返回状态码1,反之,如果发现进程运行正常,将返回状态码0

vrrp_script模块正是利用了killall命令的这个特性,变相的实现了对服务运行状态的监控,在我们之前的配置文件中

vrrp_script check_httpd {

script "killall -0 httpd"

interval 2

}

这里通过 echo $? 方式显示了上面命令的返回状态码,httpd服务运行正常,因此状态返回码是0,此时check_httpd模块将返回服务检测的正常提示,接着将httpd服务关闭,再次执行检测,结果如下

由于httpd服务关闭,因此状态返回码是1,此时check_httpd模块将返回服务检测失败的提示

从这个过程可以看到,vrrp_script模块其实并不关注监控脚本或监控命令是如何实现的,它仅仅通过监控脚本的返回状态码来识别集群服务是否正常,如果状态返回码是0,那么就认为服务正常,如果状态返回码是1,则认为服务障碍,明白了这个原理后,在进行自定义监控脚本的时候,只需按照这个原则来编写即可

2、检测端口的运行状态

script "</dev/tcp/127.0.0.1/80"

3、通过shell语句监控

script "if [ -f /var/run/httpd/httpd.pid ];then exit 0;else exit 1;fi"

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

这是最常见的监控方式,这里我们还是把之前的配置文件看一下

[[email protected] keepalived]# cat keepalived.conf
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id http_master
}
vrrp_script check_httpd {
        script "/etc/keepalived/check_httpd.sh"
        interval 2
}
vrrp_instance HA_1 {
    state MASTER
    interface eth0
    virtual_router_id 80
    priority 100
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
notify_master "/etc/keepalived/master.sh"
notify_backup "/etc/keepalived/backup.sh"
notify_fault "/etc/keepalived/fault.sh"
track_script {
  check_httpd
}
    virtual_ipaddress {
        172.16.80.100
    }
}
/etc/keepalived/check_httpd.sh  脚本内容如下
[[email protected] keepalived]# cat check_httpd.sh 脚本需要有执行权限
#!/bin/bash

IP=`ifconfig|grep Bcast|head -1|awk ‘{print $2}‘|awk -F: ‘{print $2}‘`
HTTP_STATUS=`curl -I -s $IP|head -1|wc -l`

if [ $HTTP_STATUS -gt 0 ];then

        HTTPD=0
else
        HTTPD=1

fi

echo $HTTPD
exit $HTTPD

那么我们来实际测试下,将主节点httpd服务停掉,看看脚本是否能监控到及是否会自动进行切换

主节点

备用节点

再次把主节点httpd服务开启

主节点

备用节点

可以看到现象一切都符合预期的效果

时间: 2024-09-30 20:55:24

HA 集群软件 keepalived 详解3的相关文章

HA集群之keepalived详解/基于keepalived+LVS-DR构建HA主备模型(一)

一.理论部分:     keepalived是vrrp协议的实现:原生设计目的为高可用ipvs服务:keepalived能够配置文件中的定义生成ipvs规则:并能够对各RealServer的健康状态进行检测:  vrrp协议:虚拟冗余路由协议:早期只是主要在路由器上提供的一种非常简单的完成将多个物理设备组建成一个虚拟设备,并且在多个物理设备之间漂移地址一种协议:非常轻量化,性能非常好.而keepalived无非就是通过vrrp协议在Linux主机上通过一个守护进程,把Linux主机扮演成路由器,

Linux 高可用(HA)集群之keepalived详解

http://freeloda.blog.51cto.com/2033581/1280962 大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用的前端负载均衡器 一.前言 这篇文章是前几篇文章的总结,我们先简单的总结一下我们前面讲解的内容,前面我们讲解了,LVS(负载均衡器).Heartbeat.Corosync.Pacemaker.Web高可用集群.MySQL高可用集群.DRDB.iscsi.gfs2.cLVM等,唯一没有讲解的就是LVS

Linux集群系列——keepalived详解

keepalived :ipvs -->HAipvs -->VIPvrrp :1master,n backup路由高可用协议keepalived+nginxkeepalived+harproxykeepalived是严重依赖于脚本实现高可用的一种方式 实验实例 :ipvshealth check fall_back 原文地址:https://blog.51cto.com/14087650/2431456

高可用,多路冗余GFS2集群文件系统搭建详解

2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群文件系统,保证不同节点能够同时对GFS2集群文件系统进行读取和写入,其次通过multipath实现node和FC,FC和Share Storage之间的多路冗余,最后实现存储的mirror复制达到高可用. GFS2:全局文件系统第二版,GFS2是应用最广泛的集群文件系统.它是由红帽公司开发出来的,允许所有集群节点并行访问.元数据通常会保存在共享

Nginx搭建集群服务器过程详解

Nginx+Apache+PHP+MySQL搭建集群服务器过程详解 概念介绍在本文未能提及,请自助上网科普,直接进入过程详解: 集群架构图大致如下: 一.软件下载 序号 软件名称 软件版本 下载地址 1 操作系统 Windows Server 2008 Enterprise 64bit 2 Php php-5.6.19-Win32-VC11-x64 Thread Safe(由于HTTP服务器用的apache) http://windows.php.net/downloads/releases/p

t持久化与集群部署开发详解

Quartz.net持久化与集群部署开发详解 序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项目的锤炼,走到啦今天,支持集群高可用的开发方案那是一定的,今天我就给小结下我的quartz.net开发升级过程. Quartz.net的数据库表结构 如果支持集群与持久化,单靠本机的内存和xml来保存计算任务调度的各种状态值,可想而知,是困难的.所以支持

Kafka单机、集群模式安装详解(二)

本文环境如下: 操作系统:CentOS 6 32位 JDK版本:1.8.0_77 32位 Kafka版本:0.9.0.1(Scala 2.11) 接上篇 Kafka单机.集群模式安装详解(一) 6. 单节点多Broker模式 Kafka使用可以有多种模式,包括单节点单Broker,单节点多Broker,多节点多Broker. 这里我们简单区分一下: 单节点单Broker:在单台机子上,启动了一个Kafka实例(上一篇就是这种模式). 单节点多Broker:在同一台机子上开启多个Kafka(类似H

阿里巴巴 Sigma 调度和集群管理系统架构详解

阿里巴巴 Sigma 调度和集群管理系统架构详解 划重点 阿里巴巴 9 年双 11 经历下来,交易额增长了 280 倍.交易峰值增长 800 多倍.系统数呈现爆发式增长.系统在支撑双 11 过程中的复杂度和支撑难度以指数级形式上升.双 11 峰值的本质是用有限的成本最大化提升用户体验和集群吞吐能力,用合理的代价解决峰值.本文将从阿里巴巴统一调度体系.混部架构.云化架构三个方面详解阿里是如何支撑如此庞大的系统. 统一调度体系 始于 2011 年建设的 Sigma 是服务阿里巴巴在线业务的调度系统,

Linux 高可用(HA)集群基本概念详解

大纲一.高可用集群的定义二.高可用集群的衡量标准三.高可用集群的层次结构四.高可用集群的分类 五.高可用集群常用软件六.共享存储七.集群文件系统与集群LVM八.高可用集群的工作原理 推荐阅读: CentOS 6.3下DRBD+Heartbeat+NFS配置笔记 http://www.linuxidc.com/Linux/2013-06/85599.htm Heartbeat_ldirector+LB+NFS实现HA及LB.文件共享 http://www.linuxidc.com/Linux/20