Seite wählen

NETWAYS Blog

Weekly Snap: Responsive Web, BTRFS Plugin & Cloud Expo Europe

weekly snap28 January – 1 February turned over a new month with new buzzwords in web development, a new monitoring plugin and a trip to Cloud Expo Europe.
Sebastian reported back from the Cloud Expo Europe 2013 in London, as Bernd started his presentation on OpenNebula.
Jannis then explained the latest buzz-term ‘Responsive Web”, while Michael F shared his Icinga/Nagios plugin to monitor BTRFS file systems.
Finally, Eva counted 79 days till the OSDC with Kris Buytaert’s presentation on “Devops and Open Source”.

Überwachung von BTRFS Filesystemen

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 🙂

Weekly Snap: Font Awesome & Solaris Zone Cluster Monitoring, IRF & CeBIT 2013

weekly snap14 – 18 January offered development, managed services, and systems management tools, on top of CeBIT and OSDC 2013.
From our managed services team, Martin S introduced an Intelligent Resilient Framework for smart virtualisation.
Meanwhile, Marius shared a web dev tip for good-looking and quick HTML icons called Font Awesome, and Thomas his plugin to monitor Solaris Zone clusters.
Finally and somewhat expectedly, Eva announced our participation at CeBIT 2013 and counted 93 days to the OSDC with Constantino Vázquez’s presentation on “OpenNebula Toolkit”.

Google-Analytics in Prestashop richtig verwenden

Seit nun fast 4 Monaten betreiben wir unseren Online-Shop nicht mehr mit Magento, sondern mit PrestaShop. Dies bringt bereits ein Google-Analytics Plugin mit. Man gibt nur die Web-Property-ID ein und los geht’s.
Nachdem wir die Daten nun auswerten wollten, sind uns zwar die Nutzerzahlen zu den Vormonaten plausibel erschienen, jedoch waren alle Aufrufe in die Systemeigenen URLs gepackt.
So waren alle Produktaufrufe in /product und alle Kategorieklicks in /category gebündelt eingeordnet. Dies nützt ein natürlich wenig, wenn man genau sehen will, welches Produkt sich gut verkauft und welches nicht.
before
Mit wenigen Änderungen am Sourcecode des Google-Analytics Moduls behebt man jedoch diesen „Fehler“:

  • auf den Shopserver verbinden
  • in das Verzeichnis von PrestaShop wechseln
  • in das Verzeichnis modules/ganalytics/ wechseln
  • die Datei ganalytics.php vorher sichern
  • ganalytics.php mit einem Editor der Wahl öffnen
  • folgenden Abschnitt suchen
$file = str_replace(array('.php', '-'), '', basename($_SERVER['SCRIPT_NAME']));
  • um folgenden Code ergänzen
if($file == "category" ||
$file == "product" ||
$file == "search" ||
$file == "cms" ||
$file == "index") {
$file = $_SERVER["REQUEST_URI"];
}
  • noch einmal kontrollieren
$file = str_replace(array('.php', '-'), '', basename($_SERVER['SCRIPT_NAME'])); 
if($file == "category" ||
$file == "product" ||
$file == "search" ||
$file == "cms" ||
$file == "index") {
$file = $_SERVER["REQUEST_URI"];
}
  • speichern
  • fertig

after
Schon am nächsten Tag sammelt Google-Analytics die richtigen URLs ein.

Weekly Snap: PuppetConf, Bacula-Web, EventDB & Check_Open_Problems Plugin

17-21 September covered all our usual topics, from sys admin and developer tips to monitoring tools and talks – with travels to North America thrown in.
As usual, Eva counted down 30 days to the OSMC 2012; this time with Ronny Trommer’s presentation on the status quo of OpenNMS.
Martin then recommended Bacula’s latest web GUI version 5.2.10 and Eric played with VirtualBox command line tools, opening guest applications from his host system.
While Bernd, Julian and Tom looked ahead to next week’s PuppetConf in San Franscisco, Vanessa already sent home happy snaps from her language course in Vancouver.
On the monitoring front, Markus introduced EventDB for event monitoring with Icinga and Thomas put together a new check_open_problems plugin, inspired by our customer Perdata. Both are available on our git.netways.org and Monitoring Exchange.