Support LLD discovery for MegaRAID controllers

This commit is contained in:
Daniel Berteaud 2014-07-10 12:55:14 +02:00
parent 6153c4aa15
commit a5f8da6aa0
2 changed files with 44 additions and 1 deletions

View File

@ -9,4 +9,7 @@
# You can add a simple trigger on this check like:
# { hostname:raid.mega.status.str( OK ) }=0
UserParameter=raid.mega.status,/usr/bin/sudo /var/lib/zabbix/bin/check_raid_megaraid_sudo
UserParameter=raid.mega.status[*],/usr/bin/sudo /var/lib/zabbix/bin/check_raid_megaraid_sudo -s $1 -o $2 -m $3
# Discover if there's a controller to check
UserParameter=raid.mega.discovery,/usr/bin/sudo /var/lib/zabbix/bin/disco_raid_megaraid_sudo

View File

@ -0,0 +1,40 @@
#!/usr/bin/perl -w
use strict;
use JSON;
my $json;
@{$json->{data}} = ();
my $megacli = undef;
if (-x '/opt/MegaRAID/MegaCli/MegaCli64'){
$megacli = '/opt/MegaRAID/MegaCli/MegaCli64';
}
elsif (-x '/opt/MegaRAID/MegaCli/MegaCli'){
$megacli = '/opt/MegaRAID/MegaCli/MegaCli';
}
unless($megacli){
print to_json($json);
exit(0);
}
my $adapters = 0;
open (ADPCOUNT, "$megacli -adpCount -NoLog |")
|| die "error: Could not execute MegaCli -adpCount";
while (<ADPCOUNT>) {
if ( m/Controller Count:\s*(\d+)/ ) {
$adapters = $1;
last;
}
}
close ADPCOUNT;
if ($adapters > 0){
push @{$json->{data}}, {"{#CONTROLLERNO}" => $adapters};
}
print to_json($json);
exit(0);