Simounet.net – Blog Blog d'un opengeek passionné

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.

goaccess-logo

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

GoAccess HTML report screenshot

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 c pour modifier le format du log
  • touche d pour modifier la date
  • touche t pour 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.

logo de Git

  1. cd /chemin/base/depot/
  2. git subtree split -P chemin/relatif/dossier -b nomdelanouvellebranche
  3. mkdir /chemin/absolu/nouveaudossier && cd /chemin/absolu/nouveaudossier
  4. git 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.

you-shall-not-slack

Quels sont les principaux avantages d'IRC

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 ?

Her Story, une expérience vidéoludique à essayer

Avec Her Story, jeu indé sorti en juin 2015, Sam Barlow, papa des Silent Hill, nous propose un style différent, loin des sentiers battus. Son gameplay se résume à l'action de taper des mots dans un moteur de recherche. Vous piochez ainsi dans une base de données qui lie ces mots à des vidéos qui nous permettent d'en apprendre plus sur une enquête policière. Je ne vous en dirai pas plus sur l'histoire afin de ne pas en gâcher la découverte mais pour ma part, je me suis pris au jeu.
La durée de vie est raisonnable bien qu'un peu courte. Comptez environ 4 heures pour en venir à bout. Le challenge réside surtout dans notre volonté d'accéder à l'intégralité de la base de données.

Je trouvais important de soutenir ce type d'initiatives créatives. Ce jeu pourrait très bien servir de matière première pour un autre souhaitant aller encore plus loin. Ce système pourrait être intégré à un autre plus vaste permettent d'y ajouter des embranchements, nous laissant maître de la conclusion.
Her Story est disponible sur la plate-forme Humble Store pour 3,59€ jusqu'au 29 janvier 2015 et sinon vous devrez débourser 5,99€.

her-story-sam-barlow

 

Liens utiles :

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