J'ai Apache mis en place pour servir plusieurs hôtes virtuels et j'aimerais voir la quantité de bande passante de chaque site utilise. Je peux voir à quel point l'ensemble du serveur utilise, mais je voudrais des rapports plus détaillés.
La plupart des choses que j'ai découvertes, il y a pour limiter la bande passante aux hôtes virtuels, mais je ne veux pas faire cela; Je veux juste voir quels sites utilisent la quantité de bande passante.
Ce n'est pas à des fins de facturation, juste pour des informations.
Y a-t-il un module Apache que je devrais utiliser? Ou y a-t-il une autre façon de faire cela?
Les informations que vous suivez sont toutes dans les journaux. Vous devez donc examiner un analyseur de journal tel que AWSTATS . L'autre option consiste à utiliser Google Analytics.
Pour analyser les journaux, voici un exemple rugueux que vous pouvez utiliser pour vous indiquer le nombre de MB de trafic Un fichier journal rapporte de la ligne de commande:
cat /var/log/Apache/access.log | awk '{SUM+=$10}END{print SUM/1024/1024}'
awstats est une façon de le faire mais probablement pas le meilleur
Je vous suggère d'utiliser le magnifique mécanisme de journalisation Apache et son moins connu % I et % O Drapeaux:
Définir le format:
Logformat "% t% a% v% u% q% i% o" ioformat
Utilisez-le dans votre principal httpd.conf :
Customlog /var/log/APACHE2/ALL-BW.LOG IOFORMAT
Les valeurs ne comptaient probablement pas toutes les informations sur les en-têtes, mais sont assez précises d'avoir une idée précise du trafic VirtualHost.
Numérisez les journaux avec un script Perl à l'agrégat par hôte virtuel toutes les minutes (5 par exemple) et envoyez ceci à cacti.
Ces drapeaux sont fournis par mod_logio qui est probablement construit dans votre Apache (comme pour mon Apache de Debian).
Si vous décidez d'utiliser AWSTATS avec Apache, hors de la boîte, il vous montrera une bande passante agrégée pour votre serveur entier.
Pour voir la bande passante sur une base aérienne virtuelle, je vous recommande d'installer Vlogger .
Vlogger rassemblera effectivement les informations de journal d'accès Apache pour chacun de vos hôtes virtuels que vous avez configurés pour le faire dans des répertoires/fichiers distincts.
Par exemple, si votre fichier journal de Apache est in/var/journal/Apache2, l'installation de Vlogger typique créera quelque chose comme ceci pour vos hôtes virtuels (par exemple, vhost1.com vhost2.com):
/var/log/Apache2/vhost1.com/access.log
/var/log/Apache2/vhost2.com/access.log
Vlogger vous donne la possibilité de faire pivoter ces journaux pour vous, fournit un moyen de modifier le modèle de nommage du fichier journal d'accès (E.G. Ajoutez une date) et affirme qu'il gère un grand nombre de fichiers journaux mieux que Apache.
Un autre côté à cet égard est que vous n'aurez plus une vue de serveur agrégé (vous aurez plus besoin d'agréger les journaux séparément ou d'utiliser un paramètre Apache supplémentaire ou peut-être une autre méthode?).
Je serais prudent contre l'utilisation de Google Analytics (ou de tout suivi basé sur JavaScript) pour la surveillance de la bande passante du serveur, car vous comptez sur le client pour signaler via JavaScript. GA= NE SONT PAS RAPPORTER DES PERSONNES QUI DISPONS QUELS JavaScript Désactivé ainsi que tous les crawlers/araignées/robots.
Un léger modification de la réponse acceptée en supposant qu'il existe en fait plusieurs vhosts sur le serveur (et donc plusieurs sites.com.access_log's). Cela triera et énumérera chaque Vhost
for f in *.access_log ; do echo `awk '{SUM+=$10}END{print SUM/1024/1024}' $f` $f ; done | sort -rn | more
et pour un répertoire de journaux gzippés
for f in *.access_log.*.gz ; do echo `zcat $f|awk '{SUM+=$10}END{print SUM/1024/1024}'` $f `stat -c%z $f`; done | sort -rn | more
Voici quelques regex pour analyser le format de journal proposé par Xerxes.
\ [([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 +)
Exemple de journal:
[12/Janvier/2011: 14: 25: 04 +0000] 157.157.12.206 Files.Hjaltijakobsson.com/581 669 [12/Janv./2011: 14: 25: 04 +0000] 157.157.12.206 Files.Hjaltijakobsson.com/624 747 [12/Janvier/2011: 14: 25: 04 +0000] 157.157.12.206 Files.Hjaltijakobsson.com /icons/blank.gif 687 186 [12/Janvier/2011: 14: 25: 04 +0000] 157.157. 12.206 Files.hjaltijakobsson.com /icons/comprimé.gif 693 188 [12/Janvier/2011: 14: 25: 04 +0000] 157.157.12.206 Files.Hjaltijakobsson.com /favicon.ico 592 512
Allumettes:
Sous-liste 1 (jour du mois): 12
Sous-Pattern 2 (mois ABBR.): Jan
[.____] Sous-Pattern 3 (année): 2011
[.____] Sous-Pattern 4 (hôte des visiteurs): 157.157.12.206
Sous-Pattern 5 (hôte virtuel): fichiers.hjaltijakobsson.com
[.____] Sous-Pattern 6 (octets entrants): 581
[.____] Sous-Pattern 7 (octets sortants): 669
À votre santé.
HMM, vous pouvez obtenir le mal avec des iptables et une correspondance de chaîne pour enregistrer les paquets pour les rapports ultérieurs. Ne fonctionnera cependant que pour les connexions non SSL.
Ou quelque chose de protocole et de session conscient comme Snort pourrait être cornée de chaussures à usage ...