AWStats revisité

Print E-mail
Technologie - Général
Tuesday, 17 January 2012 12:53

Statistiques Depuis plusieurs mois, j'ai négligé de Piwik , le merveilleux système de statistiques que j'ai utilisé au cours des trois dernières années. Piwik a beaucoup évolué depuis que j'ai commencé à utiliser il n'utilise plus des graphismes Flash, étroitement contrôlée maintient la taille de votre base de données, il est plus rapide et a de nouveaux plugins qui en font une parfaite gratuitement Google Analytics concurrent et ils font grimper progressivement mis en positionnement concurrentiel des systèmes statistiques . Mais ... il a un énorme problème: la consommation de mémoire est totalement inabordable pour une machine avec peu de RAM, ce qui est le goulot d'étranglement majeur d'un serveur web avec Apache , alors quand je suis allé à un serveur Linode VPS , avec la limitation RAM qui est, a été la première chose que j'ai eu à sacrifier. Un jour, je vais arrêter d'essayer lighttpd ou voir si oui ou non le module worker MPM ainsi que l'amélioration fonctionnalité de gestion de la mémoire, mais pour le moment, environ 128 Megs consommer m'a scripts Piwik sont entièrement impraticable.

AWStats est un véritable "viejuno" Web proviennent Geocities , mais bien fait, vous avez à faire, ne consomme que la RAM et la lecture des résultats obtenus directement à partir de l'logs Apache de sorte que vous ne manquez pas une seule visite. Toute autre méthode (en utilisant javascript client, PHP sur le serveur, etc.) Est sensible à la perte de données dans certaines circonstances.
Pantalla principal de Awstats

Le fait qu'il offre en temps réel des données peut être atténué en faisant les journaux sont traitées en intervalles plus petits, ou même l'ajout d'un lien de sorte qu'ils soient traités à la demande. Les statistiques quotidiennes de filtre que par défaut, vous ne pouvez pas également être atteint par l'extension de jour en jour aussi voir dans cette entrée.

Les seuls prérequis sont d'avoir installé Perl (requis pour exécuter des scripts awstats) et notre serveur Web, dans cet exemple, il est Apache. Installation sur une Debian est aussi facile que jamais (apt-get install awstats), mais la version dans le référentiel est 6.9.5 stable avec plus de deux ans. Si vous voulez travailler avec la dernière version (7.0 ou 7.1 en version bêta dès maintenant) il va télécharger le package à partir d'ici et décompressez-le sur votre serveur dans le répertoire / usr / local. Tout ce que nous allons voir ci-dessous est que nous sommes d'installer cette seconde méthode.

Nous créons ensuite un hôte virtuel dans Apache pour faire de notre accès à des statistiques ou d'inclure les lignes suivantes (tirées du modèle que nous avons dans le fichier / usr / local / awstats / tools / httpd_conf), par exemple, l'instance par défaut c'est:

 1
2
3
4
5
6
7
8
9
10
11
12
 Alias ​​/ awstatsclasses "/ usr / local / awstats / wwwroot / classes /"
Alias ​​/ awstatscss "/ usr / local / awstats / wwwroot / css /"
Alias ​​/ awstatsicons "/ usr / local / awstats / wwwroot / icon /"
Alias ​​/ awstatsjs "/ usr / local / awstats / wwwroot / js /"
ScriptAlias ​​/ awstats / "/ usr / local / awstats / wwwroot / cgi-bin /"

"/usr/local/awstats/wwwroot"> <Directory
     Options Aucune
     AllowOverride None
     Ordre allow, deny
     Allow from all
</ Directory> 

Une fois édité, nous devons demander à Apache de relire la configuration prennent effet ces lignes (service apache2 reload).

Maintenant, nous allons créer un fichier de configuration pour awstats. Nous commençons à partir du modèle pour être dans / usr / local / awstats / wwwroot / cgi-bin / awstats.model.conf. La copie dans le fichier / etc / awstats (que nous avons créé ci-dessus) avec un nom distinctif (pour awstats.miweb001.conf exemple) et le modifier en fonction de votre installation. Une grande attention étant le miweb001 particules doit identifier le site dont les statistiques que nous voyons et que nous aurons à utiliser d'autres instructions ci-dessous. Les lignes seraient modifiées sur le défaut (? Et ne semblent pas consécutivement comme ici hein) sont les suivants:

 1
2
3
4
5
6
7
8
9
 LogFile = "/ var/log/apache2/apache2-myweb001-access.log"
SiteDomain = "www.miweb001.es"
HOSTALIASES = "www.miweb0001.com www.miweb001.net"
Dnslookup = 1
DirDate = "/ var / lib / awstats"
DirCgi = "/ awstats"
DirIcons = "/ awstatsicons"
AllowToUpdateStatsFromBrowser = 1
AllowFullYearView = 3 

Les trois premières définissent respectivement l'emplacement du fichier journal de grande instance d'Apache, le nom du site et tout emprunt sous lequel on peut y accéder (séparés par des espaces de ces). La quatrième ligne permet une résolution complète par l'IP du DNS pour l'accès. À la cinquième ligne nous où nous voulons arrêter les fichiers résultant de traiter les fichiers log (n'oubliez pas de le créer!). Dans le sixième et le septième est défini, où les différentes composantes de awstats fonction précédemment définie dans le fichier de configuration d'Apache par exemple. Les deux dernières lignes nous font voir un lien qui permet d'actualiser les données à tout moment et de permettre la possibilité de rapports statistiques d'un an.

Il ya beaucoup d'autres paramètres intéressants ou utiles pour activer les plugins, des fonctionnalités supplémentaires, la personnalisation, etc, mais je vous recommande de le jeter à travailler uniquement avec ce qui est le minimum et ensuite vous vous procurer l'expérience d'autres choses. Surtout si vous n'avez pas beaucoup d'expérience dans ces conflits.

Maintenant, nous allons planifier cron de notre machine à transformer les grumes apache, par exemple, toutes les 15 minutes. Créez un fichier appelé / etc / awstats / cron-awstats.sh, nous donnons des autorisations d'exécution et de copier les suivantes dedans:

 1
2
3
 #! / Bin / sh
perl / usr / local / awstats / wwwroot / cgi-bin / awstats.pl-config = miweb001-mise à jour
perl / usr / local / awstats / wwwroot / cgi-bin / awstats.pl-config = miweb001-journée de mise à jour databasebreak = 

Regardez attentivement les particules en dessous de la config sur les deux lignes (miweb001) doit être exactement le même que figure dans le nom du fichier de configuration que nous avons créé ci-dessus (awstats. miweb001. Conf). Eh bien, maintenant éditer le fichier / etc / crontab et ajoutez à la fin de celle-ci les éléments suivants:

 1
 * / 15 * * * * root / etc / awstats / cron-awstats.sh> / dev / null 

Et prête. Nous avons un peu de bricolage mineures, mais maintenant toutes les 15 minutes explorera logs du serveur apache et nous pouvons vérifier les informations déjà traitées à l'adresse suivante. Notez, là encore, la particule miweb001:

http://ip-del-servidor/awstats/awstats.pl?config=miweb001

Si, comme d'habitude, notre rompu fichiers journaux du système, nous devons éviter de perdre le traitement de la dernière minute avant une rotation. Pour ce faire éditer le fichier / etc/logrotate.d/apache2 et en dessous de la ligne où il est dit prerotate ré-exécuter la procédure qui appelle les scripts awstats:

 1
2
 prerotate
     / Etc / awstats / cron-awstats.sh> / dev / null 

La dernière chose à faire est que nous activer la possibilité d'afficher des rapports quotidiens. Nous allons utiliser l'extension Day by Day . Pour installer et configurer doivent télécharger la dernière version , décompresser et copier les deux fichiers javascript (de jour en jour et le jour head.js-par-jour-end.js) dans / usr / local / awstats / wwwroot / js /. Ensuite, éditez le fichier de configuration awstats (rappelons que dans notre exemple est appelé awstats.miweb001.conf et est dans le fichier / etc / awstats) et remplacer les valeurs de deux paramètres et HTMLHeadSection HTMLEndSection (près de la fin du fichier) par les lignes suivantes:

 1
2
 HTMLHeadSection = "<script language=javascript src="/awstatsjs/day-by-day-head.js"> </ script>"
HTMLEndSection = "<script language=javascript src="/awstatsjs/day-by-day-end.js"> </ script>" 

Une fois cela fait, notre écran principal s'affiche avec un bandeau awstats au sommet où nous pouvons choisir un jour particulier et, ce faisant, le graphique fera apparaître heures tribunal détail. Les données restantes seront aussi visés le jour choisi. Pour revenir à la vue mois en cliquant sur "Retour au rapport mensuel" du bandeau supérieur.
Pantalla principal de Awstats con la extensión Day by Day

Si vous avez d'autres exemples dans notre serveur Web séparé et veulent également obtenir leurs stats suffit de répéter chacune d'elles, deux des étapes ci-dessus:

  • Créer un fichier de configuration séparé dans / etc / awstats avec les données pertinentes. Soyez sûr d'inclure les dernières lignes que nous avons vu pour la Journée extension par jour.
  • Ajouter quelques lignes supplémentaires correspondant à la nouvelle instance dans le fichier / etc / awstats / cron-awstats.sh

L'URL à afficher les statistiques de ces nouveaux organismes sera également différente, bien sûr. Et n'oubliez pas que les différentes particules, nous avons utilisé dans le nom du fichier de configuration va nous permettre de le construire.

UPDATE: Il ya quelques mois apparu Apache2Piwik un script qui importe les logs Apache pour Piwik base de données. Nous aurons à jeter un oeil et si la consommation de mémoire est faible aussi bien revenir pour en parler ici ...

Partagez-le: email PDFPrint Identi.ca Twitter Facebook del.icio.us Diigo FriendFeed Bitacoras.com Netvibes Meneame BarraPunto Wikio LinkedIn Google Buzz Google Bookmarks Live MisterWong Technorati


Font

Trackback(0)
Comentaris (0)Add Comment

Escriu un comentari

security code
Escriu els caràcters de la imatge


busy