Installation et configuration de GoAccess sur Rocky Linux 8.6
GoAccess est un logiciel d’analyse de fichiers de log de site Web en temps réel
Prérequis
Il n’existe pas de package RPM pour Rocky Linux. Nous allons donc l’installer à partir des sources. Pour cela, nous devons installer les packages nécessaires à sa compilation, via la commande suivante :
|
|
Nous allons aussi installer le package “libmaxminddb-devel” afin d’avoir le support des bases de données GeoIP, via la commande suivante :
|
|
Installation de GoAccess
Avant de pouvoir procéder à la compilation et l’installation de GoAccess, nous devons récupérer les sources et décompresser l’archive ainsi récupérer. Pour cela, on tape la commande suivante :
|
|
Maintenant que nous avons décompressé l’archive, nous allons procéder à la compilation de GoAccess. Voici les commandes :
|
|
- enable-debug : On ajout le support du mode debug, que l’on pourra activer via l’option adéquate le moment venu, si nécessaire.
- enable-geoip : On active le support d’une base GeoIP afin de connaitre la ville et le pays des visiteurs
- enable-utf8 : On active le support UTF8
- sysconfigdir : On spécifie le répertoire dans lequel sera stocké le fichier de configuration de GoAccess
- with-openssl : On active le support SSL/TLS
Vous trouverez le fichier binaire dans le répertoire /usr/local/bin/ et le fichier de configuration dans /etc/goaccess/
Configuration de GeoIP
Nous allons créer les répertoires qui contiendront les bases de données GeoIP. Pour cela, on tape la commande suivante :
|
|
Maintenant, nous devons créer un compte gratuit sur le site Maxmind et générer une licence afin de pouvoir récupérer les bases de données GeoLite2 sous forme de fichiers mmdb
Une fois le compte créé et la licence généré, il faut récupérer les fichiers sur votre ordinateur et les transférer via un “scp” ou “rsync” sur votre serveur. Je ne détaille pas la commande. Il existe plein de tuto sur internet.
Une fois les fichiers transférer sur votre serveur, il faut les décompresser. Pour cela, on tape la commande suivante :
|
|
On peut installer un package qui fourni un binaire pour récupérer automatiquement la dernière version des bases de données. Pour cela, on tape la commande suivante :
|
|
Afin de pouvoir faire fonctionner le script, nous devons indiquer un “UserId” et une clé de licence que vous trouver dans votre compte Maxmind. Il nous faut aussi indiquer le type de base données à utiliser ainsi que le répertoire dans lequel seront stockées ces dernières. Pour cela, on édite le fichier de configuration adéquat, via la commande suivante :
|
|
Voici les différents champs à remplir :
|
|
Maintenant que nous avons renseigner les informations nécessaires à la mise des bases de données, nous pouvons créer le script. Pour cela, on tape la commande suivante :
|
|
On y met le contenu suivant :
|
|
On rend le script exécutable via la commande suivante :
|
|
Plutôt que d’utiliser une crontab pour l’exécution du script, nous allons utiliser les possibilités offertes par systemd. Nous allons maintenant commencer par créer un service systemd. Pour cela, on tape la commande suivante :
|
|
On y met le contenu suivant :
|
|
Le service systemd précédemment créé sera lancé par un timer systemd qui sera lancer tous les lundi à 00:00. Pour cela, on tape la commande suivante :
|
|
On y met le contenu suivant :
|
|
Afin que systemd puissent prendre en compte le service et le timer que nous venons de créer, nous devons recharger la liste des services et timers disponibles. Pour cela, on tape la commande suivante :
|
|
Nous pouvons maintenant activer et démarrer le timer précédemment créer, via les commandes suivantes :
|
|
On peut vérifier que le timer est actif, via la commande suivante :
|
|
Configuration de GoAccess
Nous allons maintenant procéder à la configuration de GoAccess. Pour cela, on tape la commande suivante :
|
|
Pour connaitre les options de configurations et savoir à quoi elles servent, je vous invite à vous référer à la documentation disponible ici. Moi, je vais indiqué les principales choses à modifier :
|
|
Nous allons créer le répertoire qui contiendra la page HTML de GoAccess. Pour cela, on tape la commande suivante :
|
|
Si vous avez déjà un fichier de log et que vous souhaitez importer les logs dans GoAccess, vous pouvez lancer cette commande :
|
|
Laisser le tourner le process environ 1 minutes, voir plus en fonction de la taille des logs à importer, puis tuer le processus, afin de créer les différentes bases de données de GoAccess. Elles se trouvent dans le répertoire /opt/goaccess/data/
Afin de pouvoir lancer automatiquement GoAccess au démarrage du serveur, nous allons créer un service systemd. Pour cela, on tape la commande suivante :
|
|
On y copie le contenu suivant :
|
|
Nous pouvons maintenant activer et démarrer le service précédemment créer, via les commandes suivantes :
|
|
Installation de Nginx
Afin de pouvoir utiliser la version de GoAccess, nous allons installer le serveur web Nginx. Pour cela, on tape la commande suivante :
|
|
Nous devons créer le fichier de configuration du VirtualHost de Nginx. Pour cela, on tape la commande suivante :
|
|
On y copie le contenu suivant :
|
|
On vérifie que qu’il n’y a pas d’erreur dans la configuration de Nginx. Pur cela, on tape la commande suivante :
|
|
Maintenant on active et on démarre le service Nginx, via la commande suivante :
|
|
Maintenant, vous pouvez vous connecter sur votre site web pour voir les statistiques : http://www.mon-domaine.fr/stats/index.html