12.07.2011, 04:16 UTC+2

Sie sind nicht angemeldet.

QNAP NAS Check

Mad-Eye

Anfänger

Beiträge: 5

Anzahl Nagios-Server: 3

Nagios-Version(en): Icinga 1.0

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 70

Anzahl Services: 600+

Betriebssystem(e): CentOS, Server 2003+2008, AIX

Plugin-Version(en): 1.4.14

NDO-Version: 3

1

02.02.2011, 17:57

QNAP NAS Check

Hallo Zusammen,

ich möchte euch heute mein erstes Plugin vorstellen:

check_qnap kann über SNMP CPU, Festplattenbelegung, Temperatur und Festplattenstatus abfragen.

Ich hoffe einige von euch können das gebrauchen und ich bin schon mal auf Feedback gespannt.

Gruß
Mad-Eye

Quellcode

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/bash

if [ ! "$#" == "2" ]; then
        echo -e "\nWarning: Wrong command line arguments. \nUsage: ./check_qnap   \n \nParts are:  cpu, diskusage, temp and hdstatus \n" && exit "3"
fi
strHostname=$1
strpart=$2

# DISKUSAGE ---------------------------------------------------------------------------------------------------------------------------------------
if [ "$strpart" == "diskusage" ]; then
        disk=$(snmpget -v1 -c public -mALL gronnas 1.3.6.1.4.1.24681.1.2.17.1.4.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
        used=$(snmpget -v1 -c public -mALL gronnas 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
        disk=$(echo "scale=0; $disk*100" | bc -l  |  sed 's/\(.*\).../\1/')
        used=$(echo "scale=0; $used*100" | bc -l  |  sed 's/\(.*\).../\1/')
        let "PERC=(100-($used*100)/$disk)"
        strOutput="Belegt=$[PERC]%|'Belegt'=$[PERC]%;80;90;0;100"
        if [ $PERC -ge "90" ]; then
        echo "CRITICAL: "$strOutput
        exit 2
        fi
        if [ $PERC -ge "80" ]; then
        echo "WARNING: "$strOutput
        exit 1
        fi
        echo "OK: "$strOutput
        exit 0

# CPU ----------------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "cpu" ]; then
        CPU=$(snmpget -v1 -c public -mALL gronnas 1.3.6.1.4.1.24681.1.2.1.0 | awk '{print $4}' | sed 's/.\(.*\)../\1/')
        strOutput="CPU=$[CPU]%|'CPU'=$[CPU]%;80;90;0;100"
        if [ $CPU -ge "90" ]; then
        echo "CRITICAL: "$strOutput
        exit 2
        fi
        if [ $CPU -ge "80" ]; then
        echo "WARNING: "$strOutput
        exit 1
        fi
        echo "OK: "$strOutput
        exit 0

# Temperature---------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "temp" ]; then
        TEMP0=$(snmpget -v1 -c public -mALL gronnas 1.3.6.1.4.1.24681.1.2.11.1.3.1 | awk '{print $4}' | cut -c2-3)
        TEMP1=$(snmpget -v1 -c public -mALL gronnas 1.3.6.1.4.1.24681.1.2.11.1.3.1 | awk '{print $4}' | cut -c2-3)
        if [ "$TEMP0" -ge "42" -o "$TEMP1" -ge "42" ]; then
                echo Temperatur zu Hoch!
                exit 2
        else
                let "TEMP=($TEMP0+$TEMP1)/2"
                strOutput="Temp=$[TEMP]C|'Temp C'=$[TEMP]C;40;42"

                if [ $TEMP -ge "42" ]; then
                        echo "CRITICAL: "$strOutput
                        exit 2
                fi
                if [ $TEMP -ge "40" ]; then
                        echo "WARNING: "$strOutput
                        exit 1
                fi
                echo "OK: "$strOutput
                exit 0
        fi
# HD Status----------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "hdstatus" ]; then
        HD0=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.1 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
        HD1=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.2 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
        if [ "$HD0" == "GOOD" -a "$HD1" == "GOOD" ]; then
                echo OK
                exit 0
        else
                echo ERROR
                exit 2
        fi
#----------------------------------------------------------------------------------------------------------------------------------------------------
else
        echo -e "\nUnknown Part!" && exit "3"
fi
exit 0

Martin.N

Anfänger

Beiträge: 10

Geschlecht: Männlich

Beruf: IT-Betreiber

Anzahl Nagios-Server: 2

Nagios-Version(en): 3.2.0

Verteiltes Monitoring: Nein

Redundantes Monitoring: Ja

Anzahl-Hosts: 210

Anzahl Services: ~1500

Betriebssystem(e): Windows, Linux, ESX, Data ONTAP

Plugin-Version(en): 1.4.14

NDO-Version: 2

2

07.02.2011, 15:20

Hi,
funktioniert, wenn man gronnas durch $strHostname ersetzt ;-)
--
Gruß
Martin

Simon L.

Schüler

Beiträge: 66

Geburtstag: 16.10.1986 (24)

Geschlecht: Männlich

Wohnort: Münster

Beruf: Informatikkaufmann

Anzahl Nagios-Server: 2

Hobbys: Fussball

Nagios-Version(en): 3.2.0

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 60

Anzahl Services: 450

Betriebssystem(e): Debian

Plugin-Version(en): 1.4

Sonstige Addon's: NRPE 2.12

3

17.06.2011, 12:04

Hallo,

vielen Dank für das Plugins, funktioniert tadelos.

Ich habe noch zwei weitere Plugins gefunden, die mehr Temperaturen und die Speicherauslastun abfragen. Ich habe versucht das Skript selber anzupassen, aber das war leider nicht von Erfolg gekrönt :)Wenn du Zeit hast, kannst du das ja in das Skript einbauen, ich gebe dir mal die OIDs.

OID_CPUTEMP="1.3.6.1.4.1.24681.1.2.5"
OID_SYSTEMTEMP=".1.3.6.1.4.1.24681.1.2.6"
OID_HDTEMP=".1.3.6.1.4.1.24681.1.2.11.1.x" x für die Anzahl der Festplatten

Arbeitsspeicher:
OID_TOTALMEMORY=".1.3.6.1.4.1.24681.1.2.2"
OID_FREEMEMORY=".1.3.6.1.4.1.24681.1.2.3"

Danke!

nour

Anfänger

Beiträge: 12

Anzahl Nagios-Server: 1

Nagios-Version(en): 3.0.6

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 160

Anzahl Services: 660

Betriebssystem(e): ubuntu

Plugin-Version(en): 1.6=4

NDO-Version: 1

4

28.06.2011, 14:08

script work expect one problem

if total disk TB (terbytes)

and remaining free space is GB



you get then garbige value !!





any indea how to solve this

Ruddimaster

Schüler

Beiträge: 63

Geschlecht: Männlich

Wohnort: Aachen

Beruf: Monitoring-Fritze

Anzahl Nagios-Server: 1

Nagios-Version(en): 0.0

Icinga-Version(en): 1.4.2

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~150

Anzahl Services: ~1500

Betriebssystem(e): 10.04.2 Server LTS

Plugin-Version(en): 1.4.13

IDO-Version: 1.4.2

Sonstige Addon's: PNP 0.6.6

5

06.07.2011, 08:28

Klasse funktioniert...

Ruddimaster

Schüler

Beiträge: 63

Geschlecht: Männlich

Wohnort: Aachen

Beruf: Monitoring-Fritze

Anzahl Nagios-Server: 1

Nagios-Version(en): 0.0

Icinga-Version(en): 1.4.2

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~150

Anzahl Services: ~1500

Betriebssystem(e): 10.04.2 Server LTS

Plugin-Version(en): 1.4.13

IDO-Version: 1.4.2

Sonstige Addon's: PNP 0.6.6

6

06.07.2011, 09:20

... noch was:
HD Status ist nicht so ganz optimal... wenn ich 4 Platten habe, werden die letzten zwei nicht überprüft...

Bei 3 Platten sieht das so aus:

snmpwalk -v 2c 1.2.3.4 -c public 1.3.6.1.4.1.24681.1.2.11.1.7
SNMPv2-SMI::enterprises.24681.1.2.11.1.7.1 = STRING: "GOOD"
SNMPv2-SMI::enterprises.24681.1.2.11.1.7.2 = STRING: "GOOD"
SNMPv2-SMI::enterprises.24681.1.2.11.1.7.3 = STRING: "GOOD"
SNMPv2-SMI::enterprises.24681.1.2.11.1.7.4 = STRING: "--"


Ich hab das mal für angepasst.. Ich bin nicht unbedingt ein Programmierer....

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# HD Status----------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "hdstatus" ]; then
        HD0=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.1 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
        HD1=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.2 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
        HD2=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.3 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
        HD3=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.4 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')

        if      [ \( "$HD0" == "--"  -o "$HD0" == "GOOD" \) -a  \( "$HD1" == "--"  -o "$HD1" == "GOOD" \) -a \
                \( "$HD2" == "--"  -o "$HD2" == "GOOD" \) -a  \( "$HD3" == "--"  -o "$HD3" == "GOOD" \) ]; then

                echo OK
                exit 0
        else
                echo Drive ERROR
                echo HD1 $HD0
                echo HD2 $HD1
                echo HD3 $HD2
                echo HD4 $HD3
                exit 2
        fi
#----------------------------------------------------------------------------------------------------------------------------------------------------


Jetzt fehlt mir irgendwie noch, daß ich das Script universell einsetzten kann: z.B. sowohl für eine 8Bay, als auch für eine 4Bay...
Bei einer 4Bay gibt es gibt es halt die entsprechende OID's nicht (...5, ....6, usw.)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ruddimaster« (06.07.2011, 10:40)


nour

Anfänger

Beiträge: 12

Anzahl Nagios-Server: 1

Nagios-Version(en): 3.0.6

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 160

Anzahl Services: 660

Betriebssystem(e): ubuntu

Plugin-Version(en): 1.6=4

NDO-Version: 1

7

06.07.2011, 15:40

what am i doing wrong !!

take look at this :

!!!



# snmpget -v1 -c snmp4nagios -mALL qnapnas01 1.3.6.1.4.1.24681.1.2.17.1.5.1
SNMPv2-SMI::enterprises.24681.1.2.17.1.5.1 = STRING: "242.87 GB"
# snmpget -v1 -c snmp4nagios -mALL qnapnas01 1.3.6.1.4.1.24681.1.2.17.1.4.1
SNMPv2-SMI::enterprises.24681.1.2.17.1.4.1 = STRING: "5.37 TB"




# ./check_qnap qnapnas01 diskusage
OK: DiskUsed=-4422%|'DiskUsed$'=-4422%;80;90;0;100




====================

# DISKUSAGE ---------------------------------------------------------------------------------------------------------------------------------------
if [ "$strpart" == "diskusage" ]; then
disk=$(snmpget -v1 -c snmp4nagios -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.4.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
used=$(snmpget -v1 -c snmp4nagios -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
disk=$(echo "scale=0; $disk*100" | bc -l | sed 's/\(.*\).../\1/')
used=$(echo "scale=0; $used*100" | bc -l | sed 's/\(.*\).../\1/')
let "PERC=(100-($used*100)/$disk)"
strOutput="DiskUsed=$[PERC]%|'DiskUsed$'=$[PERC]%;80;90;0;100"
if [ $PERC -ge "90" ]; then
echo "CRITICAL: "$strOutput
exit 2
fi
if [ $PERC -ge "80" ]; then
echo "WARNING: "$strOutput
exit 1
fi
echo "OK: "$strOutput
exit 0

# ----------------------------------------------------------------------------------------------------------------------------------------------

Ruddimaster

Schüler

Beiträge: 63

Geschlecht: Männlich

Wohnort: Aachen

Beruf: Monitoring-Fritze

Anzahl Nagios-Server: 1

Nagios-Version(en): 0.0

Icinga-Version(en): 1.4.2

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~150

Anzahl Services: ~1500

Betriebssystem(e): 10.04.2 Server LTS

Plugin-Version(en): 1.4.13

IDO-Version: 1.4.2

Sonstige Addon's: PNP 0.6.6

8

06.07.2011, 19:15

so... nun eine weitere Erweiterung:

Überprüfung des RAID-Status

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Volume Status----------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "volstatus" ]; then
        Vol_Status=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.6.1 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')

        if [ "$Vol_Status" == "Ready" ]; then
                echo OK: $Vol_Status
                exit 0

        elif [ "$Vol_Status" == "Rebuilding..." ]; then
                echo "Warning: "$Vol_Status
                exit 1

        else
                echo "CRITICAL: "$Vol_Status
                exit 2
        fi
#---------------------------------------------------


Hier haben ja schon paar Leute bereits mit dran mitgearbeitet... kann man das jetzt einfach unter die GPL stellen?

Ruddimaster

Schüler

Beiträge: 63

Geschlecht: Männlich

Wohnort: Aachen

Beruf: Monitoring-Fritze

Anzahl Nagios-Server: 1

Nagios-Version(en): 0.0

Icinga-Version(en): 1.4.2

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~150

Anzahl Services: ~1500

Betriebssystem(e): 10.04.2 Server LTS

Plugin-Version(en): 1.4.13

IDO-Version: 1.4.2

Sonstige Addon's: PNP 0.6.6

9

06.07.2011, 19:26

Hi nour,

Zitat von »nour«

take look at this :

!!!
your script does not work correctly...

/usr/local/icinga/libexec$ ./check_qnap 1.2.3.4 diskusage
Timeout: No Response from 1.2.3.4
Timeout: No Response from 1.2.3.4
(standard_in) 1: syntax error
(standard_in) 1: syntax error
./check_qnap: Zeile 15: let: PERC=(100-(*100)/): Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \"*100)/)\").
./check_qnap: Zeile 17: [: -ge: Einstelliger (unärer) Operator erwartet.
./check_qnap: Zeile 21: [: -ge: Einstelliger (unärer) Operator erwartet.
OK: DiskUsed=0%|'DiskUsed$'=0%;80;90;0;100

nour

Anfänger

Beiträge: 12

Anzahl Nagios-Server: 1

Nagios-Version(en): 3.0.6

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 160

Anzahl Services: 660

Betriebssystem(e): ubuntu

Plugin-Version(en): 1.6=4

NDO-Version: 1

10

07.07.2011, 10:29

there error that you got means that snmp comunity is not correct the hostname is also wrong !



the problem with script is :



you have NAS that has storage of 2 TB and used space is 1 TB there no problem , but when used space more 1 TB let say 1.8 TB then free space will 200 MB and there the problem the script has fisrt to detect if it GB it has first to be converted to TB



I used the orginal script tha mentioned above , I only had to change snmp cmunity and the hostname !







# DISKUSAGE ---------------------------------------------------------------------------------------------------------------------------------------
if [ "$strpart" == "diskusage" ]; then
disk=$(snmpget -v1 -c public -mALL gronnas 1.3.6.1.4.1.24681.1.2.17.1.4.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
used=$(snmpget -v1 -c public -mALL gronnas 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
disk=$(echo "scale=0; $disk*100" | bc -l | sed 's/\(.*\).../\1/')
used=$(echo "scale=0; $used*100" | bc -l | sed 's/\(.*\).../\1/')
let "PERC=(100-($used*100)/$disk)"
strOutput="Belegt=$[PERC]%|'Belegt'=$[PERC]%;80;90;0;100"
if [ $PERC -ge "90" ]; then
echo "CRITICAL: "$strOutput
exit 2
fi
if [ $PERC -ge "80" ]; then
echo "WARNING: "$strOutput
exit 1
fi
echo "OK: "$strOutput
exit 0



================================

regards

nour

Anfänger

Beiträge: 12

Anzahl Nagios-Server: 1

Nagios-Version(en): 3.0.6

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 160

Anzahl Services: 660

Betriebssystem(e): ubuntu

Plugin-Version(en): 1.6=4

NDO-Version: 1

11

07.07.2011, 16:59

problem solved





sheers ,

Ruddimaster

Schüler

Beiträge: 63

Geschlecht: Männlich

Wohnort: Aachen

Beruf: Monitoring-Fritze

Anzahl Nagios-Server: 1

Nagios-Version(en): 0.0

Icinga-Version(en): 1.4.2

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~150

Anzahl Services: ~1500

Betriebssystem(e): 10.04.2 Server LTS

Plugin-Version(en): 1.4.13

IDO-Version: 1.4.2

Sonstige Addon's: PNP 0.6.6

12

07.07.2011, 20:25

and how?

can you add this to the existing script?

chexma

Schüler

Beiträge: 50

Geburtstag: 15.11.1980 (30)

Geschlecht: Männlich

Wohnort: NRW

Beruf: IT-ler

Anzahl Nagios-Server: 1

Nagios-Version(en):

Icinga-Version(en): Icinga 1.4.1

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 80

Anzahl Services: 400

Betriebssystem(e): openSuSE 11.1

Plugin-Version(en): 1.4.14

NagVis-Version: 1.5.9

IDO-Version: ido 1.4.1

Perfparse-Version: --

Sonstige Addon's: check_mk 1.1.11i1, icinga-web,dokuwiki,check_multi

13

08.07.2011, 07:53

Hi @ll,

what do you think of uploading the final script to monitoringexchange.org ?
Might, in my opinion, be a better way to distribute the check and participate to the community.

chexma

nour

Anfänger

Beiträge: 12

Anzahl Nagios-Server: 1

Nagios-Version(en): 3.0.6

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 160

Anzahl Services: 660

Betriebssystem(e): ubuntu

Plugin-Version(en): 1.6=4

NDO-Version: 1

14

08.07.2011, 13:42

dear All ,



Please find the script here:

the line that I have added is BGtest , there search for GB if found then used disk should be devided by 1000 (exampel if value is 242 GB then it should be 0.242 TB !)



Please not that can be done same if disk space drops from GB to MB



ps= freedisk is only to let me see how mush free disk is left .



regards,

Nour

=====================================================

# DISKUSAGE ---------------------------------------------------------------------------------------------------------------------------------------
if [ "$strpart" == "diskusage" ]; then
disk=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.4.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
used=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
freedisk=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4, $5}' | sed 's/.\(.*\)/\1/')
GBtest=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $5}' | sed 's/.*\(GB\).*/\1/')
disk=$(echo "scale=0; $disk*100" | bc -l | sed 's/\(.*\).../\1/')
if [ "$GBtest" == "GB" ]; then

used=$(echo "scale=0; $used*100/1000" | bc -l | sed 's/\(.*\).../\1/')
else
used=$(echo "scale=0; $used*100" | bc -l | sed 's/\(.*\).../\1/')
fi

let "PERC=(100-($used*100)/$disk)"
strOutput="Used=$[PERC]%|'Used'=$[PERC]%|'free Disk'=$freedisk;80;90;0;100"
if [ $PERC -ge "97" ]; then
echo "CRITICAL: "$strOutput
exit 2
fi
if [ $PERC -ge "80" ]; then
echo "WARNING: "$strOutput
exit 1
fi
echo "OK: "$strOutput
exit 0

=================================================================================================================

Pablo78

Schüler

Beiträge: 143

Geburtstag: 09.04.1978 (33)

Geschlecht: Männlich

Wohnort: Detmold

Beruf: FiSi - Systemadmin aus Leidenschaft

Anzahl Nagios-Server: 1

Hobbys: singen, klatschen und mit Fingerfarben malen

Nagios-Version(en):

Icinga-Version(en): 1.4

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 160

Anzahl Services: 600

Betriebssystem(e): SLES 11 SP1

Plugin-Version(en): 1.4.15

NagVis-Version: 1.5.8

IDO-Version: 1.3

Sonstige Addon's: PNP-0.6.12, MKLivestatus 1.1.8

15

08.07.2011, 15:37

Anpassung

Der von meinem Vorredner erstellte Teil "Diskusage" ist meines erachtens nicht Nagios-konform da die Performance Datenausgabe nicht passend ist. Ich habe das mal versucht anzupassen und mit pnp4nagios erfolgreich getestet.
Desweiteren wäre vielleicht ein Einbau von auszulesenen Variablen (bzw. Macros) wie -C snmpCommunity, -w Warnung oder auch -c Critical für das Plugin sehr vorteilhaft. Dies würde das anpassen innerhalb des Plugins wegfallen lassen da hier auch immer die Warn- (Critical)werte mit der Ausgabe zu pflegen sind. Ich bin aber selber kein Programmierer sndern Anwender und besitze leider nicht das nötige Wissen um dies einzupflegen.
Ansonsten ist es ein Super-Plugin und ich setze es jetzt auch für unsere "eine" NAS Box ein.

Quellcode

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
# DISKUSAGE ---------------------------------------------------------------------------------------------------------------------------------------
if [ "$strpart" == "diskusage" ]; then
disk=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.4.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
used=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
freedisk=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4, $5}' | sed 's/.\(.*\)/\1/')
GBtest=$(snmpget -v1 -c public -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $5}' | sed 's/.*\(GB\).*/\1/')
disk=$(echo "scale=0; $disk*100" | bc -l | sed 's/\(.*\).../\1/')
if [ "$GBtest" == "GB" ]; then

used=$(echo "scale=0; $used*100/1000" | bc -l | sed 's/\(.*\).../\1/')
else
used=$(echo "scale=0; $used*100" | bc -l | sed 's/\(.*\).../\1/')
fi

let "PERC=(100-($used*100)/$disk)"
strOutput="Used=$[PERC]% 'free Disk'=$freedisk|'Used'=$[PERC]%;85;95;0;100"
if [ $PERC -ge "95" ]; then
echo "CRITICAL: "$strOutput
exit 2
fi
if [ $PERC -ge "85" ]; then
echo "WARNING: "$strOutput
exit 1
fi
echo "OK: "$strOutput
exit 0

Ruddimaster

Schüler

Beiträge: 63

Geschlecht: Männlich

Wohnort: Aachen

Beruf: Monitoring-Fritze

Anzahl Nagios-Server: 1

Nagios-Version(en): 0.0

Icinga-Version(en): 1.4.2

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~150

Anzahl Services: ~1500

Betriebssystem(e): 10.04.2 Server LTS

Plugin-Version(en): 1.4.13

IDO-Version: 1.4.2

Sonstige Addon's: PNP 0.6.6

16

08.07.2011, 15:57

Klasse...

da ich auch "nur" Admin und nicht unbedingt Programmierer bin, tue ich mich da auch ein bischen schwer...;-)

Ich hänge gerade daran die einzelnen Abfragen zu einer zusammen zu basteln... -> Wenn irgendwas kritisch ist, wird dieses ausgegeben...
Performancedaten wären auch nicht schlecht.

Ich hab noch eine OID gefunden, die die max. Anzahl der Platten angibt. Somit kann ich mit den gleichen Script auch eine 8Bay abfragen.
Auch wäre es dann möglich die Idee von Simon L. aufzugreifen, die Temperatur von den einzelnen Platten abzufragen möglich...

bin mal gespannt.

chexma

Schüler

Beiträge: 50

Geburtstag: 15.11.1980 (30)

Geschlecht: Männlich

Wohnort: NRW

Beruf: IT-ler

Anzahl Nagios-Server: 1

Nagios-Version(en):

Icinga-Version(en): Icinga 1.4.1

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 80

Anzahl Services: 400

Betriebssystem(e): openSuSE 11.1

Plugin-Version(en): 1.4.14

NagVis-Version: 1.5.9

IDO-Version: ido 1.4.1

Perfparse-Version: --

Sonstige Addon's: check_mk 1.1.11i1, icinga-web,dokuwiki,check_multi

17

10.07.2011, 09:02

Hallo zusammen,

bin gerade dabei, die Qnap checks für check_mk zu schreiben.
Dabei ist mir aufgefallen, das die Temperaturwerte in Hexadecimal zurückkommen.
Ist das bei euch auch der Fall ?
Was kommt bei euch bei folgendem snmpget für ein Ergebnis ?
snmpget -v1 -c public 1.3.6.1.4.1.24681.1.2.11.1.3.1

Bei mir :

Hex-STRING: 33 32 C2 B0 43 2F 38 39 C2 B0 46

Danke,

chexma

little

Profi

Beiträge: 760

Geburtstag: 26.11.1975 (35)

Geschlecht: Männlich

Wohnort: Mainburg

Beruf: PDM-Consultant, IT-Specialist

Anzahl Nagios-Server: 3

Nagios-Version(en): 3.2.0/3.2.1/3.2.2

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~200

Anzahl Services: ~1800

Betriebssystem(e): Linux, AIX, HP-UX, Windows

Plugin-Version(en): 1.4.14/1.4.15

NagVis-Version: 1.4-nightly/1.5-nightly

NDO-Version: 1.4b9

Sonstige Addon's: NRPE, PNP,NSClient++,DokuWiki,NagiosBPV, MKLivestatus, Thruk

18

Gestern, 08:08

Also ich bekomme folgendes zurück:

Source code

1
2
3
4
5
snmpget -v1 -c public #### 1.3.6.1.4.1.24681.1.2.11.1.3.1
iso.3.6.1.4.1.24681.1.2.11.1.3.1 = STRING: "33 C/91 F"

snmpget -v1 -c public #### 1.3.6.1.4.1.24681.1.2.11.1.3.1
iso.3.6.1.4.1.24681.1.2.11.1.3.1 = STRING: "34 C/93 F"


Stefan

chexma

Schüler

Beiträge: 50

Geburtstag: 15.11.1980 (30)

Geschlecht: Männlich

Wohnort: NRW

Beruf: IT-ler

Anzahl Nagios-Server: 1

Nagios-Version(en):

Icinga-Version(en): Icinga 1.4.1

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 80

Anzahl Services: 400

Betriebssystem(e): openSuSE 11.1

Plugin-Version(en): 1.4.14

NagVis-Version: 1.5.9

IDO-Version: ido 1.4.1

Perfparse-Version: --

Sonstige Addon's: check_mk 1.1.11i1, icinga-web,dokuwiki,check_multi

19

Gestern, 10:03

Hallo little,

danke für die Info.
Lustigerweise bekomme ich via snmpget den Hexcode zurück aber wenn ich die gleiche OID via Copy and Paste im iReasoning MIB Browser aufrufe,
bekomme ich die gleiche Ausgabe wie du : "33 C/91 F"
Woran könnte das denn liegen ?

Die check_mk checks schreiten voran, Disk, Fans und Infos habe ich schon, fehlen nur noch Volumes und Temperatur ...
Wer interesse hat kann die gerne testen, einfach melden.
Sobald ich komplett damit durch bin, werde ich die auf check_mk exchange stellen.

Gruß

chexma

bern

Profi

Beiträge: 1 534

Anzahl Nagios-Server: 2-5

Nagios-Version(en): 1-3

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 80-200

Anzahl Services: 1400-2000

Betriebssystem(e): Linux

Plugin-Version(en): Whatever I can download, patch, or cobble together myself :-)

Sonstige Addon's: n2rrd, PNP, livestatus

20

Gestern, 12:43

Zitat von »chexma«

Woran könnte das denn liegen ?
Da nehmen wir uns doch 'mal das Hex-Resultat her:

Zitat von »chexma«

Hex-STRING: 33 32 C2 B0 43 2F 38 39 C2 B0 46
Übersetzen das nach ASCII-Tabelle mit ISO-Latin-1 Sonderzeichen:

Quellcode

1
3 2 Â ° C / 8 9 Â ° F


und lassen das nochmal von UTF-8 nach ISO-8859-1 umcodieren:

Quellcode

1
2
$ echo "32°C/89°F" | iconv -f utf-8 -t iso-8859-1
32°C/89°F


Ich würde sagen, da ist irgendwo im Dunstkreis Deines snmpget ein Korken in den eingestellten Charsets/Codierungen.

Ähnliche Themen