ferm – for Easy Rule Making

“Easy to use” Firewallregeln würde ich dazu sagen. Wer keine Lust hat sich mit iptables rumzuschlagen und seinen Server vor eventuellen Angreifern schützen möchte, dem bietet ferm eine einfache und chicke Möglichkeit komplexe Firewallregeln zu verwalten. Das ganze in unter 1 Minute*. Unter Debian einfach:

# apt-get install ferm

und ggf. das Anpassen der Konfigurationsdatei:


# joe /etc/ferm/ferm.conf

Update: Ich habe noch eine simple Konfigurationsdatei hinzugefügt, die praktisch out-of-the-box mitkommt:

Es empfielt sich jedoch vorerst das lesen der Dokumentation. Entsprechende Beispielskripte finden sich auch auf der Ferm-Homepage unter dem Abschnitt “Dokumentation”.
Den Perl-Code gibt es noch oben drauf unter http://repo.or.cz/w/ferm.git.

*Je nach verfügbarer Downloadgeschwindigkeit :D

Benchmariking und Überwachen von Webapps mit httperf, munin und gltail

Für unser letztes Projekt war Benchmarking und klare Aussagen über die Auslastung des Servers ein wichtiger Punkt. Daher haben wir uns ein paar Tools herangezogen die uns geholfen haben unsere Webapplikation (visuell) “im Griff” zu behalten.

Benchmarking mit httperf

Httperf ist in erster Linie ein Benchmarking-Tool dass die Durchsatzrate von Requests eines Webservers messen kann. Von httperf wird mit einer fixen Rate diese Requests an den Server geschickt und mit den angekommenen Replies verglichen. Der Output gibt uns Informationen zu der Dauer dieses Tests, der Fehlrate (Anzahl der nicht erhaltenen Replies).

Einen Beispielhaften Output kann man hier einsehen.

Das Ergebnis einer Messung sind:

Sehr interessant dabei ist das Resultat der Reply rate:


Reply rate [replies/s]: min 0.0 avg 4.9 max 10.8 stddev 4.2 (40 samples)

Diese gibt uns eine Auskunft über den Durchschnitt und die Standardabweichung der Antwortzeit. Diese Messungen sind genauer je mehr Stichproben während der ganzen Messung entnommen wurden. Durch die Optimierung des Programmcodes können diese Werte dann demensprechend verbessersert und dadurch eine schnellere Antwortzeit gemessen werden. Mehr Informationen zu httperf sind aus dem Manual zu entnehmen. Weitere Informationen kann man auch im Blogpost von Grig Gheorghiu nachlesen. Wer ein bisschen tiefer in die Materie einsteigen möchte, dem empfehlen wir den Screencast von PeepcodeBenchmarking with httperf

Monitoring mit Munin

Um die Server während der Produktivbetriebs visuell im Blick zu haben empiehlt sich die Benutzung von Munin. Mit Munin ist es möglich die verschiedenen Prozesse/Daten des Servers zu visualisieren. Dazu werden so genannte munin-nodes installiert (die zu überwachenden Server). Diese Nodes werden dann auf dem Munin-Server aggregiert, verarbeitet und Visualisiert.

Munin statistic graphs

Standardmäßig bietet Munin Statistiken zu:

Eine sehr schöne Eigenschaft von Munin ist, dass dieses Tool pluggable ist, d.h. es können verschiedene Skripte eingebunden werden. Wenn man Rails-Applikationen mit Phusion Passenger laufen lässt, stehen auf Github zwei nette Skripte zur Verfügung die man einfach in Munin einbinden kann. Mehr zu Munin-Plugins kann man in diesem Blogpost nachlesen.

Quasi-Echtzeitstatistiken mit glTail

Eine nette Ergänzung zur Überwachung von Webapplikationen ist gltail. Gltail bietet eine (quasi-)Echtzeit Darstellung von log-Files jeder Art. Dies kann natürlich dazu verwendet werden, um z.B. die Apache-Logs, Production-logs, etc. zu visualizieren.

glTail