背景:单位在IDC机房选用了DELL和HP两种类型的服务器。对监控服务器硬件特别是RAID方面的信息,dell可以使用自带的OMSA程序进程监控。可是HP没有此方面的监控,服务器中的磁盘是最容易出现问题的,个人研究了多日发现可以使用下面的方式进行对HP服务器监控RAID。


使用nagios监控HP服务器的RAID:

前提本地服务器已经安装好nagios-plugin和nrpe模块,如果没有安装可以搜索一下,相关教程有很多,属于nagios的使用。这里只说一下如何监控raid.

当前使用的操作系统为centos5.1


1。监控RAID:

(1)下载安装hpasmcli,此模块用来检测HP服务器的raid以及磁盘情况:

#rpm -ivh hpacucli-9.40-12.0.x86_64.rpm          

(2)安装完成后,默认生成的可执行文件为:

/usr/sbin/hpacucli

使用以下命令可以对服务器硬盘和RAID进行检测:

$ sudo /usr/sbin/hpacucli ctrl slot=0 pd all show status


   physicaldrive 1I:1:1 (port 1I:box 1:bay 1, 300 GB): OK

   physicaldrive 1I:1:2 (port 1I:box 1:bay 2, 300 GB): OK

   physicaldrive 1I:1:3 (port 1I:box 1:bay 3, 300 GB): OK

$ sudo /usr/sbin/hpacucli ctrl slot=0 logicaldrive all show|grep RAID

      logicaldrive 1 (558.7 GB, RAID 5, OK)

(3)编辑脚本,使nrpe可以调用:

#!/bin/bash

#First create date:2016/01/07

#Author:kunka

#定义nagios返回状态

STATE_OK=0

STATE_WARNING=1

STATE_CRITICAL=2

STATE_UNKNOWN=3

STATE_DEPENDENT=4

i=1

#设置变量

DISK_COM=$(sudo /usr/sbin/hpacucli ctrl slot=0 pd all show status|awk '{print $9}')

DISK_ERR=$(sudo /usr/sbin/hpacucli ctrl slot=0 pd all show status|grep -v OK)

DISK_RAID=$(sudo /usr/sbin/hpacucli ctrl slot=0 logicaldrive all show|grep RAID)


if [ $? -eq 0 ];then

    for OK in $DISK_COM

    do

        if [ $OK = 'OK' ];then

            i=$(($i+1))

        else

            echo "Warning:" $DISK_ERR,$DISK_RAID

            exit $STATE_CRITICAL

             

        fi

    done

    echo "OK-RAID:" $DISK_RAID

    exit $STATE_OK

else

    echo 'Unkonwn! hpacucli can not to exec.'

    exit $STATE_UNKNOWN

fi

(4)由于nrpe一般都设置为nagios用户执行,因此需要使用sudo权限,修改/etc/sudoers文件:   

 #vim /etc/sudoers

        Defaults    requiretty   --注释掉

   nagios  ALL=NOPASSWD:/usr/sbin/hpacucli   

:wq

保存退出



(5)配置nrpe文件:
将上面的脚本复制到usr/local/nagios/libexec/目录下,然后编辑

#vim nrep.cfg

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

  启动nrpe:

#sudo /usr/local/nagios/bin/nrpe -d /usr/local/nagios/etc/nrpe.cfg

(6)配置nagios文件:

1)添加主机文件

2)修改nagios.cfg文件

3) 检查nagios配置文件

    sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

3)重启nagios服务