2
0
mirror of https://github.com/munin-monitoring/contrib.git synced 2018-11-08 00:59:34 +01:00

added graph info, added warning & critical alerts, data info, SMART errors and revised the scaling

This commit is contained in:
Frank 2011-05-22 16:28:07 +02:00 committed by Steve Schnepp
parent eca3d0044a
commit 203f993d27

View File

@ -4,15 +4,19 @@
# This plugin can graph:- Currently Drive Temperature and Error Count
#
#---------------------
#
# Create a symbolic link to MegaRaid_{AdapterNumber}_{temp|error}
# Examples
# Create a symbolic link to MegaRaid_<AdapterNumber>_<temp|media|other|predictive>
# ln -s /usr/share/munin/plugins/MegaRaid_ /etc/munin/plugins/MegaRaid_0_temp
# graph temperature on adapter 0
#
# ln -s /usr/share/munin/plugins/MegaRaid_ /etc/munin/plugins/MegaRaid_0_error
# graph media errors on adapter 0
#
# ln -s /usr/share/munin/plugins/MegaRaid_ /etc/munin/plugins/MegaRaid_1_temp
# graph temperature on adapter 1
#
#---------------------
#
# $Log$
# Log
# Revision 0.1 2011/04/16 idobson
# -First version only basic support of the MegaRaid controller
#
@ -26,6 +30,18 @@
# Revision 1.1 2011/04/17 fkatzenb
# -Revised scalling
#
# Revision 1.2 2011/04/28 fkatzenb
# -Added support for graph_info support
# -Added warning & critical alerts support
# -Added data info
#
# Revision 2.0 2011/04/29 fkatzenb
# -Added remaining support for SMART Errors
#
# Revision 2.1 2011/04/29 fkatzenb
# -Added version information for in the graph description
#
#
#---------------------
#
# Add the following to your /etc/munin/plugin-conf.d/munin-node:
@ -41,6 +57,7 @@
#%# family=auto
#%# capabilities=autoconf
#
my $DisplayVer=2.1;
use strict;
use warnings;
@ -61,18 +78,48 @@ chomp $Command;
my %config = (
temp => {
lookfor => 'Drive Temperature :',
label => 'Drive Temp',
label => 'Temp',
title => "MegaRAID Adapter $Adapter: Drive Temperatures",
vtitle => 'Celsius',
graph_args => '--base 1000 -l 0'
graph_args => '--base 1000 -l 0',
warning => '55',
critical => '65',
info_tag => "Temperature (C)",
description => "Internal Temperatures for drives on Adapter $Adapter."
},
error => {
lookfor => 'Media Error Count: ',
label => 'Drive Media Err',
title => "MegaRAID Adapter $Adapter: Media Errors",
label => 'Media Err',
title => "MegaRAID Adapter $Adapter: Media Errors (SMART)",
vtitle => 'Number of Errors',
graph_args => '--base 1000 -l 0'
graph_args => '--base 1000 -l 0',
warning => '',
critical => '',
info_tag => "Media Errors (SMART)",
description => "Number of SMART errors related to the drive's media on Adapter $Adapter."
},
other => {
lookfor => 'Other Error Count: ',
label => 'Other Err',
title => "MegaRAID Adapter $Adapter: Others Errors (SMART)",
vtitle => 'Number of Errors',
graph_args => '--base 1000 -l 0',
warning => '',
critical => '',
info_tag => "Other Errors (SMART)",
description => "Number of SMART errors not related to the drive's media on Adapter $Adapter."
},
predictive => {
lookfor => 'Predictive Failure Count: ',
label => 'Predictive Err',
title => "MegaRAID Adapter $Adapter: Predictive Errors (SMART)",
vtitle => 'Number of Errors',
graph_args => '--base 1000 -l 0',
warning => '',
critical => '',
info_tag => "Predictive Errors (SMART)",
description => "Number of SMART errors for each drive on Adapter $Adapter."
}
);
#Auto config options
@ -97,6 +144,7 @@ if ($ARGV[0] and $ARGV[0] eq "config"){
print "graph_args $config{$Type}->{graph_args}\n";
print "graph_scale yes\n";
print "graph_category disk\n";
print "graph_info $config{$Type}->{description} <br />Generated by MegaRaid_, Version $DisplayVer<br />\n";
foreach my $Line (@Output) {
$Line=~ s/\r//g;
@ -106,7 +154,14 @@ if ($ARGV[0] and $ARGV[0] eq "config"){
if ( $Line=~ m/Slot Number: /i ) {
$DevID=$Line;
$DevID=~ s/Slot Number: //;
print "A".$Adapter."_D".$DevID."_$Type.label Adapter:$Adapter/Disk:$DevID $config{$Type}->{label}\n";
print "A".$Adapter."_D".$DevID."_$Type.label A$Adapter:D$DevID $config{$Type}->{label}\n";
print "A".$Adapter."_D".$DevID."_$Type.info Adapter: $Adapter / Drive: $DevID - $config{$Type}->{info_tag}\n";
if ($config{$Type}->{warning} ne '' ) {
print "A".$Adapter."_D".$DevID."_$Type.warning $config{$Type}->{warning}\n";
}
if ($config{$Type}->{critical} ne '') {
print "A".$Adapter."_D".$DevID."_$Type.critical $config{$Type}->{critical}\n";
}
}
}
exit 0;