Raid:LSI Monitoring

From SME Server
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
PythonIcon.png Skill level: Medium
The instructions on this page require a basic knowledge of linux.


LSI Controller Monitoring

Introduction

Dell Servers - and others (I guess) come the LSI Logic Raid controllers, but ..

The excellent native Raid monitoring in SME is bypassed, this howto describes how to install the mpt-status package and write a small customizable monitoring app

Establish a Console session to do this.

Download

From
  http://sven.stormbind.net/mpt-status-rhel/
download
  mpt-status-1.2.0-2.el6.i686.rpm

Install

yum localinstall mpt-status-1.2.0-2.el5.centos.i386.rpm

Support Program

  • CheckMPT
#!/usr/bin/perl
# With credit to :
#   => check_mpt.pl Copyright (C) 2006 Claudio Messineo <claudio@zero.it>

$mpt_path="/usr/sbin/mpt-status";
$num_raid=2;
$enabled=1;
$sendto="admin";
$sendfrom="admin";

`/sbin/modprobe mptctl`;
sleep 1;

if ( ! open( MPT_STAT, " $mpt_path | " ) ) {
    print "ERROR: could not open $mpt_path\n";
    exit 1;
} else {
    while (<MPT_STAT>) {
        if ( $_ =~ m/ENABLED/ ) {
            # print "$_";
            $enabled--;
        }
        if ( $_ =~ m/ONLINE/ ) {
             # print "$_";
             $num_raid--;
        }
        next;
    }

    my $hostname=`/bin/hostname -f 2>&1`;
    chomp($hostname);
    if (($num_raid==0) and ($enabled==0)) {

#        sendEmail( $sentto, $sendfrom, "$hostname Mpt-status OK", "$results" );
#        print "$hostname Mpt-status OK\n";
         exit 0;
    } else {

        sendEmail( $sentto, $sendfrom, "$hostname Mpt-status Alert", "$results" );
        print "$hostname Mpt-status Alert\n";
        exit 1;
    }
}

# Simple Email Function
# ($to, $from, $subject, $message)
sub sendEmail {
    my ($to, $from, $subject, $message) = @_;
    my $sendmail = '/var/qmail/bin/sendmail';
    open(MAIL, "|$sendmail -f $from -oi -t");
        print MAIL "From: $from\n";
        print MAIL "To: $to\n";
        print MAIL "Subject: $subject\n\n";
        print MAIL "$message\n";
    close(MAIL);
}