Mein 1&1 cloud server, Teil 6, HTTP Server Statistik, AWStats

Im 6. Teil meiner Artikelserie beschäftigen wir uns mit einem Tool zur Auswertung der Log Files und zur Erzeugung von Webserver-Statistiken. Es stehen mehere freie Open Source Werkzeug zur Verfügung, ich habe mich für AWStats entschieden. Zunächst überprüfen wir, ob AWStats in den ubuntu 14.04 Repositories verfügbar ist und wenn ja, in welcher Version.

Wir sehen AWStats ist in der Version 7.2 verfügbar. Diese Version installieren wir mit dem folgenden Befehl:

Zur Bestimmung der Geo- und Netzlokation müssen wir noch zwei zusätzliche Pakete installieren.

Nun müssen wir zunächst eine Konfiguration für AWStats anlegen. Dazu wechseln wir in das Verzeichnis /etc/awstats und kopieren die Datei awstats.conf nach awstats.mysubdomain.mydomain.tld.conf.

Die neue Datei müssen wir nun in einigen Punkten anpassen. Die Datei ist sehr gut mit Kommentaren dokumentiert. Hier die von mir angepassten Zeilen:

Als nächstes führen wir AWStats manuell aus:

Der Domainname ist natürlich den tatsächlichen Gegebenheiten anzupassen.

Um die Statistik regelmäßig auszuführen wollen wir die Ausführung automatisieren. In den meisten Anleitungen, die ich gesehen habe, wird dafür nur ein cronjob eingesetzt. Das ist auf unserem System nicht ausreichend, da hier logrotate läuft und die Apache Logs durchrotiert. Das bedeutet, dass wir das AWStats script als prerotate job beim logrotate laufen lassen. Da das logrotate nur einmal am Tag läuft, könnte man noch zusätzliche Ausführungen per cronjob starten. Dann muss allerdings Sorge dafür tragen werden, dass die Ausführung nicht zur gleichen Zeit stattfindet. Weitere Erläuterungen zu der Thematik findet man in den AWStats FAQs. Mir genügt die tägliche Auswertung durch AWStats, so dass für mich die Konfiguration als prerotate job ausreichend ist.

Werfen wir einen Blick in die logrotate Konfiguration. In der Datei /etc/logrotate.d/apache2 finden wir die logrotate Konfiguration für die Apache Log Files.

Wir sehen die Ausführung ist täglich und das script ist schon so gebaut, dass wir unseren auszuführenden prerotate Job in einer Datei im Verzeichnis /etc/logrotate.d/httpd-prerotate definieren können. Diese Datei wird laut logrotate Manual mit /bin/sh ausgeführt. Wir legen zunächst das nicht existierende Verzeichnis /etc/logrotate.d/httpd-prerotate und darin eine Datei awstats mit dem AWStats update Aufruf an.

Nun wollen wir noch die Apache Konfiguration anpassen, damit wir uns die Statistik auch anschauen können. Dazu legen wir im Verzeichnis /etc/apache2/conf-available eine neue Konfigurationsdatei awstats.conf mit folgendem Inhalt an.

Mit den Anweisungen in der Files Direktive beschränken wir den Zugriff auf das AWStats Perl Script. Ausführung ist nur möglich lokal vom Server oder von unserem Admin Host, bzw. Heimnetzwerk aus.

Nun müssen wir diese Konfiguration und das Apache cgi Modul noch aktivieren und den Apache Server restarten.

Unter der URL https://mysubdomain.mydomain.tld/awstats/awstats.pl können wir uns nun die Statistiken für den Zugriff auf unseren Webserver ansehen. In der URL ist natürlich die richtige Domain einzusetzen.

Leider zeigt mein Webbrowser Firefox an, dass unsere AWStats Seite gemischt Inhalte ausliefert, also https und http und damit unsicher ist! Nach ein wenig Internetrecherche habe ich herausgefunden, dass das Plugin graphgooglechartapi der Verursacher ist. Dieses Problem wurde in AWStats Version 7.3 behoben. Deshalb habe ich mich entschlossen auf eine neuere AWStats Version zu wechseln. In den ubuntu 14.04 Repositories ist jedoch keine aktuellere Version vorhanden, weshalb wir die letzte stabile AWStats Version 7.4 aus dem tar Archive von der AWStats Webpage installieren.

Wie wir sehen werden, ist die Verzeichnisstruktur jedoch eine andere, so dass wir unsere momentane AWStats Version deinstallieren müssen.

Zunächst löschen wir unsere aktuelle Apache AWStats Konfiguration und legen eine gleichnamige leere Konfigurationsdatei an.

Danach kopieren wir das AWStats 7.4 Archive in unser Home Verzeichnis auf unserem Server.

Auf dem Server entpacken wir das Archive im Home Verzeichnis.

Dann ändern wir rekursiv Eigentümer und Gruppe für das ausgepackte Verzeichnis awstats-7.4.

Nun legen wir ein Unterverzeichnis awstats im Verzeichnis /usr/share an und verschieben den Inhalt des Verzeichnisses awstats-7.4 dort hin.

Danach müssen wir noch zwei Änderungen der Berechtigungen für das Perl Script awstats.pl durchführen, damit unser Apache das Script ausführen kann.

Schliesslich legen wir das Verzeichnis /var/lib/awstats neu an und ändern Besitzer und Berechtigungen:

Nun müssen wir AWStats noch konfigurieren. Dazu wechseln wir in das Verzeichnis /usr/share/awstats und führen das Konfigurationsscript aus.

Als erstes fragt uns das Konfigurationsscript, ob wir wirklich das Verzeichnis /usr/share/awstats benutzen wollen. Das bestätigen wir mit y. Danach werden wir nach der Konfigurationsdatei unseres Webservers gefragt. Hier geben wir unsere leere Apache Konfigurationsdatei für AWStats /etc/apache2/conf-available/awstats.conf an. Im Anschluss werden wir gefragt, ob das Konfigurationsscript eine AWStats Konfiguration für uns anlegen soll. Das bestätigen wir ebenfalls mit y. Daraufhin fragt das Script wo es die Konfigurationsdatei speichern soll. Der default Wert /etc/awstats ist richtig, wir können einfach durch Drücken der Return Taste bestätigen. Zum Schluss erhalten wir noch Informationen zur Konfiguration und dass wir den Apache restarten müssen. Wir bestätigen zweimal durch Drücken der Return Taste und haben damit die Grundkonfiguration fertiggestellt.

In der Datei /etc/apache2/conf-available/awstats.conf passen wir noch die Zugriffsrechte auf die AWStats Seite an. Die Directory Direktive sollte dann so aussehen:

Danach wechseln wir in das Verzeichnis /etc/awstats und legen eine Konfiguration für unsers Domäne an, in dem wir die Demokonfiguration umbenennen.

Die Domäne ist entsprechend den tatsächlichen Gegebenheiten anzupassen. Die Datei awstats.mysubdomain.mydomain.tld.conf selbst müssen wir dann ebenfalls noch anpassen. Die von mir gemachten Änderungen sind hier zu sehen:

Für das Update der Statistiken legen wir im Verzeichnis /root/bin das folgende Script an.

Dem Script geben wir noch die richtigen Berechtigungen.

Zuletzt müssen wir noch das httpd-prerotate Script ändern. Wir ersetzen die aktuelle Zeile mit der folgenden:

Jetzt testen wir zunächst das Update der AWStats database:

Unter der URL https://mysubdomain.mydomain.tld/awstats/awstats.pl finden wir nun die Statistiken für den Zugriff auf unseren Webserver, jetzt sauber, ohne gemischten http und https Inhalt.