Neues Admin-Tool: Httpdiff hilft bei Fehlersuche und Analyse von Webservern
Mit httpdiff ist dieser Tage ein neuer Kommandozeilenhelfer herausgekommen, der Administratoren helfen kann, Fehler bei umgezogenen Webservern aufzuspüren. Gegenüber der Log-Datei-Analyse kann das viel Zeit sparen.
![Webserver vergleichen](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/1/4/5/6/3/6/5/httpdiff-006669a65e2ae78c.png)
(Bild: John Graham-Cumming)
Das von John Graham-Cumming geschriebene und kürzlich auf Github veröffentliche Kommandozeilen-Tool httpdiff schickt identische Anfragen an zwei HTTP-Server und führt deren Antworten übersichtlich zum Vergleich auf. So vereinfacht httpdiff die Analyse von Webserverfunktionen etwa in einem Cluster oder hilft bei der Fehlersuche nach einem Webserver-Umzug.
Das Kopieren der Serverkomponenten, zum Beispiel von einem Hoster zum anderen, ist bei einem Umzug nur der erste Schritt. Programme, Skripte und Konfigurationen landen dann zwar in der Regel als 1:1-Kopien auf dem Ziel, aber erst nach dem Start erweist es sich, ob der Admin umgehend andere Aufgaben angehen kann. Wegen unterschiedlicher Library-Versionen oder verschiedener SSL-Implementierungen kommt es durchaus vor, dass sich die Server-Kopie anders verhält als das Original und manche Anwendungen ohne ersichtlichen Grund nicht laufen. Die Fehlersuche in Log-Dateien der Server und die Analyse der HTTP-Kommunikation mit eigenen Skripten (z. B. unter Einsatz von Curl, Befehlen der OpenSSL-Suite und diff) hilft zwar weiter, braucht aber mehr Aufwand. Das neue httpdiff erspart das, indem es detaillierte Darstellungen des Kommunikationsablaufs liefert.
Der Quellcode des Tools setzt die Go-Entwicklungsumgebung voraus. Ist diese an Bord, kann man httpdiff mit den beiden Befehlen
go get github.com/jgrahamc/httpdiff
go install github.com/jgrahamc/httpdiff
kompilieren und einrichten. Laut Graham-Cumming lassen sich die Ergebnisse am besten in einem Unix-Terminal anzeigen, das ANSI-Escape-Sequenzen versteht. Mittels Kommandozeilenparametern kann man httpdiff veranlassen, bei Abfragen etwa die Header-Angaben zum Host zu überschreiben, Header-Einträge von der Analyse auszuschließen oder eine bestimmte HTTP-Methode zu verwenden. (rek)