设为首页 收藏本站
查看: 954|回复: 0

nagios监控heartbeat

[复制链接]

尚未签到

发表于 2015-11-22 16:22:52 | 显示全部楼层 |阅读模式
  heartbeat架好后,我们就需要监控起来喽,下面我们就来了解下怎么监控。
  首先来了解下几个命令,这几个命令在heartbeat安装后会自动加上,我们的监控脚本就用到这几个命令。
  

[iyunv@usvr-210 libexec]# which cl_status
/usr/bin/cl_status
[iyunv@usvr-210 libexec]# cl_status listnodes   #列出当前heartbeat集群中的节点
192.168.3.1
usvr-211
usvr-210
[iyunv@usvr-210 libexec]# cl_status nodestatus usvr-211  #列出节点的状态
active
[iyunv@usvr-210 libexec]# cl_status nodestatus 192.168.3.1  #列出节点的状态
ping

我们的check_heartbeat.sh原理就是列出集群中所有节点,并监测所有节点的状态是否正常,我们实验的节点状态为ping和active。  
  当active+ping的个数为0时critical
  当active+ping的个数小于节点总个数时为warn
  当active+ping的个数等于节点总个数时为ok
  

[iyunv@usvr-210 libexec]# cat check_heartbeat.sh
#!/bin/bash
# Author: Emmanuel Bretelle
# Date: 12/03/2010
# Description: Retrieve Linux HA cluster status using cl_status
# Based on http://www.randombugs.com/linux/howto-monitor-linux-heartbeat-snmp.html
#
# Autor: Stanila Constantin Adrian
# Date: 20/03/2009
# Description: Check the number of active heartbeats
# http://www.randombugs.com
# Get program path
REVISION=1.3
PROGNAME=`/bin/basename $0`
PROGPATH=`echo $0 | /bin/sed -e 's,[\\/][^\\/][^\\/]*$,,'`
NODE_NAME=`uname -n`
CL_ST='/usr/bin/cl_status'
#nagios error codes
#. $PROGPATH/utils.sh
OK=0
WARNING=1
CRITICAL=2
UNKNOWN=3
usage () {
echo "\
Nagios plugin to heartbeat.
Usage:
$PROGNAME
$PROGNAME [--help | -h]
$PROGNAME [--version | -v]
Options:
--help -lPrint this help information
--version -v  Print version of plugin
"
}
help () {
print_revision $PROGNAME $REVISION
echo; usage; echo; support
}

while test -n "$1"
do
case "$1" in
--help | -h)
help
exit $STATE_OK;;
--version | -v)
print_revision $PROGNAME $REVISION
exit $STATE_OK;;
#    -H)
#      shift
#      HOST=$1;;
#    -C)
#      shift
#      COMMUNITY=$1;;
*)
echo "Heartbeat UNKNOWN: Wrong command usage"; exit $UNKNOWN;;
esac
shift
done
$CL_ST hbstatus > /dev/null
res=$?
if [ $res -ne 0 ]
then
echo "Heartbeat CRITICAL: Heartbeat is not running on this node"
exit $CRITICAL
fi
declare -i I=0
declare -i A=0
NODES=`$CL_ST listnodes`
for node in $NODES
do
status=`$CL_ST nodestatus $node`
let I=$I+1
#  if [ $status == "active" ] 默认情况下检测active状态的个数,但是ping状态也为正常状态,因此改成如下条件。
if [ $status == "active" -o $status == "ping" ]
then
let A=$A+1
fi
done

if [ $A -eq 0 ]
then
echo "Heartbeat CRITICAL: $A/$I"
exit $CRITICAL
elif [ $A -ne $I ]
then
echo "Heartbeat WARNING: $A/$I"
exit $WARNING
else
echo "Heartbeat OK: $A/$I"
exit $OK
fi

我们在nagios客户端,也就是我们的lvs集群usvr-210,usvr-211,我们通过nagios服务器端的check_nrpe来获取监控信息。  
  naigos客户端
  1.先将脚本复制到nagios命令目录下并修改相应权限
  cp check_heartbeat.sh /usr/local/nagios/libexec/


  chmod a+x check_heartbeat.sh
  chown nagios.nagios check_heartbeat.sh
  2.在naigos客户端的配置文件中加入监控命令。
  vim /usr/local/nagios/etc/nrpe.cfg


  command[check_heartbeat]=/usr/local/nagios/libexec/check_heartbeat.sh


  3.重新载入配置文件。
  service xinetd reload
  nagios服务端
  1.加入相关监控服务
  

define service {
use                     local-service
service_description     heartbeat-lvs-master
check_command           check_nrpe!check_heartbeat
service_groups          heartbeat_services
host_name               usvr-210
check_interval          5   
notifications_enabled   1   
notification_interval   30  
contact_groups          admins
}
define service {
use                     local-service
service_description     heartbeat-lvs-slave
check_command           check_nrpe!check_heartbeat
service_groups          heartbeat_services
host_name               usvr-211
check_interval          5   
notifications_enabled   1   
notification_interval   30  
contact_groups          admins
}2.检查并载入配置文件  
  nagioscheck
  service nagios reload
  监控如下:
DSC0000.jpg


  


  ok,我们的heartbeat监控完成了。
  


  我是参考这个网站http://wiki.debuntu.org/wiki/Linux_HA_Heartbeat/Monitoring_with_Nagios,希望能对大家有所帮助。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142264-1-1.html 上篇帖子: 关于nagios的一篇很不错的文章 下篇帖子: 用php自定义 nagios监控插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表