Zur Überwachung von VNXe Storage Systemen (NAS) innerhalb von Check_MK gab es keine ordentlichen Funktionen.
Im Netz findet man auch nicht viel zu diesem Thema.
Allerdings bieten die VNXe Systeme eine Remote Möglichkeit zur Konfiguration via Shell, die sog. Unisphere CLI; kurz: UEMCLI.
Diese wird für die verschiedensten Systeme angeboten, allerdings für Linux Systeme nur in Form ein .rpm Datei (Red Hat Package).
Auf Debian Systemen steht man jetzt etwas blöd da, also konvertierte ich das Paket mit alien in das .deb Format.

faviconunispherecli-linux-64-x86-en-us_3.0.0.1.16-2_amd64.deb

Nach der Installation finden sich die Binaries der uemcli im Pfad /opt/emc/uemcli/bin.

vnxe_check

Das Skript, welches wir in Check_MK aufrufen werden, müssen wir nun in einen für den Check_MK user verfügbaren Pfad packen (hier: /opt/omd/sites/monitor/local/share/check_mk) und via chmod -x ausführbar machen. Die Rechte müssen evtl. auch angepasst werden.
Im Anschluss können wir einen Legacy oder Classical Check in Check_MK anlegen, welcher das Programm ausführt.
Davor allerdings noch die Security Level der UEMCLI via /opt/emc/uemcli/bin/setlevel.sh -l auf low setzen, damit die Zertifikate nicht mehr manuell akzeptiert werden müssen.

Nun können wir das Programm mit folgendem Befehl ausführen: /opt/omd/sites/monitor/local/share/check_mk/vnxe_check <HOST> <USER> <PW> <PATH> <COL> <OPTIONAL REGEX>
Es gibt die entsprechenden Codes zurück. Die Fehlercodes von Degraded/Minor failure/Major failure werden als CRITICAL angezeigt (Returnvalue 1), bei einem Programmfehler oder leerer Response (timeout) wird UNKNOWN zurückgegeben (Returnvalue 2), bei einem Fehlercode OK_BUT wird WARNING angezeigt (Returnvalue 2)

First parameter: IP/Domainname
Second parameter: username and domain in the following structure: <DOMAIN>/<USER>
Third parameter: password
Fourth parameter: directory or file which is queried (see manual inside the bash file)
Fifth parameter: column index of health status (see manual inside the bash file)
Sixth parameter is optional: grep filter which looks for the beginning of a line and returns the whole line  | grep \“.*$6.*\“

Der letzte Parameter wird von mir verwendet, um einzelne Geräte innerhalb eines Arrays anzusprechen, bspw. eine einzelne Platte im Disk Array