How to monitor windows software raid
Hari Sekhon
hpsekhon at googlemail.com
Tue Jun 17 17:16:36 CEST 2008
No, don't try that. Python is a great language, I code in it myself, but...
1. It is not portable across windows systems without installing add-ons
2. It checks *LINUX* software raid, not windows software raid.
-h
Marcos Marinho wrote:
> Try this : It is a python script
> ============================================================
> #!/usr/bin/python
>
> # check_swraid - plugin for nagios to check the status of linux swraid
> devices
> #
> # This program is free software; you can redistribute it and/or modify
> # it under the terms of the GNU General Public License as published by
> # the Free Software Foundation; either version 2 of the License, or
> # (at your option) any later version.
> #
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> # GNU Library General Public License for more details.
> #
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
> 02111-1307, USA.
> #
> # Copyright 2004 Duke University
> # Written by Sean Dilda <sean at duke.edu>
>
> # Version: 0.3
> # patched with the rouilj's patch (03.02.2006) by Virer (28.07.2006)
>
> import os
> import sys
> import string
>
> mdstat = '/proc/mdstat'
>
> mdFile = open(mdstat).readlines()
>
> # two cases: two starting lines or just one starting line.
> # Remove the first and lasts lines as we don't need them
> mdFile = mdFile[1:-1]
> if (len(mdFile) % 3) != 0:
> mdFile = mdFile[1:]
>
>
> if (len(mdFile) % 3) != 0:
> # must have two starting lines
> print 'Error with mdstat file'
> sys.exit(3)
>
> if len(mdFile) == 0:
> print 'Error no md devices configured'
> sys.exit(3)
>
> mdData = []
> while len(mdFile) > 0:
> mdData.append((mdFile[0],mdFile[1]))
> mdFile = mdFile[3:]
>
> overallStatus = 0
> errorMsg = ''
> devices = ''
> for tup in mdData:
> device, colon, status, type, drives = string.split(tup[0], None, 4)
> drives = string.split(drives)
> values = string.split(tup[1])[-2]
> values = values[1:-1]
> normal, current = string.split(values, '/')
> normal = int(normal)
> current = int(current)
>
> devices = devices + " " + device
>
> # Status of 0 == Ok, 1 == Warning, 2 == Critical
> status = 0
> failed = 0
> degraded = 0
> msg = ''
>
> failed = []
> for drive in drives:
> if drive[-3:] == '(F)':
> failed.append(drive[:string.index(drive, '[')])
> status = 1
> failed = ' (' + string.join(failed, ', ') + ').'
>
>
> if status == 'inactive':
> status = 2
> msg = device + ' is inactive.'
> if type == 'raid5':
> if current < (normal -1):
> msg = device + ' failed' + failed
> status = 2
> elif current < normal:
> msg = device + ' degraded' + failed
> status = 1
> else:
> if current < normal:
> msg = device + ' failed' + failed
> status = 2
>
> if len(msg) > 0:
> if len(errorMsg) > 0:
> errorMsg = errorMsg + '; '
> errorMsg = errorMsg + msg
> overallStatus = max(overallStatus, status)
>
> if overallStatus == 0:
> print 'All md devices (' + devices + ' ) Ok.'
> sys.exit(0)
> else:
> print errorMsg
> sys.exit(overallStatus)
> #EOF
> ============================================================
>
>
>
>
> Rene Fertig escreveu:
>> Hello Hari.
>>
>>
>>> Have you checked NagiosExchange.org? I didn't see anything but then I
>>> didn't look too closely. Otherwise you could just write one. VBS is an
>>> easy language and universal enough for this. I'd write this in fact, if
>>> I had any servers poor enough to have windows software raid...
>>>
>>
>> Of cause I've checked NagiosExchange, but there are only plugins for hardware
>> raids.
>>
>> I've found a VB script which uses DISKPART
>> (http://www.anchor.com.au/hosting/dedicated/monitoring_windows_software_raid).
>> Unfortunately DISKPART didn't work on Windows 2000 (only Win 2000 Pro, Win
>> 2000 server, Win 2003 ...)
>>
>> But I've got a list of event IDs so I can monitor the event log and do passive
>> checks - more than nothing...
>>
>> Greetings,
>>
>> Rene
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue.
::: Messages without supporting info will risk being sent to /dev/null
More information about the Users
mailing list