Nagios-Plugins für MultiStore vFiler

31. Januar 2012

Die MultiStore Software von NetApp ermöglich ein physisches NetApp Gerät in mehrere virtuelle vFiler aufzuteilen. Jeder dieser vFiler kann für sich von den anderen strikt getrennt verwaltet werden –  wie wenn es sich jeweils um ein eigenes, physisches Gerät handeln würde:

  • Der Administrator eines vFilers kann nur dessen Dateien verwalten
  • Die Daten fremder vFiler sind für den vFiler-Admin nicht sichtbar.
  • Volumes und Qtrees können einem vFiler exklusiv zugeteilt werden.

Der physische Storage wird damit mandantenfähig.

Für das Monitoring kann es natürlich interessant sein, die Volumes eines bestimmten vFilers zu überwachen. Das um so mehr als dank „Over-All“-Checks dynamisch erkannt wird, welche Volumes am Filer gerade existieren.

Um die Überwachung ebenfalls mandantenfähig gestalten zu können, muss es möglich sein gezielt den vFiler ansprechen zu können, dessen Volumes überwacht werden sollen.

Die Nagios-Plugins für NetApp ermöglichen dies seit der Version 2.3.0. Bei jedem Check kann mittels der Option –vfiler=My_vFiler angegeben werden, welcher der vFiler in einer MultiStore-Umgebung geprüft werden soll.

Link: Leistungsbeschreibung Nagios Plugins für NetApp(mit vFiler-Switch).pdf


Monitoring verwaister Snapshots (SMVI, …)

10. Mai 2011

Monitoring Snapshot-Age – veraltete Snapshots finden und überwachen

NetApps’s SnapManager for Virtual Infrastructure (SMVI) zum Beispiel macht es: Snapshots im Volume zu hinterlassen, die manuell gelöscht werden müssten. Diese verwaisten Snapshots verbrauchen mehr und mehr Platz am Volume und binnen kurzem kann dieses voll sein. Für diese und ähnliche Anwendungsfälle wird nun das Check-Module Snapshots der  Nagios Plugins für NetApp erweitert. So soll es möglich werden, die zu überwachenden Snapshots nach Alter zu filtern. Somit wäre es beispielsweise möglich, dass man sich warnen lässt, wenn auf einem Volume über 50% der Snapreserve für Snapshots älter als 14 Tage belegt werden.

Aber auch ein Filter nach Namen wäre denkbar. Dann könnten nur jene Snapshots in die Alarmierung miteinbezogen werden, die einem bestimmten Muster entsprechen wie bespielsweise  ’*smvi*’ oder ‘hourly*’.

Gerne können Sie Ihre Wünsche dazu mittels dieser Umfrage deponieren:

http://netapp-monitoring.info/de/umfragen/snapshot-age.html


check_netapp.pl: Übersicht und Funktionsbeschreibung installierter Plugins

11. April 2011

Die Suite Nagios Plugins für NetApp besteht aus mehreren Check-Plugins, die jeweils einzeln gekauft und installiert werden können. Praktisch ist hier der Überblick, den der Schalter –explore bietet: Es werden alle installierten Plugins aufgelistet zusammen mit einer kurzen Funktionsbeschreibung.

$ ./check_netapp.pl –explore

Available Check-Plugins:    
Cluster		Checks the cluster service (state and time-master).
Hardware	Checks temperature-sensors, fans, power-supplies,
                nvram and disks on NetApp filers.    
iSCSI		Checks the state (online, offline, ...) of
                iSCSI-adapters on NetApp filers.    
PerfCpu		System CPUs resource utilization.    
PerfDisk	Check for system disks resource utilization.    
PerfIf		Checks transfer and errors per ethernet-interface.    
PerfSys		Checks operations/second and transfer-rate.    
PerfVolume	Checks a volumes latency or operations/second.    
Quotas		Checks the usage of disk- and file-quotas.    
Raidstatus	Checks the raid-status of volumes or aggregates.    
SnapMirror	Checks the state, lag-time and transfer-duration of
		SnapMirros.
Snapshots	Checks the space occupied by volume-snapshops.
SnapVault	Checks the SnapVaults-state, duration of last
		transfer and lag-time on secondary filers.
Status		Checks the global status of NetApp filers.    
Usage		Checks the used space of aggregates or volumes.

SSL für die Nagios-NetApp-Kommunikation

12. April 2010

Die NetApp API (ZAPI) kommuniziert mittels HTTP mit den sie aufrufenden Programmen. Selbstverständlich ist das auch über Secure Socket Layer (ssl), also HTTPS möglich und eigentlich auch einfacher, da dann die ab Werk eingestellten Optionen auf einem NetApp-Filer nicht verändert werden müssen. Hinzu kommt, dass diese Einstellung natürlich die sicherere ist. Es lag also nahe, HTTPS als Kommunikationsprotokoll in die Nagios Plugins für NetApp zu integrieren. Und das wurde heute auch erfolgreich für die Plugins der Version 2.x implementiert.

Vorsichtshalber sehe ich noch nach, ob auch wirklich verschlüsselt wird. Folgend die durchaus beruhigenden Screenshots aus meinem Wireshark.

XML-Ausschnitt: size-total und Anzahl der Bytes im Klartext

Unverschlüsselte HTTP-Kommunikation: Ein Sniffer sieht alle Daten im Klartext.

wireshark: http-credentials im Klartext

HTTP ohne Verschlüsselung: Benutzernahme und Passwort werden im Klartext übertragen.

Networktrace HTTPS

Mit Schalter --ssl=yes werden die XML-Daten verschlüsselt übertragen.

Implementiert wurde für check_netapp.pl ein zusätzlicher Schalter

 --ssl=yes|no

Default ist yes . Lässt man diesen Schalter weg oder stellt ihn auf yes, muss man am Filer eigentlich gar nichts mehr konfigurieren da die Option httpd.admin.ssl.enable ab Werk auf on steht. Der Filer kann somit out-of-the-box mittels dieser Plugins überwacht werden. Das geht dann auch problemlos über WAN-Links, die vielleicht unsicher sind oder SNMP gar nicht erst erlauben.


Autodiscovery für Perf-Counter

24. Februar 2010

Mit dem Plugin check_netapp_ops.pl lassen sich verschiedene Systemcounter wie beisielsweise total_ops, nfs_ops, net_data_sent eines NetApp Filers überwachen und bei Überschreiten Alarme via Nagios versenden. Doch nicht alle Counter sind auf jedem System vorhanden und nicht alle vorhandenen Counter werden vom Plugin unterstützt. Das Herausfinden der Schnittmenge aus vorhandenen und unterstützten Countern war eine eher mühsame Aufgabe bei der Implementierung der Plugins.

In der Version 2 verfügt das diesem Check nachfolgende Check-Modul Ops.pm diese Aufgabe für den Admin: Durch Angabe von explore anstelle eines Counternamens, bekommt man eine Liste aller verfügbaren und vom Plugin auch überwachbaren Counter  - gleich zusammen mit der Maßeinheit.

Hier ein Beispiel:

$ ./check_netapp.pl Ops -f auth -H toaster01 -z explore
System Performance Counters available _and_ supported on this filer:
================================================================================
Counter-Name                Description (Unit, Privilege)
--------------------------------------------------------------------------------cifs_ops                    CIFS operations per second (per_sec, basic)
nfs_ops                     NFS operations per second (per_sec, basic)
net_data_sent               Network KB sent per second (kb_per_sec, basic)
total_ops                   Total operations per second (per_sec, diag)
net_data_recv               Network KB received per second (kb_per_sec, basic)
write_ops                   Write operations per second (per_sec, basic)
fcp_ops                     FCP operations per second (per_sec, basic)
iscsi_ops                   iSCSI operations per second (per_sec, basic)
read_ops                    Read operations per second (per_sec, basic)
disk_data_written           Disk KB written per second (kb_per_sec, basic)
http_ops                    HTTP operations per second (per_sec, basic)
streaming_pkts              Netcache streaming media packets serviced per
second (per_sec, diag)
disk_data_read              Disk KB read per second (kb_per_sec, basic)
cifs_ops                    CIFS operations per second (per_sec, basic) nfs_ops                     NFS operations per second (per_sec, basic) net_data_sent               Network KB sent per second (kb_per_sec, basic) total_ops                   Total operations per second (per_sec, diag) net_data_recv               Network KB received per second (kb_per_sec, basic) write_ops                   Write operations per second (per_sec, basic) fcp_ops                     FCP operations per second (per_sec, basic) iscsi_ops                   iSCSI operations per second (per_sec, basic) read_ops                    Read operations per second (per_sec, basic) disk_data_written           Disk KB written per second (kb_per_sec, basic) http_ops                    HTTP operations per second (per_sec, basic) streaming_pkts              Netcache streaming media packets serviced per                            second (per_sec, diag) disk_data_read              Disk KB read per second (kb_per_sec, basic)
http://www.netapp-monitoring.info/de/nagios-plugins.html

Nagios-Plugins für NetApp stabil

17. Februar 2010

So, jetzt ist es so weit: Die erste, sorgfältig getestete und wahrlich stabile Version der Nagios-Plugins für NetApp ist offiziell erhältlich.
Und schon arbeiten wir daran, die zahlreichen Ideen und Vorschläge aus dem Kundenfeedback einzuarbeiten – die Version 2.x ist bereits im ALPHA-Stadium.

http://www.netapp-monitoring.info/de/nagios-plugins-roadmap.html


Monitoring Snapshots

2. November 2009

Damit Snapshots auf einem NetApp-Filer nicht in den Himmel wachsen, muss man deren Größe regelmässig überprüfen. Um dies zu automatisieren und im Falle des Überschreitens definierter Grenzwerte alarmiert zu werden, haben wir ein Nagios-Plugin entwickelt, das diese Werte regelmäßig abfrägt, mit  Schwellwerten vergleicht und auch die Grundlagen für eine kontinuierliche Aufzeichnung (Trending) liefert. Im praktischen Betrieb hat sich dann gezeigt, dass die Situation nicht immer ganz so einfach ist und verschiedene Szenarien zu unterscheiden sind: Zum einen kann das Volume keine Snapreserve definiert haben. In diesem Fall wäre der durch die Snapshots verbrauchte Platz wohl am besten relativ zur Größe des Volumes zu berechnen. Anders, wenn es eine definierte Snapreserve gibt; dann sollte die Auslastung dieser Reserve als Basis für die prozentualen Schwellwerte genommen werden. Ein Beispiel zur Verdeutlichung:

Volume A, 100 GB, keine Snapreserve: Wenn durch die Snapshots insgesamt 18 GB belegt werden, ergibt dies eine relative Auslastung von 18% berechnet auf Basis der Volumegröße.

Volume B, 100 GB, davon sind 20GB als Snapreserve reserviert: Wenn die SnapShots hier 18 GB belegen, ergibt dies eine relative Auslastung von 90% (genau 100/20*18) auf Basis der Snapreserve.

Man sieht also, dass die Definition der einzelnen Szenarien durchaus kompliziert werden kann. Wir wollen aber letztendlich zu einer möglichst einfachen Lösung gelangen, die es uns erlaubt mit einigen wenigen Service-Checks alle vorhandenen und auch zukünftig noch angelegten Volumes zu prüfen. Was uns nicht interessiert, ist bei jedem Anlegen eines neuen Volumes am NetApp-Filer die Nagios-Konfiguration anpassen zu müssen.

Im Allgemeinen wird man dafür mit zwei Servicechecks auskommen, um alle Volumes am Filer prüfen zu können. Man muss nur die beiden Szenarien unterscheiden: Volumes mit definierter Snapreserve und solche ohne. Und genau dafür gibt es den Schalter –check_only, dem entweder der Wert with_reserve oder no_reserve zugwiesen werden kann.

Die in die Nagioskonfiguration zu übertragenden Checks würde dann so aussehen:

Check A erfasst alle Volumes ohne definierter Snapreserve. In diesem Fall wird man die Standardvorgaben für die Schwellwerten von 80% bzw. 95% wohl geringer ansetzen, denn wenn die Snapshots einmal 80% des Volumes verbrauchen, ist es für eine Warnung meist schon zu spät.

$ ./check_netapp_snapshots.pl -H sim -f auth --base=vol
 --check_only=no_reserve -w 20% -c 30%

Check B erfasst alle Volumes mit defninierter Snapreserve. Hier können die Standardvorgaben für die Schwellwerte durchaus passen, da sie ja jetzt relativ zur Snapreserve berechnet werden. Daher entfallen hier -w und -c.

$ ./check_netapp_snapshots.pl -H sim -f auth --base=reserve
 --check_only=with_reserve

Und falls man dann noch die Volumegröße in den Performancedaten haben will, um diese in den RRD-Graphen hübsch darzustellen, setze man den Schalter –perf_volume dazu. Dieser wird ergänzt durch –perf_abs, welcher in den Performancedaten auch die Snapshot-Größe in Blöcken statt Prozent ausgibt.

Eine gute Beschreibung des Themas: http://broadcast.oreilly.com/2009/02/understanding-snapshot-consump.html


Monitoring NetApp: SNMP vs. NetApp API

28. Oktober 2009

Überblick über NetApp-Service-Checks in NagiosZahlreiche Tools zur Überwachung von NetApp basieren auf dem Monitoring-Defacto-Standard SNMP. Dieses Protokoll ist praktisch, da allgemein bekannt, weit unterstützt und leider auch uralt. Das zeigt sich zum Beispiel darin, dass heutige komplexe Systeme wie die Speichergeräte von NetApp eigene APIs bereitstellen, die auch bei komplexen Operationen noch übersichtlich programmatisch angesprochen werden können. Die NetApp-API ist unter anderem mit C, Java oder Perl anzusprechen. Somit war es für mich logisch, die NetApp-Plugins für Nagios in Perl zu entwicklen und dabei aber auf diese API zurück zu greifen.

NetApp Manage ONTAP SDK (NetApp Community Blog Article)


check_netapp_usage für Aggregate und Volumes

21. September 2009
Überblick über alle Volumes, Aggrgate und Hardware mit nur wenigen Checks.

Mit diesem Check-Script für Nagios, wird die Auslastung von Volumes oder Aggregaten geprüft. Der besondere Charm liegt in der Möglichkeit, kein bestimmtes Volume oder Aggregat angeben zu müssen. Frei nach dem Leitsatz: „Weniger ist mehr“ Folgend ein Auszug aus der Hilfe.

Beispiele

$ check_netapp_usage.pl -H netapp01 -u nagios%pass -o vol
Checks all volumes on netapp01 using the default thresholds.
$ check_netapp_usage.pl -H netapp01 -u nagios%pass -o aggr
Checks all aggregates on netapp01 using the default thresholds.
$ check_netapp_usage.pl -H netapp01 -u nagios%pass -o aggr -w 50% -c 98%
Checks all aggregates on netapp01. Returns a warning, if at least one volume is more than 50% used and critical-alarm if more that 98% used.

Vorteile

Die Vorteile dieser Overall-Checks liegen auf der Hand:

  • Weniger Arbeit beim Implemetieren, da nun nicht jedes Volume einzeln als Servicecheck ins Nagios eingetragen werden muss.
  • Das Nagios bleibt mit weniger Aufwand aktuell, da nicht mehr jedes wegfallende oder hinzukommende Volume in der Nagios-Konfiguration nachgetragen werden muss.

Vereinfachte Authentifizierung

Und für besonders Faule gibt es noch die Möglichkeit, sich die Angabe von Benutzername und Passwort zu sparen. Legen wir diese z.B. in einer Datei namens auth ab, kann der Befehl zur Überprüfung aller Volumes auch so lauten:

$ check_netapp_usage.pl -H netapp01 -f auth -o vol

Doch zu diesem Feature ein anderes mal noch mehr …


Wieviele Kommastellen bei prozentualen Werten?

5. Mai 2009

Kundenwünsche können auch ins Detail gehen und lösen dann mitunter interessante Diskussionen aus. So zum Beispiel die Frage eines Nagios-Admins, der unser Plugin zur Prüfung der Auslastung von Aggregaten und Volumes auf  NetApp-Filern  check_netapp_usage einsetzt: Seine Frage war, ob es wirklich sinnvoll sei einen Prozentwerten auf zwei oder gar drei Nachkommastellen genau zu runden. Letztendlich haben wir uns dazu entschlossen, für die Anzeige im Nagios auf eine Nachkommastelle zu runden mit der durchaus sinnvollen Begründung, dass bei kleinen Werten die Aussage „Auslastung beträgt 0,1%“ deutlich signalisiert, dass das Plugin noch arbeitet während ein Meldung wie „Die Auslastung is 0%“ doch eine gewisse Unsicherheit vermittelt. Monitoring NetApp mit Nagios: Scrrenshot Volume Usage


Follow

Get every new post delivered to your Inbox.