Difference between revisions of "Raid:LSI Monitoring"

From SME Server
Jump to navigationJump to search
(Created page with '(:title LSI Controller Monitoring:) == LSI Controller Monitoring under Linux == === Download === From http://www.drugphish.ch/~ratz/mpt-status/ http://www.drugphish.ch/~…')
 
Line 1: Line 1:
(:title LSI Controller Monitoring:)
+
{{Level|Medium}}
 +
Dell Servers - and others (I guess) come the LSI Logic Raid controllers, but ..
  
== LSI Controller Monitoring under Linux ==
+
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
 +
 
 +
== LSI Controller Monitoring ==
  
 
=== Download ===
 
=== Download ===

Revision as of 13:52, 27 August 2010

PythonIcon.png Skill level: Medium
The instructions on this page require a basic knowledge of linux.


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

LSI Controller Monitoring

Download

From
  http://www.drugphish.ch/~ratz/mpt-status/
  http://www.drugphish.ch/~ratz/mpt-status/RPMS/1.2.0_RC7/
download
  [[1]]

Install

yum localinstall mpt-status-1.2.0_RC7-3.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);
}