pixel
Seite wählen

Überwachung von BTRFS Filesystemen

von | Feb 1, 2013 | Development, Linux, Monitoring

Grüss Gott beisammen, ich bin dann auch mal hier 🙂
In einem Kundenprojekt gehts dann auch gleich zur Sache: BTRFS gilt zwar als experimentiell, aber es gibt dennoch Setups, in denen BTRFS bereits als Filesystem verwendet wird. In OpenSUSE 12.2 gibt es BTRFS in einer verbesserten Fassung, und so ist es auch nicht verwunderlich, dass die Anforderung an ein entsprechendes Check Plugin gestellt wurde.
Das eigentliche Problem hierbei ist, dass der systemeigene df Befehl die BTRFS spezifischen Werte nicht kennt, und ebenso nicht ausgibt. Erst mit btrfs filesystem df / lässt sich beispielsweise ermitteln, dass nicht das eigentliche Filesystem vollgelaufen ist, sondern die Snapshots im Hintergrund zu 100% dicht sind, und sich deswegen nichts mehr auf die Platte schreiben lässt.
Da es im Monitoring Umfeld noch keine geeigneten Plugins gibt, habe ich ein Basisplugin in Perl programmiert, das den Output von btrfs filesystem df / parsen kann, sowie daraus die Werte extrahiert, die dann mit globalen Thresholds verglichen werden sollen. Das ist mitunter nicht ganz trivial, da die Ausgabe dieses Befehls einen kunterbunten Mix aus KB, MB und GB ausspuckt, den man in mathematisch logische Bytes zur weiteren Berechnung zerlegen muss. Alles andere ist aber Standardpluginkost und sollte jedem die Möglichkeit eröffnen, die eigenen BTRFS Filesystemfunktionalitäten neben den obligatorischen df Checks (zB check_disk) zu überwachen.
Um die BTRFS Werte auslesen zu können, werden Root Privilegien benötigt. Da der Icinga Core die Checks als Icinga Benutzer durchführt, muss diesem Benutzer das passwortlose sudo für den Befehl /usr/sbin/btrfs filesystem df /* eingeräumt werden. Achtung: /usr/sbin/btrfs ist zu wenig eingeschränkt – damit könn(t)en als Icinga Benutzer alle BTRFS Einstellungen manipuliert werden!

# visudo
icinga ALL=(ALL) NOPASSWD: /usr/sbin/btrfs filesystem df /*

Auch wenn der Icinga Benutzer keine Shell zur Verfügung hat, kann das Plugin mit diesem Befehl als root getestet werden:

# sudo -u icinga /usr/local/icinga/libexec/check_disk_btrfs -f / -w 50 -c 80
WARNING: btrfs "Data" 62.87% used (1.05GB/1.67GB) OK: "System, DUP" 0.05% used (4.00KB/8.00MB), "System" 0.00% used (0.00/4.00MB), "Metadata, DUP" 19.30% used (90.48MB/468.75MB), "Metadata" 0.00% used (0.00/8.00MB) | data_used=1127428915;50;80;; data_total=1793148846;50;80;; system_dup_used=4096;50;80;; system_dup_total=8388608;50;80;; system_used=0;50;80;; system_total=4194304;50;80;; metadata_dup_used=94875156;50;80;; metadata_dup_total=491520000;50;80;; metadata_used=0;50;80;; metadata_total=8388608;50;80;;

Das Plugin befindet sich in seiner ersten Version im GIT Repository auf git.netways.org – bitte um Tests, Feedback und Anregungen.
Für das Plugin selbst gilt dasselbe wie für das BTRFS Filesystem – experimentell in der ersten Version 🙂

Mehr Beiträge zum Thema Development | Linux | Monitoring

Icinga Web 2 trifft Guacamole

In meinem heutigen Blogpost geht es um Guacamole in Icinga Web 2 und die Frage, wie Guacamole in Icinga Web 2 implementiert werden kann. Aber was sind eigentlich Guacamole und Icinga Web 2? Introducing Icinga Web 2 Icinga ist eine Open Source Verfügbarkeits-Monitoring...

Icinga Camp Berlin 2022

Das erste Icinga Camp nach 2019 fand nun fast 3 Jahre später statt. NETWAYS hat als Sponsor und Hilfe in der Organisation zusammen mit der Icinga das Event zusammen auf die Beine gestellt und zu einem vollen Erfolg gemacht. Es wurde der aktuelle Stand der Dinge...

Divide and Conquer – Verteilte Git-Konfiguration

In meinem zehnten Monat als Consultant bei NETWAYS angekommen, bin ich inzwischen gut in verschiedenste Kundenprojekte integriert. Das sorgt einerseits für einen abwechslungsreichen Alltag mit immer neuen Herausforderungen, andererseits stellte sich irgendwann ein...

Icinga for Windows Preview: Visualisiert eure Metriken!

Icinga hat in seinem Blogpost mitgeteilt, dass es mit Icinga for Windows v1.10.0 einige Änderungen an den Performance Metriken geben wird. Hier wollen wir einmal grob zusammenfassen, worum es geht und welche Auswirkungen diese Änderungen haben. Für alle Details ist...