Serie NSClient++ – Teil 6: Dateiattribute

Im sechsten Teil der NSClient++ Serie geht es um die Überwachung von verschiedenen Dateiattributen. Hierzu zählen unter anderem Dateigröße, Dateialter sowie Dateiversion.
Das NSClient++ Modul check_disk.dll verfügt über den Befehl CheckFiles, welcher es ermöglicht verschiedene Dateiattribute abzufragen. CheckFiles ist seit NSClient++ 0.3.9 verfügbar.
Dateigröße
Die Dateigröße von Dateien oder Dateien eines Verzeichnisses lässt sich ebenfalls über CheckFiles überwachen. Hierbei können bestimmte Dateien zur Überwachung angegeben werden, Dateien mit einer bestimmten Dateiendung bis hinzu Dateien die in einem Verzeichnis in mehreren Ordnertiefen liegen.
Eine Abfrage auf Dateien die größer als 1 MB im Verzeichnis c:/temp sind sieht wie Folgt aus:

$ ./check_nrpe -H 192.168.119.3 -c CheckFiles -a path=c:\\temp filter="size > 1M" "syntax=%filename%: %size%" MaxWarn=1 MaxCrit=2
vm.log: 2.67M, found files: 1 > warning|'found files'=1;1;2

MaxWarn und MaxCrit definiert den Warning- bzw. Critical-Schwellwert und mit syntax wird das Ausgabeformat vorgegeben.
Dateialter
Das Alter einer Datei oder mehrerer Dateien in einem Verzeichnis lässt sich mit definierten Schwellwerten wie folgt überwachen:

$ ./check_nrpe -H 192.168.119.3 -c CheckFiles -a path=c:\\temp  filter="written <-2d" "syntax=%filename%" MaxWarn=1 MaxCrit=2
old_nsc.ini, vm.log_20120521_133739.log, vm.log_20120521_133739.log, found files: 3 > critical|'found files'=3;1;2

Die Filtereinstellungen bewirken, dass Dateien, deren Änderungszeitpunkt älter als 2 Tage ist, herausgefiltert werden. Die Angabe von d steht in diesem Fall für Tage. Folgende Zeitdefinitionen gibt es für die time-expression:
s (second), m (minute), h (hour), d (day), w (week)
Dateiversion
Die Version einer Datei kann über den Filter version abgefragt werden:

$ ./check_nrpe -H 192.168.119.3 -c CheckFiles -a path=c:\\temp pattern=*.exe  "filter=version > 1" "syntax=%filename%: %version%" MaxCrit=1
explorer.exe: 6.1.7601.17567, found files: 1 > critical|'found files'=1;0;1

Der Filter für version arbeitet mit numeric-expression.
Die Schwellwerte können entweder über MaxWarn und MaxCrit definiert werden um so auf die Anzahl der Dateien zu schauen oder mit warn und crit definiert werden um so eine genauere Warning- bzw. Criticalschwelle zu definieren:

...warn=gt:1 crit==1...

Weitere Möglichkeiten des Commands CheckFiles sind im NSClient++ Wiki zu finden: http://nsclient.org/nscp/wiki/CheckFiles