Forum général.général access.log et webalizer

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
déc.
2004
Hello,

voila mon provider fournit un access.log.gz pour mon site, qui est alors analysé par webalizer. Jusqu'a il y a 2 mois, tout marchait bien, a peu pres 2000 visites par jour. Depuis, c'est ératique, 2000 un jour, 200 les deux jours d'apres, tout en ayant une activité normale sur le site (meme nombre de posts/articles/news).
Je demande gentillement a mon hébergeur quel peut en etre la cause :
"Vous avez des pics de visites, c'est normal."

Comme je prefere les dialogues argumentés, je download mon fichier de log, fait tourner webalizer dessus : a peu pres 50% des enregistrements sont ignorés.
Si j'ajoute l'option FoldSeqErr pour ignorer les erreurs de timestamp, j'obtiens 4000 visites un jour, 400 le lendemain, mais en moyenne je retombe sur mes pattes : 2000 par jour.
je passe awstats dessus avec l'option 'showcorrupted' : ils apparait que la moitié des enregistrements sont mélangés (le timestamp est inférieur aux l'enregistrement d'avant)(apparemment c'est par bloc).
Comme le probleme n'est pas lié a des logrotates (puisque c'etait le premier run), j'imagines juste que mon provider mélange ces fichiers de logs (load-balancing ?).

1. Existe t-il un outil pour dépatouiller tout ca ? (classer les logs par timestamp croissant)
2. Qu'est ce que je peux raconter a mon provider pour qu'il me réponde pas avec des gentillesses "pics de visites" un peu hors-sujets ? (enfin qu'il me prenne au sérieux)
  • # un 'sort ' sur le champ date du log...

    Posté par  . Évalué à 2.

    Il est possible qu'il aie plusieurs serveurs en round robin
    et si ca se trouve il ne fait pas de "sort" sur les dates apres avoir fusionné les fichiers de log.


    tu peux peut etre utiliser un bout de script shell de cet acabit :

    for FIC in $LOGS/*.log
    do
    echo $FIC
    mv $FIC $FIC.old
    sort -t - -k 3 < $FIC.old > $FIC
    rm $FIC.old
    done

    Pour nos besoins nous avons cree une moulinette qui genere un fichier par jour ( en fonction des champs date de log), puis nous faisons le sort sur chaque fichier jour.

    Avoir 1 fichier / jour nous permet d'eventuellement relancer webalizer pour une période donnée ...
    • [^] # Re: un 'sort ' sur le champ date du log...

      Posté par  (site web personnel) . Évalué à 2.

      Il doit y avoir quelque chose comme ca car de temps en temps je remarque des access.log.xxx ou xxx est une location géographique, ou les fichiers appartiennent a root, et une fois par soir mon access.log est mis a jour.
      Mais ca devrait pas etre a eux de faire ca ?
      • [^] # Re: un 'sort ' sur le champ date du log...

        Posté par  . Évalué à 2.

        bah il me semble que c'est à eux de fournir des infos cohérentes..
        c'est pas vraiment à toi de connaitre leur infrastructure et de savoir si
        ils ont x serveurs frontaux en round robin ou en secours ...

        En meme temps la fourniture du fichier de logs est elle contractuelle?
        • [^] # Re: un 'sort ' sur le champ date du log...

          Posté par  (site web personnel) . Évalué à 2.

          Non. Par contre les spécifications de l'hébergements précisent :
          " Accès à des statistiques de consultations" (c'est vrai lesquelles ??? :-).
          Qu'est ce que je peux leur dire dans mon prochain mail pour éviter les trucs "vous avez des pics de visites"...
          • [^] # Re: un 'sort ' sur le champ date du log...

            Posté par  . Évalué à 1.

            Acces à des stats de consultation = une page ou ils ont généré des stats webalizer?


            Sinon pour le support , cherche dans un de tes access.log une "rupture" :
            c'est à dire un moment ou tu "recules dans le temps"

            Tu leur envoie le fragment de log en leur signalant que selon toi ca ne correspond pas vraiment à un pic de visites mais plutot à une anomalie dans leur outil de fusion de stats.
            • [^] # Re: un 'sort ' sur le champ date du log...

              Posté par  (site web personnel) . Évalué à 2.

              ouais, une page ou les stats webalizer sont affichés. Ce qui est bizarre c'est qu'il faut quand meme que j'efface le access.log a la main...
              Pour la rupture ca va pas etre evident de trouver ca dans 400000 enregistrements, mais je vais essayer.
              • [^] # Re: un 'sort ' sur le champ date du log...

                Posté par  (site web personnel) . Évalué à 3.

                Facile.
                $ nl -n ln access.log | egrep -1 ^`perl -ne 'split /\s+/ ; $_ = $_[3]; s/\/\w{3}\/\d{4}//; s/\D//g; die if $last_line > $_; $last_line = $_; END{ print $. }' < access.log`[[:blank:]]
                Affichage de la première ligne qui fait un retour dans le temps ainsi que la précédente et suivante (avec les numéros de lignes). Ca risque de foirer un peu sur les changements de mois et d'années mais pour les logs d'un mois ça devrait marcher. Enfin en admettant que le format de log d'Apache soit le même que chez moi.

                pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # logresolvemerge

    Posté par  . Évalué à 2.

    http://awstats.sourceforge.net/docs/awstats_tools.html#logresolveme(...)

    Awstats fourni un script qui doit permettre de résoudre les soucis de fusion de logs sur plusieurs serveurs..
    "logresolvemerge allows you to merge several log files into one output,
    sorted on date. It also makes a fast reverse DNS lookup to replace
    all IP addresses into host names in resulting log file. "
    • [^] # Re: logresolvemerge

      Posté par  (site web personnel) . Évalué à 2.

      J'ai un seul et unique fichier de logs, ca marche aussi ou alors il avance que sequentiellement sur plusieurs fichiers en fonction du timestamp ?
      • [^] # Re: logresolvemerge

        Posté par  . Évalué à 1.

        "Each of thoose files must be already independently sorted itself"
        ( dans le source perl de la bebete... )


        bon ben utilise la commande sort .. :/
      • [^] # Re: logresolvemerge

        Posté par  (site web personnel) . Évalué à 1.

        Il avance avec plusieurs pointeurs sur chacun des fichiers en fonction du timestamp.
        logresolvemerge.pl pourrait donc etre utile a ton provider pour fusionner correctement ses fichiers mais pas à toi car le fichier est dejà fusionné.
        Autre solution: Utiliser AWStats et modifier la constante NotSortedOrderRecordTolerance (je crois en dur dans le script awstats.pl) pour la mettre à 24h au lieu de 2h avec la 6.2. Les hits et pages vues seront alors juste mais malheureusement, les pages d'entrée et sorties des visites seront toujours un peu faussé.

        Reste le tri.
        Avec AWStats, tu peux inclure le tri au sein meme du nom de fichier
        LogFile="sort xxx access.log |"
        avec xxx = les options sort qui vont bien pour trier sur la date

        Expert ERP CRM Open Source et (Dolibarr ERP CRM, Odoo, ...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.