As a sysadmin, I should always search and check for errors on every machine that I manage. Unfortunately one of them has an Adaptec 5405 which I forgot to monitor using nagios and just like Murphy’s Law says – “Anything that can go wrong will go wrong” – something went wrong and I have lost information. Not a really big problem because I have backups of everything but it could have been avoided if I had monitored the status of the Adaptec just the way I do with software raid arrays (/proc/mdstat rules!).
So I developed another simple script using Perl (again 😛 ) to check the status of all the available arrays.
#!/usr/bin/perl -w use strict; use warnings; my $adaptec_tool = "/usr/src/cmdline/arcconf"; my $dump = `$adaptec_tool getconfig 1 ld`; my @raids = (); while ($dump =~ /Logical device name.*?:.*?([a-z0-9]+).*?raid level.*?:.*?([0-9]+).*?status of logical device.*?:.*?([a-z0-9]+)/gsi) { push @raids, {"name" => $1, "raidlevel" => $2, "status" => $3}; } foreach my $raid (@raids) { if ( $$raid{status} ne "Optimal" ) { print "Critical: Raid not Optimal! (Array Name: $$raid{name}, Level: $$raid{raidlevel}, Status: $$raid{status})\n"; exit(1); } } print "OK: All arrays in optimal shape\n"; exit (0);
You just need to download the “Adaptec Storage Manager” to connect to the RAID card and read the status. You can use this link to do it.