Implementing Raid Monitoring on a 3Ware 3w-9xxx based controller.
When you pull out a disk from your Raid setup it shows a warning in syslog
Jan 27 10:18:22 EL860 kernel: 3w-9xxx: scsi0: AEN: WARNING (0x04:0x0019): Drive removed:port=1. Jan 27 10:18:22 EL860 kernel: 3w-9xxx: scsi0: AEN: ERROR (0x04:0x0002): Degraded unit:unit=0, port=1.
However if no one is looking at syslog that won't really be helpfull.
3Ware provides a tool from their site called tw_cli which can be used to manage
the raid setup from the command line.
[EL860-root@EL860 admin]# tw_cli /c0 show Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy ------------------------------------------------------------------------------ u0 RAID-1 REBUILDING 41% - - 232.82 RiW ON VPort Status Unit Size Type Phy Encl-Slot Model ------------------------------------------------------------------------------ p0 OK u0 232.88 GB SATA 0 - ST3250310NS p1 DEGRADED u0 232.88 GB SATA 1 - ST3250310NS
I'd figure I'd either have to write wrapper script around that or find some other way of integrating it.
Asking the question on ##infra-talk on irc.freenode.net gave me the following link to a check script on github
koollman: sdog: something like http://github.com/stanaka/check_tw should work.
With that in your snmpd.conf you can get the info via snmp
[root snmp]# snmpwalk localhost -v 2c -c public .1.3.6.1.4.1.2 021 | grep ext UCD-SNMP-MIB::extIndex.1 = INTEGER: 1 UCD-SNMP-MIB::extNames.1 = STRING: TW_RAID UCD-SNMP-MIB::extCommand.1 = STRING: /usr/local/sbin/check_tw UCD-SNMP-MIB::extResult.1 = INTEGER: 2 UCD-SNMP-MIB::extOutput.1 = STRING: CRITICAL: Unit: u0, Type: RAID-1, Status: RE BUILDING UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0 UCD-SNMP-MIB::extErrFixCmd.1 = STRING: UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 2073 UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 11781783 UCD-DLMOD-MIB::dlmodNextIndex.0 = INTEGER: 1
Comments
#1 Mark : Implementing Raid Monitoring
Very good instruction, it really helped me. I was looking a long time for an idea to implemente Raid Monitoring.