Qnap_volumes liefert falschen Wert

Irgendwie komme ich mit dem Check qnap_volumes nicht zurecht. Es sind 4 HDDs eingebaut in 2 Raid-Gruppen. Die 4 HDDs werden auch angezeigt. Allerdings nur 1 Raid-Gruppe und die ist nicht korrekt. Die 2. Platte hat den Status CRIT obwohl sie ready ist.
Kann mir da jemand weiter helfen um den Check korrekt zum laufen zu bewegen.

In dem Screenshot ist Volume 1 und 2 vorhanden - dies sind die beiden “Raid-Gruppen” auch wenn hier die Bezeichnung Volume besser passt.
Warum das zweite Volume den Status Crit hat kann man hier nicht erkennen - da wäre ein Blick ins Webfrontend der QNAP ganz gut.
Beide Volumes werden jeweils als Mirror aus zwei Platten gebildet soweit sollte das auch passen.

Hi
Danke für die Antwort.
Hier die Screenshots von der Qnap. Sehen eigentlich gut aus.


Daraus ergeben sich aber 2 Fragen. Ich habe mir den Sourcecode dieses Checks angesehen. Es wird auf ready geprüft ansonsten geht der Check auf crit. Der SNMP-Output sieht aber für alle HDDs gut bzw. gleich aus.

if volid == item:
if volstate == “Ready”:
return (0, "OK - " + infotext )
elif volstate == “Rebuilding…”:
return (1, "Warning - " + infotext )
else:
return (2, "Critical - " + infotext)
return (3, “UNKNOWN - Volume”)

Und die 2. Frage: Wenn die Volumes in den Services die RAID-Gruppen sind (OK soll so sein), warum wird dann auf beiden Volumes Drive 1 2 angezeigt? Das ist dann der verwirrende Eintrag.
Ich weiß etwas viel an Fragen und Verwirrung aber vielleicht kann man das jemand beantworten (oder hatte ein ähnliches Problem).
LG Robert

Einmal was vorweg - die QNAP Checks bis auf den QNAP Disk Check gehören nicht zu CMK direkt, dass ist ein installiertes MKP. Bitte mal schauen ob es da ein Update vielleicht gibt.

Warum dein zweites Volume Rot ist hab ich jetzt auch gefunden :slight_smile: der Check hat einfach einen Programmierfehler.

Bitte mal den Code hier prüfen

Original

def check_qnap_volumes(item, _no_params, info):
    for volid, volstate, fstype, arrayinfo in info:
        arrayinfo = arrayinfo.lstrip("[")
        arrayinfo = arrayinfo.rstrip("]")
        infotext = " Volume state is %s, Filesystem type is %s, %s" % (volstate, fstype, arrayinfo)
        if volid == item:
            if volstate == "Ready":
                return (0, "OK - " + infotext )
            elif volstate == "Rebuilding...":
                return (1, "Warning - " + infotext )
        else:
                return (2, "Critical - " + infotext)
    return (3, "UNKNOWN - Volume")

Änderung

def check_qnap_volumes(item, _no_params, info):
    for volid, volstate, fstype, arrayinfo in info:
        if volid == item:
            arrayinfo = arrayinfo.lstrip("[")
            arrayinfo = arrayinfo.rstrip("]")
            infotext = " Volume state is %s, Filesystem type is %s, %s" % (volstate, fstype, arrayinfo)
            if volstate == "Ready":
                return (0, "OK - " + infotext )
            elif volstate == "Rebuilding...":
                return (1, "Warning - " + infotext )
            else:
                return (2, "Critical - " + infotext)
    return (3, "UNKNOWN - Volume")

Damit sollte der Check wieder richtig funktionieren.

Alles was nach dem Filesystem Typ kommt, kommt direkt von der NAS als Beschreibung des Volumes.

Hallo
Ein riesengroßes Danke. Das wars! Beide Probleme sind gelöst. Check ist grün und zeigt auf die 2. RAID Gruppe an. Was ein if so alles bewirken kann.
image
Vieln Dank nochmal, LG Robi

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.