GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment installer GoAccess Web Log Analyzer sur Rocky Linux 8

GoAccess est un analyseur de journaux léger open source qui peut lire et analyser des fichiers journaux de plusieurs formats, notamment Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, Caddy, etc. Il est écrit en langage C et utilise la bibliothèque ncurses pour son interface de tableau de bord, accessible depuis la ligne de commande.

Il peut générer des rapports au format HTML, JSON et CSV, qui peuvent être partagés avec d'autres. Vous pouvez même générer des rapports HTML en temps réel qui peuvent être affichés via un lien public.

Dans ce didacticiel, vous apprendrez à installer GoAccess Analyzer sur un serveur basé sur Rocky Linux et à le configurer pour lire les journaux Nginx et fournir des rapports en temps réel.

Prérequis

  1. Un serveur exécutant Rocky Linux 8.

  2. Un utilisateur non root disposant des privilèges sudo.

  3. Nginx exécuté sur le serveur pour accéder aux journaux.

  4. Assurez-vous que tout est mis à jour.

    Mise à jour $ sudo dnf

Étape 1 - Installer les dépendances pour GoAccess

La dernière version de GoAccess v1.5.2 n'est pas disponible dans le référentiel par défaut. Pour installer la dernière version de GoAccess, nous allons la créer à partir de la source. La première étape consiste à télécharger les dépendances nécessaires à la création du package GoAccess.

$ sudo dnf install ncurses-devel libmaxminddb-devel openssl-devel $ sudo dnf groupinstall 'Outils de développement'

Étape 2 - Télécharger et installer GoAccess

Téléchargez la dernière version de l'archive GoAccess. Vous pouvez trouver la dernière version de GoAccess sur la page de téléchargement officielle.

$wget https://tar.goaccess.io/goaccess-1.5.2.tar.gz

Extrayez les fichiers de l'archive.

$ tar -xzvf goaccess-1.5.2.tar.gz

Configurez et installez le package.

$ cd goaccess-1.5.2$ autoreconf -fi$ sudo ./configure --enable-utf8 --enable-geoip=mmdb --with-openssl$ sudo make$ sudo make install

Vérifiez que GoAccess est en cours d'exécution.

$ goaccess --versionGoAccess - 1.5.2.Pour plus de détails, visitez :https://goaccess.io/Copyright (C) 2009-2020 par Gerardo OrellanaConstruisez les arguments de configuration :--enable-utf8 --enable-geoip=mmdb --with-openssl

Étape 3 - Télécharger la base de données GeoIP

Vous pouvez télécharger la base de données GeoIP depuis DB-IP ou Maxmind. Si vous comptez télécharger depuis Maxmind, vous devrez créer un compte et générer une clé de licence gratuite. Le téléchargement depuis DB-IP peut être effectué directement.

Téléchargez le fichier zip du pays à partir de l'une des sources ci-dessus. Une fois téléchargés, extrayez-les et téléchargez le .mmdb fichier sur le serveur dans un dossier personnalisé comme /home/<user>/geoip .

Étape 4 - Configurer GoAccess

GoAccess stocke son fichier de configuration dans /usr/local/etc/goaccess/goaccess.conf . Vous pouvez vérifier l'emplacement du fichier sur votre système à l'aide de la commande suivante.

$ goaccess --dcf/usr/local/etc/goaccess/goaccess.conf

Ouvrez le fichier pour le modifier.

$ sudo nano /usr/local/etc/goaccess/goaccess.conf

La plupart des options sont commentées. Vous pouvez soit utiliser ces options via la ligne de commande, soit les définir dans le fichier ici. Pour activer une option, supprimez le # caractère devant.

Tout d'abord, activons le time-format option. Nous allons analyser les fichiers Nginx dans notre tutoriel, alors activez l'option destinée aux journaux Apache/Nginx.

# Le format d'heure suivant fonctionne avec l'un des# formats de journal d'Apache/NGINX ci-dessous.#time-format %H:%M:%S

Ensuite, activez le date-format Nginx option.

# Le format de date suivant fonctionne avec l'un des# formats de journal d'Apache/NGINX ci-dessous.#date-format %d/%b/%Y

Ensuite, activez le log-format option. Dans notre tutoriel, nous utiliserons le combined format de journal, ce que Nginx utilise couramment.

log-format COMBINE

Si vos fichiers journaux contiennent le champ Hôte virtuel, activez plutôt l'option suivante.

log-format VCOMBINÉ

Supposons que vous vouliez plus de contrôle sur le format du journal. Dans ce cas, vous pouvez activer la ligne suivante à la place (selon le journal auquel vous accédez) et ajouter ou supprimer des paramètres selon vos besoins.

log-format %v :%^ %h %^[%d :%t %^] "%r" %s %b "%R" "%u"

Pour activer le module GeoIP, activez l'option suivante en saisissant le chemin d'accès à la base de données GeoIP.

# Pour la base de données GeoIP2 Country :# Téléchargez le fichier GeoLite2-Country.mmdb.gz# gunzip GeoLite2-Country.mmdb.gz#geoip-database /home/geoip/dbip-country-lite-2021-10.mmdb 

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité une fois terminé.

Étape 5 - Exécuter GoAccess

Normalement, si vous souhaitez exécuter GoAccess, vous devrez utiliser la commande suivante.

$ sudo /usr/local/bin/goaccess /var/log/nginx/access.log

Nous devons utiliser sudo car les utilisateurs réguliers ne peuvent pas ouvrir les fichiers journaux. De plus, vous devrez utiliser le chemin complet de l'exécutable avec la commande sudo car la commande sudo ne reconnaît pas les applications dans /usr/local/bin annuaire. Vous pouvez cependant contourner la limitation en créant un lien symbolique.

Pour ce faire, exécutez la commande suivante.

$ sudo ln -s /usr/local/bin/goaccess /usr/bin/goaccess

Maintenant, vous pouvez exécuter GoAccess directement.

$ sudo goaccess /var/log/nginx/access.log

Les fichiers journaux Nginx conservent un enregistrement de tout le trafic HTTP entrant. Si votre serveur fonctionne depuis longtemps, vous verrez plusieurs journaux d'accès avec les journaux les plus anciens au format compressé .gz format. Les anciens fichiers journaux sont générés à la suite de la rotation des journaux.

Une fois que vous avez exécuté la commande, vous serez accueilli avec le tableau de bord suivant.

GoAccess vous propose plusieurs raccourcis clavier pour naviguer dans le tableau de bord.

  • TAB pour avancer dans les modules disponibles et SHIFT+TAB pour reculer.
  • F5 pour actualiser le tableau de bord.
  • g pour aller en haut de l'écran du tableau de bord et G pour se déplacer vers le bas.
  • o ou ENTER pour développer le module sélectionné.
  • j et k pour faire défiler vers le bas et vers le haut dans le module actif.
  • s pour afficher les options de tri du module actif.
  • / pour rechercher dans tous les modules et n pour passer au match suivant.
  • 0-9 et SHIFT+0 pour activer rapidement le module numéroté respectif.
  • ? pour afficher la boîte de dialogue d'aide rapide.
  • q pour quitter le programme.

Passons en revue tous les panneaux en bref.

  1. Visiteurs uniques par jour - Ce panneau est explicite. Il répertorie les visiteurs uniques, les visites et la bande passante cumulée pour chaque date. Il inclut également les robots d'exploration et les araignées Web par défaut.

  2. Fichiers demandés (URL) - Ce panneau fournit les statistiques concernant les fichiers non statiques les plus demandés sur votre serveur.

  3. Requêtes statiques - Il est similaire au panneau ci-dessus sauf qu'il gère les fichiers statiques comme les images, CSS, JavaScript, etc.

  4. URL introuvables (404) - Ce panneau enregistre toutes les requêtes vers des fichiers et des chemins introuvables sur votre serveur.

  5. Noms d'hôte et IP des visiteurs - Ce panneau donne plus d'informations sur les visiteurs de votre site. Vous pouvez appuyer sur o pour développer le panneau afin d'obtenir des informations détaillées telles que le pays d'origine, la ville et le DNS inversé.

  6. Systèmes d'exploitation - Ce panneau affiche différents systèmes d'exploitation utilisés par les visiteurs.

  7. Navigateurs - Ce panneau présente les différents navigateurs utilisés par les visiteurs.

  8. Répartition horaire - Ce panneau fournira un rapport horaire pour le nombre de visites, de visiteurs uniques et de bande passante consommée.

  9. Hôtes virtuels - Ce panneau affiche les hôtes virtuels analysés à partir du fichier journal. Il n'apparaîtra que si vous utilisez le VCOMBINED log format dans le fichier de configuration ci-dessus ou si %v fait partie de la configuration du format de journal.

  10. URL de référence - Ceci répertorie les URL qui renvoient les visiteurs vers votre serveur. Ce panneau est désactivé par défaut. Pour l'activer, commentez la ligne suivante dans le fichier de configuration en ajoutant # devant.

    #ignore-panel REFERRERS
  11. Sites référents - Ce panneau affiche les adresses IP des hôtes référents.

  12. Phrases clés - Ce panneau affiche les mots clés utilisés sur Google Search, Google cache ou Google Translate qui mènent à votre site. Ce panneau est également désactivé par défaut. Activez-le en commentant la ligne suivante dans le fichier de configuration.

    #ignore-panel PHRASES CLÉS
  13. Codes d'état HTTP - Ce panneau affiche les statistiques des codes d'état HTTP renvoyés par votre serveur lorsqu'il répond à une requête.

  14. Utilisateur distant (authentification HTTP) - Ce panneau affiche l'ID utilisateur de la personne accédant à un document sur votre serveur, protégé par une authentification HTTP. Ce panneau ne fonctionne que si %e fait partie de la configuration du format de journal.

  15. État du cache - Ce panneau détermine si une demande est mise en cache et servie à partir de celle-ci. Ce panneau ne fonctionne que si %c fait partie de la configuration du format de journal.

  16. Géolocalisation - Ce panneau fournit une liste des emplacements géographiques des visiteurs accédant à votre site. Il n'apparaîtra que si vous avez téléchargé et ajouté son emplacement dans le fichier de configuration.

Étape 6 - Exécuter GoAccess en mode non privilégié

En tant que bonne pratique de sécurité, moins il y a de code qui fonctionne en tant que root, mieux c'est. Pour exécuter GoAccess sans root, il a besoin d'autorisations pour lire les fichiers journaux.

Les fichiers journaux du serveur font généralement partie du adm grouper. Vous pouvez le vérifier en utilisant la commande suivante.

$ ls -l /var/log/nginxtotal 68-rw-r----- 1 nginx adm 30547 Oct 10 12:47 access.log-rw-r----- 1 nginx adm 35063 Oct 10 12:47 error.log

Comme vous pouvez le voir, vous n'avez pas besoin d'être un utilisateur root pour ouvrir les fichiers journaux. Tout utilisateur appartenant à l'adm groupe peut ouvrir les fichiers.

Le moyen le plus simple d'exécuter GoAccess sans racine consiste à ajouter l'utilisateur actuellement connecté à adm grouper. De cette façon, vous pouvez exécuter GoAccess sous cet utilisateur sans sudo.

Exécutez la commande suivante pour ajouter l'utilisateur actuel au adm groupe.

$ sudo usermod -aG adm $USER 

Maintenant, déconnectez-vous et reconnectez-vous pour appliquer la modification. Ou vous pouvez exécuter la commande suivante sans avoir à vous déconnecter pour mettre en œuvre la modification.

$ sur $USER

Vous devriez pouvoir exécuter GoAccess directement sans avoir besoin de sudo.

$ goaccess /var/log/nginx/access.log

Étape 7 - Générer des rapports HTML

GoAccess peut être utilisé pour générer des rapports HTML que vous pouvez les servir en ligne. Utilisez la commande suivante pour générer un rapport HTML.

$ goaccess /var/log/nginx/access.log -o stats.html

Vous pouvez soit télécharger le fichier sur votre PC local pour vous-même, soit dans le dossier de votre site Web pour le diffuser publiquement.

Vous pouvez même générer un rapport HTML en temps réel à l'aide de GoAccess. Mais d'abord, vous devez ouvrir le port 7890 pour que GoAccess Websocket s'exécute. Ouvrez le port à l'aide de la commande suivante.

$ sudo firewall-cmd --permanent --add-port=7890/tcp

Rechargez le pare-feu pour appliquer la modification.

$ sudo firewall-cmd --reload

Maintenant, exécutez la commande suivante pour générer un rapport HTML en temps réel.

$ goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html

Cela générerait un rapport en temps réel à l'emplacement spécifié. La commande ci-dessus maintiendra GoAccess en cours d'exécution au premier plan en tant que WebSocket à l'écoute des connexions.

Il y a une petite mise en garde avec l'exécution de la commande ci-dessus. La commande ci-dessus fonctionnera lorsque GoAccess dispose des autorisations utilisateur sur /usr/share/nginx/html annuaire. Étant donné que nous exécutons GoAccess sous l'utilisateur actuellement connecté, vous devez accorder à cet utilisateur des autorisations sur /usr/share/html annuaire. Si vous ne pouvez pas attendre pour une raison quelconque, vous devrez exécuter GoAccess en utilisant sudo.

$ sudo goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html

Si vous souhaitez exécuter GoAccess en arrière-plan, vous pouvez l'exécuter en tant que démon à la place en utilisant la commande suivante.

$ goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html --daemonizeDaemonized GoAccess :78315

Pour arrêter le démon GoAccess, tuez le processus avec la commande suivante.

$ sudo kill -9 78315

Ici, nous utilisons l'ID de processus que nous avons obtenu dans notre commande précédente. Si vous ne vous souvenez pas de l'ID du processus, vous pouvez également utiliser la commande suivante pour tuer le processus.

$ sudo kill -9 `pidof goaccess`

Notez que nous utilisons les guillemets inversés (`) dans notre commande. L'utilisation de guillemets réguliers fera échouer la commande.

Conclusion

Ceci conclut notre didacticiel sur l'installation et l'exécution de GoAccess Log Analyzer sur le serveur Rocky Linux 8. Si vous avez des questions, postez-les dans les commentaires ci-dessous.


Rocky Linux
  1. Comment installer l'analyseur de journaux Web GoAccess sur Ubuntu 20.04

  2. Comment installer Python 3.9 sur Rocky Linux 8

  3. Comment installer Rocky Linux 8.4

  4. Comment installer l'analyseur de journaux Web GoAccess sur Ubuntu 20.04

  5. Comment installer Redis sur Rocky Linux 8

Comment installer PHP 7.4 sur Rocky Linux 8

Comment installer Python 3.9 sur Rocky Linux

Comment installer PHP 8 sur Rocky Linux 8

Comment installer Nginx sur Rocky Linux 8

Comment installer Node.js sur Rocky Linux 8

Comment installer Rust sur Rocky Linux 8