Vor kurzem erreichte mich ein E-Mail eines sehr engagierten Kunden mit der Bitte mir doch einen Check zu überlegen, mit dem man überprüfen kann, ob ein Server von einem Vserver aus per Jumboframes gepingt werden kann.  Freundlicher Weise hat er mir auch gleich ein CLI-Kommando mitgesendet, das er für den manuellen Test verwendet:


network ping ‑vserver nfs ‑destination esx1 ‑disallow‑fragmentation true ‑packet‑size 9000

Das brachte mich zum Nachdenken, ob man nicht einen Check entwickeln sollte, der auch andere einfache Überprüfungen durchführen kann. Das vorläufige Ergebnis ist check_netapp_anycli.pl, welches  ein beliebiges CLI Kommando an den Filer sendet, die  CLI-Ausgabe zurückmeldet und mit einem Sollwert vergleicht. Stimmen CLI-Output und Sollwert überein, wird ein ebenfalls definierbarer Nagios-Exit ausgelöst.

Das konkrete Beispiel mit dem Jumboframe-Ping würde mit check_netapp_anycli also so konfiguriert werden:


./check_netapp_anycli.pl ‑H myfiler ‑‑in=network ping" ‑‑in="‑vserver nfs ‑destination esx1 ‑disallow-fragmentation true ‑packet-size 9000" ‑‑out="alive"

Die Optionen --like_result=0 --unlike_result=2 haben wir weggelassen, da OK der Standardwert für --like_result und CRITICAL der Standardwert für --unlike_result ist.

Da --out einen regulären Ausdruck erwartet, könnte ein  Version-Check der ein  WARNING auslöst für jeden Filer  mit einer Releasenummer kleiner than 8.3 so konfiguriert werden:


./check_netapp_anycli.pl ‑H myfiler ‑‑in="version"  ‑‑out="8\.[4‑9]" ‑‑unlike_result=1

Dass check_netapp_anycli jedes bliebige CLI Kommando versendet ist nicht unproblematisch und sollte bedacht werden. Der laut unseren Vorgaben konfigurierte CM-Monitoring User hat dafür auch nicht ausreichende Berechtigungen – und das wird auch so bleiben. Dieser Check ist also nur für Administratoren, die sich des Risikos bewusst sind, genau wissen was sie tun und entsprechend sorgfältig arbeiten.

Andererseits sind damit schon coole Sachen möglich. Wenn ich beim Konfigurieren des Ping-Checks gerade nicht weiss, wie der Vservername genau lautet, schicke ich einfach ein vserver show und voila, hab eine Liste am Bildschirm:


./check_netapp_anycli.pl ‑H sim83n1 ‑u admin ‑p **** ‑‑in="vserver show"
CLI-OUTPUT: Admin      Operational Root
Vserver     Type    Subtype    State      State       Volume     Aggregate
----------- ------- ---------- ---------- ----------- ---------- ----------
sim83       admin   -          -          -           -          -
sim83-01    node    -          -          -           -          -
vserv01     data    default    running    running     vol0       aggr1
3 entries were displayed.
No pattern for desired output specified.

Verfügbar ist check_netapp_anycli ab dem nächsten stable Release. Für Tests auch schon früher, falls wir noch weitere RCs veröffentlichen.