nagios 监控硬盘RAID

背景:由于线上服务器硬盘故障,导致服务,数据失效;


目的:保证第一时间发现硬盘信息是否正常;


方案:使用Nagios 自定义脚本来监控硬盘状态;

注意:下面脚本只提供已经安装hpacucli megacli 软件使用;

#!/bin/bash
#Marc.wang 2014/06/17

export PATH=$PATH:/usr/sbin/:/sbin/:/usr/bin/
Get_localhost_Hostname=`hostname -I |awk ‘{print $1}‘`
Nagios="nagios.org"
SERVER_TYPE=$(/usr/sbin/dmidecode  | grep "Vendor" | awk  -F\: ‘NR==1{print $2}‘|awk ‘{print $1}‘)

#The nagios command run nsca
Send_nsca_ssl_message (){ 

/usr/local/nagios/bin/send_nsca  -H ${Nagios} -d ";" -c /usr/local/nagios/etc/send_nsca.cfg 

 }

#hp command run

HP_DISK_STATUS_COMMAND() {

rpm  -qa |grep  hpacucli >> /dev/null 2>&1
echo $?
}

# dell command run

DELL_IBM_DISK_STATUS_COMMAND() {

rpm -qa |grep MegaCli >> /dev/null 2>&1
 echo $?
}

bug_test=$(ps ax |grep hpacucli |grep -v grep |wc -l)

if [ "${bug_test}" != "0" ]

then
        echo "$Get_localhost_Hostname;check_raid;2; hpacucli command run not data." | Send_nsca_ssl_message

        exit 2
fi

CHECK_RAID_STATUS_HP () {  

/usr/sbin/hpacucli  ctrl all show config detail |grep physicaldrive  -A 4 |sed ‘s/ //g‘|grep "Status:"  |grep -v  "Status:OK" | wc -l
}

case $SERVER_TYPE in

HP|hp|Hp|Hewlett-Packard)

TEST_HP_COMMAND () {

hpacucli  ctrl all show config detail >> /dev/null 2>&1

echo $?
}

HP_RPM=$(HP_DISK_STATUS_COMMAND)
sleep 3

if  [ ${HP_RPM}  != "0" ] 

    then

    echo "$Get_localhost_Hostname;check_raid;2; $SERVER_TYPE  command hpacucli Not Found" | Send_nsca_ssl_message

    exit 2

elif [[ ${HP_RPM}  == "0"  ]]; 

    then

    HP_RAID_STATUS_NUMBER=$(CHECK_RAID_STATUS_HP)
    sleep 3

    TEST_HP=$(TEST_HP_COMMAND)
    
    if [ "$HP_RAID_STATUS_NUMBER" == "0" ] && [ "$TEST_HP"   == "0" ]; 

        then
        echo "$Get_localhost_Hostname;check_raid;0;Check_Raid_status:OK" | Send_nsca_ssl_message
        exit 0

    elif [ "${TEST_HP}" != "0" ] 
         then
          echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status: run command hpacucli Error" | Send_nsca_ssl_message
          exit 2
          
    elif  [ "$HP_RAID_STATUS_NUMBER" != "0"  ] && [ "$TEST_HP" == "0" ]
          then
           echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status:Critical" | Send_nsca_ssl_message
           exit 2
    fi
  fi
    ;; 

DELL|Dell|DEll|DeLL|dell|IBM|ibm|Ibm|IBm) 

if [  -f "/opt/MegaRAID/MegaCli/MegaCli64" ];

        then

CHECK_RAID_STATUS_IBM_DELL () { 

/opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -a0  |  grep -E "(Media Error Count:|Other Error Count:)"  |awk -F: ‘{sum1 += $2} END {print sum1}‘ 

}
TEST_DELL_COMMAND (){
/opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -a0  >> /dev/null
  echo $?
}

else

CHECK_RAID_STATUS_IBM_DELL () { 

MegaCli -LdPdInfo -a0  |  grep -E "(Media Error Count:|Other Error Count:)"  |awk -F: ‘{sum1 += $2} END {print sum1}‘ 

}
TEST_DELL_COMMAND (){
MegaCli -LdPdInfo -a0  >> /dev/null
  echo $?
}

fi

IBM_DELL_RPM=$(DELL_IBM_DISK_STATUS_COMMAND)

 if  [[ ${IBM_DELL_RPM}  ==  "0" ]]

    then
     TEST_OTHER_COMMAND=$(TEST_DELL_COMMAND)

     DELL_IBM_STATUS_NUMBER=$(CHECK_RAID_STATUS_IBM_DELL)

      if [[  -z "$DELL_IBM_STATUS_NUMBER" ]]

              then

            echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status:MegaCli Command  Not Found!" | Send_nsca_ssl_message
            exit 2

      elif [[ "$DELL_IBM_STATUS_NUMBER" -gt "2000" ]] ; 

              then
        
            echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status:Critical" | Send_nsca_ssl_message
            exit 2
       

        elif  [[  "$DELL_IBM_STATUS_NUMBER"  -lt  "2000" ]] && [[ "$TEST_OTHER_COMMAND" == "0" ]]

              then
              echo "$Get_localhost_Hostname;check_raid;0;Check_Raid_status:OK" | Send_nsca_ssl_message

              exit 0
        fi  
    
fi
;;

*)

  echo "$Get_localhost_Hostname;check_raid;2;This machine is not IBM DELL or HP!" | Send_nsca_ssl_message
  ;;
esac
时间: 2024-12-19 11:55:24

nagios 监控硬盘RAID的相关文章

使用nagios监控HP服务器RAID

背景:单位在IDC机房选用了DELL和HP两种类型的服务器.对监控服务器硬件特别是RAID方面的信息,dell可以使用自带的OMSA程序进程监控.可是HP没有此方面的监控,服务器中的磁盘是最容易出现问题的,个人研究了多日发现可以使用下面的方式进行对HP服务器监控RAID. 使用nagios监控HP服务器的RAID: 前提本地服务器已经安装好nagios-plugin和nrpe模块,如果没有安装可以搜索一下,相关教程有很多,属于nagios的使用.这里只说一下如何监控raid. 当前使用的操作系统

监控硬盘故障的nagios脚本

#!/usr/bin/perl use strict; use warnings;   use lib "/usr/lib64/nagios/plugins";   use utils qw(%ERRORS); my $usage = " Usage: $0 host_addr ipmi_user ipmi_pass Connects to a Dell BMC and parses the Drive token for RAID status and disk slot 

nagios自定义监控硬盘脚本

在客户端以下位置编辑配置文件 1.vim /usr/lib64/nagios/pligins/check_disk.sh #!/bin/bash#!/bin/bashrow=`df -h |wc -l`for i in `seq 2 $row`do        ava=`df -h |sed -n "$i"p|awk '{print $4}'`        u_per=`df -h |sed -n "$i"p|sed -n "s/\%//"p

nagios之监控

监控系统需要监控: 1.本地资源:负载(uptime),cpu(top.sar),磁盘(df),内存(free),IO(iostat),RAID,温度,passwd文件的变化,本地所有文件指纹识别 2.网络服务:端口,URL,丢包,进程数,网络流量 3.其他设备:路由器,交换机端口流量,打印机,windows 4.业务数据:用户登录失败次数,用户登录网站次数,输入验证码失败的次数 某个API接口流量并发,电商网站订单,支付交易的数量 5.监控软件本身仅仅是一个平台,想要监控内容,理论上只要在服务

RedHat6.5上部署Nagios

部署环境:系统,RedHat 6.5;组件,Nagios; 部署前准备:关闭Selinux,和防火墙(/etc/init.d/iptables stop):获取相关软件包. (包括gd-devel mysql-server openssl-devel xinetd;等) 具体步骤: 1.在Nagios运行的主机上创建Nagios用户和nagcmd组: groupadd nagcmd; useradd -M -d /usr/local/nagios -G nagcmd nagios; usermo

Linux课程笔记 Day08 课上内容总结 Apache及Raid技术

一 http基础概念 1.1   静态网页的特点: (1)       静态网页每个页面都有一个固定的URL,而且URL一般以.htm..html..shtml等形式为后缀,而且地址中不含有问号”?” (2)       静态网页是实实在在保存在服务器上的文件,每个都是一个独立的文件 (3)       静态网页的内容相对稳定,容易被搜索引擎收录(优点) (4)       静态网页没有数据库的支持,在网站制作和维护方面工作量较大(缺点) (5)       静态网页的交互性较差,在功能方面有较

Nagios配置安装详解

nagios.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:3px}iframe{border:0}figure{-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0}kbd{border:1px solid #a

nagios的配置

nagios简介: Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知.以下主机所用系统为红帽6.5 nagios的安装: 在server2.example.com这台主机中: 主机ip为172.25.254.2 关闭防火墙和selinux nagios从官网下载所需要的源码包和插件包. 这里用的源码包是

结合一个nagios告警浅谈solaris的SVM

现在的90后运维,大多懂linux的lvm,估计很少有人懂solaris的svm了.在N年前,在linux x86还没有雄起的时候,其实aix/hp/sun三大主机巨头都有自己的一套存储管理机制和软件,其中sun的就是svm.除了各自专门的存储管理软件,还有第三方的商业存储管理软件,比如veritas,也可以用来管理solaris的存储,不过这些商业软件,在如今开源产品的冲击下,日子是远不如以前风光了. ok,废话扯完.看一个nagios告警: messages.0:Jul 31 15:06:4