发表于 2018-12-30 10:31:22

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
  }
  

http://s4.运维网.com/wyfs02/M01/85/21/wKiom1eav4PQ-IpEAAAOs_IjTic332.png
  

  这里通过 echo $? 方式显示了上面命令的返回状态码,httpd服务运行正常,因此状态返回码是0,此时check_httpd模块将返回服务检测的正常提示,接着将httpd服务关闭,再次执行检测,结果如下
http://s5.运维网.com/wyfs02/M00/85/21/wKiom1eawBmyaa4NAAAjXmYcM7o476.png
  

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

  2、检测端口的运行状态
  script "
页: [1]
查看完整版本: HA 集群软件 keepalived 详解3