→ English version

Screenshot inodes full message

Die Überwachung von Volumes und Aggregaten auf ihre jeweiligen Füllstände (“wieviel Bytes haben noch Platz”) war natürlich eines der ersten Plugins, das ich geschrieben hatte. Es hört auf den Namen Usage und konnte von Anfang an neben dem in Bytes gemessenen Speicherplatz auch die noch verfügbaren (bzw. verbratenen) inodes überwachen.

Zur Überwachung der inodes stehen diese zwei Metriken zur Verfügung:

  • inodes_relative
  • inodes_absolute

Erstere, inodes_relative misst den Prozentsatz der verbrauchten inodes im Verhältnis zu der Anzahl an maximal verfügbaren inodes. Das heißt bei 100% wäre das Volume voll. Ein Check dafür würde so aussehen:

$ ./ check_netapp_pro.pl Usage -H filer -o volume -m inodes_relative -w 80 -c 95
NETAPP_PRO USAGE OK - 5 volumes checked
vol0: 19.6%
vol1: 17.8%
vol12: 17.8%
vol2: 17.8%
vol11: 17.0%
 | vol0=20%;80;95;0;100 vol1=18%;80;95;0;100 vol11=17%;80;95;0;100 vol12=18%;80;95;0;100 vol2=18%;80;95;0;100

Mit der Metrik inodes_absolute wird die absolute Anzahl der inodes erfasst und ab einer bestimmten Anzahl verbrauchter inodes alarmiert.

$ ./ check_netapp_pro.pl Usage -H filer -o volume -m inodes_absolute -w 10000 -c 15000
NETAPP_PRO USAGE CRITICAL - 5 volumes checked, 1 critical and 0 warning
vol0: 18480.0 (CRITICAL)
vol1: 101.0
vol12: 101.0
vol2: 101.0
vol11: 96.0
| vol0=18480;10000;15000;0;94151 vol1=101;10000;15000;0;566 vol11=96;10000;15000;0;566 vol12=101;10000;15000;0;566 vol2=101;10000;15000;0;566

Wie man bei diesem Beispiel sieht, ist ein absoluter Schwellwert nicht sinnvoll, wenn mehrere Volumes unterschiedlicher Größe geprüft werden. Daher gibt es auch die Möglichkeit trotz absoluter Metrik einen relativen Schwellwert zu setzen indem man eine Formel als Schwellwert angibt. Formeln werden immer mit einem Gleichheitszeichen (=) eingeleitet. Bitte beachten Sie dass dieses Gleichheitszeichen Teil des Wertes ist und somit zwischen Argument und Gleichheitszeichen ein Abstand sein sollte.

$ ./check_netapp_pro.pl Usage -H filer -o volume -m inodes_absolute -w =MAX/100*80 -c =MAX/100*95
NETAPP_PRO USAGE OK - 5 volumes checked
vol0: 18480.0
vol1: 101.0
vol12: 101.0
vol2: 101.0
vol11: 96.0
| vol0=18480;75320.8;89443.45;0;94151 vol1=101;452.8;537.7;0;566 vol11=96;452.8;537.7;0;566 vol12=101;452.8;537.7;0;566 vol2=101;452.8;537.7;0;566

Damit bekommen wir nun absolute Werte in den Performance-Daten und in der Ausgabe – können aber dennoch relative Schwellwerte setzen.

Über die Formeln in den Schwellwerten kann dann auch auf free-inodes (statt used-inodes) geprüft werden – wenn man also lieber die noch freien, statt der schon verbratenen inodes als Schwellwert angeben möchte.

$ ./check_netapp_pro.pl Usage -H filer -o volume -m inodes_absolute -w =MAX-20000 -c =MAX-15000 -I vol0
NETAPP_PRO USAGE OK - 1 volume checked
4 volumes skipped because of --include/--exclude settings.
vol0: 18480.0
| vol0=18480;74151;79151;0;94151

Hier wurde also am vol0 (und nur am vol0) überprüft, ob noch mindestens 20.000 inodes frei sind (CRITICAL wenn weniger als 15.000). Wie wir an den Perfdaten sehen können sind deutlich mehr als 20.000 frei: Bei 18.480 belegten und 94.151 total bleiben leicht genug frei, so dass der Schwellwert für eine Warnung nicht erreicht wurde.

In diesem Fall war es übrigens unabdingbar, dass der Filter auf das vol0 gesetzt wurde – die anderen Volumes sind schlicht zu klein und hätten insgesamt weniger als 20.000 inodes gehabt – der Schwellwert wäre dann negativ geworden.