Ich habe Apache eingerichtet, um mehrere virtuelle Hosts zu bedienen, und möchte sehen, wie viel Bandbreite jeder Standort verwendet. Ich kann sehen, wie viel der gesamte Server verbraucht, hätte aber gerne detailliertere Berichte.
Die meisten Dinge, die ich dort herausgefunden habe, dienen dazu, die Bandbreite auf virtuelle Hosts zu beschränken, aber ich möchte das nicht tun. Ich möchte nur sehen, welche Sites wie viel Bandbreite verbrauchen.
Dies dient nicht zu Abrechnungszwecken, sondern nur zur Information.
Gibt es ein Apache-Modul, das ich verwenden sollte? Oder gibt es eine andere Möglichkeit, dies zu tun?
quelle
Awstats ist eine Möglichkeit, dies zu tun, aber wahrscheinlich nicht die beste
quelle
Ich schlage vor, dass Sie den wunderbaren Apache-Protokollierungsmechanismus und die weniger bekannten % I- und % O- Flags verwenden:
Definieren Sie das Format:
Verwenden Sie es in Ihrer httpd.conf :
Die Werte berücksichtigen wahrscheinlich nicht alle Headerinformationen, sind jedoch ziemlich genau, um eine genaue Vorstellung des VirtualHost-Datenverkehrs zu erhalten.
Scannen Sie die Protokolle mit einem Perl-Skript, um alle n Minuten (z. B. 5) ein Aggregat pro virtuellem Host zu erstellen, und senden Sie dieses an Cacti.
Diese Flags werden von mod_logio bereitgestellt, das wahrscheinlich in Ihren Apache integriert ist (wie es für den Apache meines Debian-Benutzers der Fall ist).
quelle
Wenn Sie sich für die Verwendung von awstats mit Apache entscheiden, wird standardmäßig die aggregierte Bandbreite für Ihren gesamten Server angezeigt.
Um die Bandbreite pro virtuellem Host zu sehen, empfehle ich die Installation von vlogger .
Vlogger sammelt tatsächlich Apache-Zugriffsprotokollinformationen für jeden Ihrer virtuellen Hosts, die Sie dafür eingerichtet haben, in separaten Verzeichnissen / Dateien.
Befindet sich Ihre Apache-Protokolldatei beispielsweise in / var / log / apache2, wird bei einer typischen Installation von vlogger für Ihre virtuellen Hosts Folgendes erstellt (z. B. vhost1.com vhost2.com):
Vlogger bietet Ihnen die Möglichkeit, diese Protokolle für Sie zu drehen, bietet eine Möglichkeit zum Ändern der Namensvorlage der Zugriffsprotokolldatei (z. B. Hinzufügen eines Datums) und behauptet, dass eine große Anzahl von Protokolldateien besser als Apache verarbeitet wird.
Ein Nachteil dabei ist, dass Sie keine aggregierte Serveransicht mehr haben (Sie müssen Protokolle separat aggregieren oder möglicherweise eine zusätzliche Apache-Einstellung oder eine andere Methode verwenden?).
Ich würde davor warnen, Google Analytics (oder ein auf Javascript basierendes Tracking) für die Überwachung der Serverbandbreite zu verwenden, da Sie sich darauf verlassen, dass der Client über Javascript meldet. GA meldet Ihnen keine Personen, deren Javascript deaktiviert ist, sowie keine Crawler / Spinnen / Bots.
quelle
Hier ist ein regulärer Ausdruck, um das von Xerxes vorgeschlagene Protokollformat zu analysieren.
\ [([0-9] +) / (\ w +) / ([0-9] {4}) [^ \]] + \] \ s (\ d {1,3}. \ D {1, 3}. \ D {1,3}. \ D {1,3}) \ s ([^ /] +) [^ \ s] + \ s (\ d +) \ s (\ d +)
Beispielprotokoll:
[12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 581 669 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 624 747 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com /icons/blank.gif 687 186 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157. 12.206 files.hjaltijakobsson.com /icons/compressed.gif 693 188 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com /favicon.ico 592 512
Streichhölzer:
Subpattern 1 (Tag des Monats): 12
Subpattern 2 (Monat): Jan
Subpattern 3 (Jahr): 2011
Subpattern 4 (Gasthost): 157.157.12.206
Subpattern 5 (virtueller Host): files.hjaltijakobsson.com
Subpattern 6 ( eingehende Bytes): 581
Subpattern 7 (ausgehende Bytes): 669
Prost.
quelle
Die akzeptierte Antwort leicht anpassen, vorausgesetzt, es befinden sich tatsächlich mehrere vhosts auf dem Server (und daher mehrere site.com.access_logs). Dies sortiert und listet jeden vhost auf
und für ein Verzeichnis mit komprimierten Protokollen
quelle
Hmm, Sie könnten mit IPTables und String Matching böse werden, um die Pakete für spätere Berichte zu protokollieren. Funktioniert allerdings nur für Nicht-SSL-Verbindungen.
Oder es könnte etwas protokoll- und sitzungsbewusstes wie Snort verwendet werden ...
quelle
Richtig. Das Filtern des Protokolls ist eine gute Idee. Ich möchte auch die Bandbreite meines Apache-Servers erhalten, wenn ich Dateien herunterlade.
Berechnet die
%b
und%d
Ausgabe, die Ihnen die Bandbreite des Stroms gibt.quelle