GoAccess pour analyser ses logs Apache
Pourquoi utiliser GoAccess ?
Dans mon cas, je souhaite me débarrasser de Google Analytics dont je n'utilise qu'1% des fonctionnalités. Je cède à ce dernier beaucoup trop d'informations concernant les visiteurs de mes sites. L'idée était de continuer à connaître les pages les plus visitées, les erreurs rencontrées et une potentielle chute de fréquentation pouvant provenir d'un problème technique. Quoi de plus fiable que d'analyser des logs en remplacement d'un bout de JavaScript souvent bloqué par UBlock Origin ou Adblock Plus.
En résumé :
- je donne moins d'informations à Google
- j'évite le chargement d'un script externe à mes visiteurs
- je peux quand même continuer à vérifier que tout va bien
La seule contrepartie dans mon cas étant la récupération des logs chez OVH que je pense automatiser dans la foulée.

Installation
Un paquet GoAccess est sûrement disponible pour votre distribution Linux ou vous pouvez le compiler depuis les sources. Je vous renvoie pour cela à la documentation d'installation.
Commandes
Dans les exemples suivants, j'utiliserais le fichier de log présent sur mon disque à l'emplacement /var/log/apache2/access.log.
Utilisation de base
goaccess -f /var/log/apache2/access.log
Ignorer les crawlers/bots/spiders avec l'option --ignore-crawlers
goaccess -f /var/log/apache2/access.log --ignore-crawlers
Lire des logs archivées
zcat /var/log/apache2/access.log*.gz | goaccess
Génération d'un rapport au format HTML
goaccess -f /var/log/apache2/access.log --ignore-crawlers -a -o report.html

Lancer un tableau de bord d'analyse en temps réel
goaccess -f /var/log/apache2/access.log -o /var/www/report.html --real-time-html
Remplacez /var/www/report.html par un endroit accessible par votre serveur web. Il ne vous restera plus qu'à accéder à ce dashboard via l'adresse https://<votre-domaine>/report.html.
Choisir le bon parseur pour Apache
Il se peut que la commande précédente n'apporte pas le résultat escompté. En effet, les logs peuvent être construits de nombreuses manières. Pour que GoAccess comprenne les données issues du fichiers que vous lui fournissez, utilisez l'option -c.
goaccess -f /var/log/apache2/access.log -c
Un menu va vous proposer les différents parseurs disponibles. Pour d'Apache, nous utiliserons le premier : NCSA Combined Log Format. Le deuxième, NCSA Combined Log Format with Virtual Host, est à sélectionner lors de l'utilisation de virtuals hosts.
Vous pouvez à tout moment éditer les règles de parsing avec les touches suivantes :
- touche
cpour modifier le format du log - touche
dpour modifier la date - touche
tpour le temps
Les différentes options disponibles pour ces expressions régulières sont disponible sous l'encart SPECIFIERS du manuel de GoAccess.
Extraire un dossier d’un dépôt Git existant en conservant son historique
Au cours de la vie d'un dépôt Git, il peut nous arriver de vouloir extraire un dossier sans perdre l'historique des commits concernant les fichiers se trouvent à l'intérieur. Que ce soit dans un soucis de mutualisation, d'un mauvais choix d'architecture au départ ou encore d'un changement dans notre gestion du dépôt.
Cette opération nécessite une version de Git supérieure ou égale à la 1.7.11.

cd /chemin/base/depot/git subtree split -P chemin/relatif/dossier -b nomdelanouvellebranchemkdir /chemin/absolu/nouveaudossier && cd /chemin/absolu/nouveaudossiergit init && git pull /chemin/base/depot/ nomdelanouvellebranche
La branche nomdelanouvellebranche ne contiendra que le dossier que vous souhaitez extraire.
Slack, Mattermost, Discord ? Et si nous améliorions plutôt les clients IRC ?
Cela fait plus de quinze ans (point vieux con) que je crapahute sur IRC et voilà quelques temps maintenant qu'on essaie de me hyper sur des outils identiques mais centralisés et fermés sous couvert d'une meilleure UI et d'un tas de fonctionnalités dont je n'ai pas vraiment besoin.

Quels sont les principaux avantages d'IRC
- légèreté
- robustesse (du moment que le serveur ne date pas de l'âge de pierre, il pourra sans problème accueillir des milliers de personnes)
- décentralisation (possibilité d'utiliser des serveurs communautaires ou de créer le sien)
- protocole standard sur lequel n'importe quel outil open-source peut se brancher
Quels sont les principales faiblesses d'IRC
- non-conservation des discussions sur les serveurs les plus utilisés entraînant une complexité pour s'en servir d'archives
- non-persistance du compte de l'utilisateur lorsqu'il se déconnecte ne pouvant du coup plus être joint par ce biais
- commandes pas évidentes à prendre en main pour les novices
- aspect peu intuitif lorsqu'on utilise des clients à l'ancienne
Propositions d'améliorations
Les plus gros problèmes résolus par les applications telles que Slack sont le côté « user friendly » quoi que le concept de liste de salons reste compliqué à aborder pour des novices, l'archivage et la recherche dans les échanges passés. Pour ne manquer aucun échange, il est possible de laisser son client ouvert mais soyons honnêtes, ce n'est pas une solution recommandable. Pour les plus geeks/connectés, il est possible d'utiliser un bouncer comme ZNC qui vient se placer entre le serveur et le client et permet d'afficher les messages lors de la reconnexion de son utilisateur. Vous l'aurez compris, ce n'est pas à la portée de tous.
Des services externes tels que BotBotMe qui agrège les discussions et les rend consultables via un site annexe peut faire office de contournement mais pas de vraie solution.
Ok pour de nouveaux services, mais ouverts et décentralisés s'il vous plaît
Pour ma part, le problème est pris à l'envers. Les développeurs réinventent la roue (IRC et Jabber/XMPP) et proposent ensuite des ponts entre ces « anciens » outils et les leurs là où je trouverais plus pertinent de développer de nouvelles idées sur ces vieilles briques pour les enrichir.
Des clients tels que KiwiIRC vont dans le bon sens en donnant un coup de jeune à l'IRC qui souffre d'une image austère bien méritée par son manque d'innovation et permettent de répondre à des besoins modernes, tels que l'affichage in-app de contenus multimédias ou l'accès simplifié aux commandes.
Pourquoi ne pas appeler XMPP à la rescousse ?
En tant qu'habitué satisfait d'IRC, je ne souhaite pas le remplacer. Cela ne m'empêche pas d'utiliser XMPP (anciennement Jabber) mais je le trouve moins adapté pour des salons de discussions. La création de compte, la demande préalable d'accès à un contact et l'adresse de connexion à un salon sont autant d'obstacles à son adoption là où un webchat IRC permet à un utilisateur de se joindre à une discussion en quelques secondes.
Je suis conscients que des efforts sont en cours (merci Movim et Jappix), mais si tous ces développeurs qui passent du temps et de l'argent sur des nouveautés investissaient sur les technos précédemment citées, nous aurions déjà des applications qui déchirent et satisfont tout le monde tout en étant pérennes.
En conclusion
En partisan de l'open source, je ne veux pas utiliser une solution de communication non libre. Du point de vue de la sécurité, qui me certifie que mes conversations sont bien confidentielles si je souhaite qu'elles le soient ? Du point de vue de la pérennité, qu'adviendra-t-il de ces données lorsque le service utilisé décidera de fermer ses portes ?
Si vous souhaitez (re)tester le monde merveilleux d'IRC, je vous attends sur le chan #welcome du serveur Freenode. N'hésitez pas à me faire signe, pseudo Simounet what else. Quelles sont les features qui vous semblent incontournables sur les outils que je rechigne à utiliser et qui n'existent pas sur IRC (ou ses clients) ? Qu'est-ce qui vous retient d'utiliser IRC ?
RIP David Bowie (8 Janvier 1947 – 10 Janvier 2016)
Et dire que je comptais commencer l'année du blog sur une note positive. Je crois que c'est raté après l'annonce ce matin du décès de David Robert Jones, plus connu sous le pseudonyme de David Bowie. 27 albums, plus de 50 ans de carrière, incontestable génie de la scène avec un besoin incessant de se renouveler et de s'essayer à tout. Voilà ce que je retiendrai de ce personnage hors norme. Difficile d'en faire un résumé tant son œuvre est grande, diverse et riche en titres légendaires. Je ne peux que vous conseiller d'aller écouter le Page Wikipedia du best of Bowie sorti en 2002 qui rassemble tous les "vieux" classiques de l'homme aux 1000 visages.
Ground Control a perdu le contact avec son Major Tom mais sa voix résonnera encore longtemps dans nos oreilles.
David Bowie - Space Oddity
David Bowie - Life On Mars?
David Bowie - The Man Who Sold The World





