nagios监控heartbeat

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

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

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

我们的check_heartbeat.sh原理就是列出集群中所有节点,并监测所有节点的状态是否正常,我们实验的节点状态为ping和active。

当active+ping的个数为0时critical

当active+ping的个数小于节点总个数时为wart

当active+ping的个数等于节点总个数时为ok

[[email protected] 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

监控如下:

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

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

时间: 2024-12-29 07:04:30

nagios监控heartbeat的相关文章

Nagios监控Windows的网卡流量

Nagios监控Windows的网卡流量 使用/usr/local/nagios/libexec/中的check_traffic.sh,不但可以监控Linux的网卡流量,也可以监控Windows服务器的流量. 1 Check_traffic.sh用法用法 [[email protected] libexec]#/usr/local/nagios/libexec/check_traffic.sh -h Usage: ./check_traffic.sh [ -v ] [ -6 ] [ -r ] -

通过collectd工具获取虚拟机的nagios监控脚本简单例子

在宿主机上安装collectd工具后,可以通过collectd工具来获取宿主机上的虚拟机的cpu,memery,if-traffic等数据.可以通过nagios监控脚本来实现对这些数据监控. 以下是一个简单的监控虚拟机内存脚本: #!/bin/bash #Desc:to check memory about vm instance STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 COLLECTD_HOME=/usr/loca

Nagios监控系统

一.Nagios监控系统简介 1.Nagios工作原理 Nagios本身不包括监控主机和服务的功能.所有的监控.监测功能都是通过各种插件来完成的.安装完nagios之后,在nagios主目录下的/libexex里面放有nagios自带的插件,如:check_disk是检查磁盘空间的插件,check_load是检查cpu负载的插件,每一个插件可以通过运行./check_xxx -h命令来检查其使用方法和功能. 1.Nagios的四种监控状态 Nagios可以识别四种状态返回信息.0(OK)表示状态

Nagios监控远程主机

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; font-size: 13.5pt; font-family: "Calibri", "sans-serif" } h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left:

Nagios监控系统主机与服务配置

配置环境: 监控服务器 :192.168.189.132 被监控客户端:192.168.189.131(linux) 192.168.1.152(windows) Nagios相关配置文件概述: # cd /usr/local/nagios/etc/   相关文件用途如下表: 文件名或目录名 用途 cgi.cfg 控制CGI访问的配置文件 nagios.cfg Nagios 主配置文件 resource.cfg 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USE

nagios监控详解(中小企业必备的监控设备) <上>

cacti和nagios 都是中小企业必备的监控软件,首先来一个回顾 cacti监控优缺点:主要是监控图形流量,通过web界面监控流量,(主要监控cpu内存硬盘,流量) 基于snmp(抓取数据)和rrdtool(rrdtool主要是将抓取的数据 绘制图像) nagios监控系统服务的,也能监控window,linux,unix的主机状态,不过主要还是监控系统服务. nagios监控客户端需要借助插件以及NRPE软件 [把之前写的一个关于cacti的博客地址也不要碧莲的贴出来]http://www

Nagios 监控系统架设全攻略

Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT 基础设施监控系统,其功能强大,灵活性强,能有效监控 Windows .Linux.VMware 和 Unix 主机状态,交换机.路由器等网络设置等.一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运营人员,在状态恢复后发出正常的邮件或短信通知.Nagios 结构简单,可维护性强,越来越受中小企业青睐,以及运维和管理人

nagios监控内出错NRPE: Unable to read output 解决!

 nagios监控内出错NRPE: Unable to read output 解决! 由于编写check_mem监控脚本,在监控机报警:NRPE: Unable to read output,其他监控项目正常 初步认定是nagios没有权限去实行check_mem脚本: 1.在监控主机监控客户机内存,遇到NRPE: Unable to read output # /usr/local/nagios/libexec/check_nrpe -H 1192.168.1.10 -c check_mem

nagios 监控 网卡流量 脚本

#!/bin/bash # #Time     : 2014-06-23 #Author   : ftlynx #Function : use NET-SNMP get NIC traffic on nagios. Usage(){ echo "Usage: check_traffic.sh [options]" echo "     -H     Host IP." echo "     -P     net-snmp community string.