阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nagios监控Heartbeat

205次阅读
没有评论

共计 3867 个字符,预计需要花费 10 分钟才能阅读完成。

Heartbeat 架好后,我们就需要监控起来喽,下面我们就来了解下怎么监控。

首先来了解下几个命令,这几个命令在 heartbeat 安装后会自动加上,我们的监控脚本就用到这几个命令。

[root@usvr-210 libexec]# which cl_status
/usr/bin/cl_status
[root@usvr-210 libexec]# cl_status listnodes  #列出当前 heartbeat 集群中的节点
192.168.3.1
usvr-211
usvr-210
[root@usvr-210 libexec]# cl_status nodestatus usvr-211  #列出节点的状态
active
[root@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

[root@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 -l Print 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

监控如下:

Nagios 监控 Heartbeat

 

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

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

————————————– 分割线 ————————————–

基于 Heartbeat V1 实现 Web 服务双机热备 http://www.linuxidc.com/Linux/2014-04/100635.htm

Heartbeat 实现 Web 服务的高可用群集 http://www.linuxidc.com/Linux/2014-04/99503.htm

Heartbeat+LVS+Ldirectord 高可用负载均衡解决方案 http://www.linuxidc.com/Linux/2014-04/99502.htm

DRBD+Heartbeat+NFS 高可用性配置笔记 http://www.linuxidc.com/Linux/2014-04/99501.htm

Heartbeat 基于 CRM 使用 NFS 对 MySQL 高可用 http://www.linuxidc.com/Linux/2014-03/98674.htm

Heartbeat 高可用 httpd 基于 Resources 简单配置 http://www.linuxidc.com/Linux/2014-03/98672.htm

————————————– 分割线 ————————————–

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3867字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中