J'ai un peu repensé a ton probleme: tu peux utiliser la stack ELK (Elasticsearch, Logstash, Kibana) c'est suffisamment puissant pour ce que tu veux faire.
Le principe et les produits requis:
Logstash:
https://www.elastic.co/products/logstash . C'est un outil de collecte, analyse et stockage de journaux (logs) (un ETL dans le jargon: Extract-Transform-Load). En entrée il sait géré et connait plein de types de format de logs comme syslog ou les logs d'apache2. Puis il analyse les données et les met dans un format commun via des filtres programmables. On peut ensuite exporter les données vers ce qu'on veut pour stockage ou traitement. Notamment ici on va exporter vers Elasticsearch.
Elasticsearch:
https://www.elastic.co/products/elasticsearch . C'est moteur de recherche distribué basé sur Apache Lucene. Il va stocker les données et permettre tout sorte de requêtes, recherches et analyses dessus.
Kibana:
https://www.elastic.co/products/kibana . C'est la partie graphique/visuelle d'Elasticsearch qui permet d'afficher presque tout ce qu'on souhaite. Ca permet de faire des Dashboards temp réel par exemple ou des graphes/rapports analytiques.
Bases Maxmind Geolite:
http://dev.maxmind.com/geoip/legacy/geolite/ . Ce sont les bases de geoloc gratuites de Maxmind. il y a 3 bases: pays, ville et AS. chacune avec sa version IPv4 et IPv6. donc 6 bases en tout. Elles sont mises a jour tout les mois.
Les trucs a lire pour comprendre puis faire soi-meme (histoire de s'occuper pendant les vacances...):
A.
https://www.linode.com/docs/databases/elasticsearch/webserver-logs-with-elk-stackC'est une simple demo de comment installer et configurer ELK pour visualiser des infos sur les logs d'Apache. Y'a la tout ce qu'il faut pour commencer et faire une config simple. Si on ne veut pas 'saloper' une machine réelle on peut faire tourner tout dans Docker. On trouve des compositions Docker toute prêtes comme :
https://github.com/deviantony/docker-elk par exemple.
B.
https://www.digitalocean.com/community/tutorials/how-to-map-user-location-with-geoip-and-elk-elasticsearch-logstash-and-kibanaUn exemple pour ajouter un traitement dans Logstash pour utiliser une base Geolite pour obtenir les coordonnées geo des IP présentes dans les logs d'un serveur web NGinx. Suivi d'une visualisation en carto dans Kibana.
Le boulot à faire (ou trouver sur le Net si quelqu'un a déjà fait ca mais j'ai rien trouvé):
- adapter B (nginx) a A (Apache) puis modifier le tout pour obtenir l'AS avec les 2 bases qui vont bien (IPv4 et IPv6)
- en option: adapter A pour injecter aussi les anciens logs archivés (opération à faire qu'une fois).
- créer les stats voulues dans Kibana.
Ca ne me semble pas bien compliqué à faire et ca m’intéresse pour un autre projet. Mais pendant les 2 semaines qui viennent la je n'ai vraiment pas le temps de me pencher la dessus plus que ca.
Donc si Vivien ou quelqu'un d'autre se sent d'attaque pour tenter le coup , a vous de jouer. Sinon je verrais en janvier pour bricoler un truc.