summaryrefslogtreecommitdiffstats
path: root/roles/nagios_server/files/nagios/plugins/check_raid.py
blob: 48cddd93d4fbcbca7bda4a292777b5077dc7cd31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env python
#
# very simple python script to parse out /proc/mdstat
# and give results for nagios to monitor
#

import sys
import string

devices = []

try:
    mdstat = string.split(open('/proc/mdstat').read(), '\n')
except IOError:
    # seems we have no software raid on this machines
    sys.exit(0)

error = ""
i = 0
for line in mdstat:
    if line[0:2] == 'md':
        device = string.split(line)[0]
        devices.append(device)
        status = string.split(mdstat[i+1])[3]
        if string.count(status, "_"):
            # see if we can figure out what's going on
            err = string.split(mdstat[i+2])
            msg = "device=%s status=%s" % (device, status)
            if len(err) > 0:
                msg = msg + " rebuild=%s" % err[0]

            if not error:
                error = msg
            else:
                error = error + ", " + msg
    i = i + 1

if not error:
    print "DEVICES %s OK" % " ".join(devices)
    sys.exit(0)

else:
    print error
    sys.exit(2)