User Tools

Site Tools


computing:storage:lsi:megaraid_monitor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
computing:storage:lsi:megaraid_monitor [2013/01/21 16:29]
gcooper
computing:storage:lsi:megaraid_monitor [2018/11/01 10:55] (current)
gcooper
Line 1: Line 1:
 ====== Monitoring LSI SAS RAID Controllers on Linux ====== ====== Monitoring LSI SAS RAID Controllers on Linux ======
  
-FIXME This page needs updating.+See also **[[computing:storage:lsi:megaraid|LSI MegaRAID]]**
  
-Cheat Sheet:+**Cheat Sheet**http://tools.rapidsoft.de/perc/
  
-LSI MegaRAID SAS User's Guide: +**LSI MegaRAID SAS User's Guide**http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/MegaRAID_SAS_SW_UG_51530-00_RevI.pdf
  
 This configuration uses ''cron'' and the MegaCLI RAID configuration utility to monitor a Linux server with a newer LSI SAS RAID controller. This configuration uses ''cron'' and the MegaCLI RAID configuration utility to monitor a Linux server with a newer LSI SAS RAID controller.
Line 20: Line 20:
  
 <file> <file>
-vim /etc/ssmtp/ssmtp.conf+vi /etc/ssmtp/ssmtp.conf
  
 root=admin@yourdomain.com root=admin@yourdomain.com
Line 41: Line 41:
 ==== Install the MegaCLI Utility ==== ==== Install the MegaCLI Utility ====
  
-Log in as 'root', then:+See also **[[computing:storage:lsi:megaraid|LSI MegaRAID]]**
  
-<file> +==== cron ====
-mkdir ~/MegaCLI +
-cd ~/MegaCLI +
-wget http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.07.06_MegaCLI.zip +
-unzip 8.07.06_MegaCLI.zip +
- +
-rpm -Uvh Linux/MegaCli-8.07.06-1.noarch.rpm +
-</file> +
- +
-==== CRON ====+
  
-I added this to my ''/etc/crontab'' to run the script every 10 minutes:+Added to ''/etc/crontab'' to run the script every 10 minutes:
  
 <file> <file>
Line 63: Line 54:
 ==== raid-status-megacli.sh ==== ==== raid-status-megacli.sh ====
  
-Place this script in the ''/root'' directory.+Place this script in the ''/root'' directory and make it executable: 
 + 
 +<file> 
 +chmod +x /root/raid-status-megacli.sh 
 +</file>
  
 You will want to edit the variables to fit your needs. You will want to edit the variables to fit your needs.
Line 70: Line 65:
 #!/bin/bash #!/bin/bash
 # #
-raidstatus.sh - Gene Cooper <gcooper@sonoracomm.com>+raid-status-megacli.sh - Gene Cooper <gcooper at sonoracomm.com>
 # #
 # For newer LSI RAID controllers # For newer LSI RAID controllers
 # #
 # Uses MegaCLI utility and sendmail command and should be run from cron # Uses MegaCLI utility and sendmail command and should be run from cron
-#+ 
 +Sender of e-mail warnings 
 +# For WHMCS Ticket System, use the contact address here for automatic account assignment 
 +FROM='"RAID Status" <user@domain.com>'
  
 # Subject of e-mail warning # Subject of e-mail warning
-SUBJECT='RAID Array Failure on $HOSTNAME'+SUBJECT="RAID Array Failure on `hostname`"
  
 # Recipient of e-mail warnings # Recipient of e-mail warnings
-ADMIN='you@yourdomain.com'+ADMIN='"Your Name" <you@yourdomain.com>'
  
 # RAID utility check command # RAID utility check command
Line 92: Line 90:
 nice -n 19 ${COMMAND} > $STATUS nice -n 19 ${COMMAND} > $STATUS
  
-check for error+Comment this section and run manually to test mail sending 
 +# Check for error
 if [ -z "$(grep "^State.*: Degraded$" $STATUS | awk '{print $NF}')" ]; then if [ -z "$(grep "^State.*: Degraded$" $STATUS | awk '{print $NF}')" ]; then
   exit 0   exit 0
 fi fi
  
-send mail+Send mail
 /usr/sbin/sendmail -t -i <<EOF /usr/sbin/sendmail -t -i <<EOF
 Date: $(date) Date: $(date)
 To:  $ADMIN To:  $ADMIN
 Subject: $SUBJECT Subject: $SUBJECT
-From: $ADMIN+From: $FROM
  
 $(cat $STATUS) $(cat $STATUS)
Line 108: Line 107:
 EOF EOF
 exit exit
 +</file>
 +
 +Here is someone else's script for ideas:
 +
 +<file>
 +#!/bin/sh
 +CONT="a0"
 +STATUS=0
 +MEGACLI=/opt/MegaRAID/MegaCli/MegaCli64
 +
 +echo -n "Checking RAID status on "
 +hostname
 +for a in $CONT
 + do
 +
 +   NAME=`$MEGACLI -AdpAllInfo -$a |grep "Product Name" | cut -d: -f2`
 +   echo "Controller $a: $NAME"
 +   noonline=`$MEGACLI PDList -$a | grep Online | wc -l`
 +   echo "No of Physical disks online : $noonline"
 +   DEGRADED=`$MEGACLI -AdpAllInfo -a0  |grep "Degrade"`
 +   echo $DEGRADED
 +   NUM_DEGRADED=`echo $DEGRADED |cut -d" " -f3`
 +   [ "$NUM_DEGRADED" -ne 0 ] && STATUS=1
 +   FAILED=`$MEGACLI -AdpAllInfo -a0  |grep "Failed Disks"`
 +   echo $FAILED
 +   NUM_FAILED=`echo $FAILED |cut -d" " -f4`
 +   [ "$NUM_FAILED" -ne 0 ] && STATUS=1
 +
 + done
 +
 +exit $STATUS
 </file> </file>
computing/storage/lsi/megaraid_monitor.1358810974.txt.gz · Last modified: 2013/01/21 16:29 by gcooper