Skip to content

Analyse des KPI de votre blog avec NGINX et GoAccess

Published: at 17:57

Voici une procédure complète et fonctionnelle pour récupérer les KPI de votre blog à l’aide de NGINX, en synchronisant les logs entre un serveur Ubuntu et un ordinateur macOS, puis en analysant les logs avec GoAccess sur macOS :

1. Configurez NGINX pour la journalisation étendue sur le serveur Ubuntu :

a. Ouvrez le fichier de configuration de NGINX (nginx.conf) et localisez la section http :

http {
    ...
}

b. Dans cette section, ajoutez la ligne suivante pour activer la journalisation étendue :

log_format timed_combined '$remote_addr - $remote_user [$time_local] '
                          '"$request" $status $body_bytes_sent '
                          '"$http_referer" "$http_user_agent" '
                          '$request_time $upstream_response_time $pipe';

c. Localisez et modifiez les lignes access_log et error_log dans le fichier de configuration de votre site (par exemple, /etc/nginx/sites-available/yourdomain.com ou /etc/nginx/conf.d/yourdomain.com.conf) :

access_log /var/log/nginx/access.log timed_combined;
error_log /var/log/nginx/error.log;

d. Enregistrez et fermez le fichier, puis rechargez la configuration de NGINX avec la commande suivante :

sudo nginx -s reload

2. Installez GoAccess sur votre macOS :

a. Installez GoAccess à l’aide de Homebrew. Si vous n’avez pas encore Homebrew, installez-le en suivant les instructions sur https://brew.sh/. Ensuite, installez GoAccess avec la commande suivante :

brew install goaccess

3. Configurez la synchronisation automatique des logs NGINX depuis le serveur Ubuntu vers votre macOS :

a. Installez rsync sur votre serveur Ubuntu :

sudo apt-get update
sudo apt-get install rsync

b. Sur votre macOS, générez une paire de clés SSH (si vous n’en avez pas déjà une) :

ssh-keygen -t rsa -b 4096

c. Copiez la clé publique sur le serveur Ubuntu :

ssh-copy-id user@yourserver.com

d. Créez un script bash sur votre macOS pour synchroniser les logs :

touch sync_nginx_logs.sh
chmod +x sync_nginx_logs.sh
open -a TextEdit sync_nginx_logs.sh

e. Ajoutez les lignes suivantes dans le fichier de script :

#!/bin/bash
export LANG="en_US.UTF-8"
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress user@yourserver.com:/var/log/nginx/access.log /path/to/local/log/folder/access.log

f. Enregistrez et fermez le fichier.

4. Planifiez la récupération automatique des logs et l’analyse avec GoAccess sur macOS :

a. Ouvrez votre crontab avec la commande suivante :

env EDITOR=nano crontab -e

b. Ajoutez la ligne suivante pour exécuter le script de synchronisation et GoAccess toutes les heures (vous pouvez ajuster la fréquence selon vos besoins) :

0 * * * * /path/to/sync_nginx_logs.sh && LANG="en_US.UTF-8" goaccess /path/to/local/log/folder/access.log --log-format=COMBINED --date-format=%d/%b/%Y -a -o /path/to/report.html

c. Enregistrez et fermez le fichier.

Maintenant, votre macOS récupérera automatiquement les logs NGINX depuis le serveur Ubuntu et analysera les logs avec GoAccess à la fréquence définie. Le rapport HTML généré contiendra les KPI de votre blog, tels que le nombre de requêtes, les requêtes par seconde, les codes d’état HTTP, le temps moyen de réponse, les pages les plus visitées, les sources de trafic, les agents utilisateurs, etc. Vous pouvez utiliser ces informations pour optimiser la performance de votre blog et améliorer l’expérience utilisateur.