Présentation
GoAccess est un analyseur de journaux Web en temps réel open source et une visionneuse interactive qui s'exécute dans un terminal dans les systèmes *nix ou via votre navigateur .
Il fournit rapide et de précieuses statistiques HTTP pour les administrateurs système qui ont besoin d'un rapport de serveur visuel à la volée.
GoAccess a été conçu pour être un analyseur de journaux rapide basé sur un terminal. Son idée principale est d'analyser et d'afficher rapidement les statistiques du serveur Web en temps réel sans avoir besoin d'utiliser votre navigateur (idéal si vous voulez faire une analyse rapide de votre journal d'accès via SSH, ou si vous aimez simplement travailler dans le terminal ).
Bien que la sortie du terminal soit la sortie par défaut, elle a la capacité de générer un fichier en temps réel complet et autonome. Rapport HTML (idéal pour l'analyse, la surveillance et la visualisation des données ), ainsi qu'un rapport JSON et CSV.
INSTALLATION
L'installation de GoAccess est assez simple. Il suffit de le télécharger, de l'extraire et de le compiler
Nous allons illustrer comment l'installer sur les différentes distributions Linux les plus courantes.
Installer GoAccess sur RHEL/CentOS 8
Méthode 1 :
Construire à partir du site goaccess
Suivez ces étapes et exécutez les commandes ci-dessous pour commencer l'installation.
Tout d'abord, vous devez installer epel repo et mettre à jour les packages système.
dnf -y install epel-release
dnf -y update
shutdown -r now
GoAccess est écrit dans le langage de programmation C. Par conséquent, la seule dépendance requise est le ncurses bibliothèque et gcc . Pour installer les ncurses et gcc , exécutez :
dnf -y install ncurses-devel gcc
Installez les packages facultatifs en exécutant :
dnf -y install geoip-devel tokyocabinet-devel
Vous devrez peut-être également installer des outils de construction comme autoconf et gettext
dnf install -y autoconf gettext
Téléchargez l'archive goaccess avec :
[root@unixcop ~]# wget https://tar.goaccess.io/goaccess-1.5.1.tar.gz
--2021-09-14 09:43:47-- https://tar.goaccess.io/goaccess-1.5.1.tar.gz
Resolving tar.goaccess.io (tar.goaccess.io)... 67.205.130.138
Connecting to tar.goaccess.io (tar.goaccess.io)|67.205.130.138|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 642860 (628K) [application/x-gzip]
Saving to: 'goaccess-1.5.1.tar.gz'
goaccess-1.5.1.tar.gz 100%[=======================================================================>] 627.79K 395KB/s in 1.6s
2021-09-14 09:43:51 (395 KB/s) - 'goaccess-1.5.1.tar.gz' saved [642860/642860]
[root@unixcop ~]#
Puis extrayez-le et compilez-le avec les commandes ci-dessous :
[root@unixcop ]# tar -xzvf goaccess-1.5.1.tar.gz
[root@unixcop ]# cd goaccess-1.5.1/
[root@unixcop goaccess-1.5.1]# ./configure --enable-utf8
[root@unixcop goaccess-1.5.1]# make
[root@unixcop goaccess-1.5.1]# make install
Méthode 2 :
Construire à partir de GitHub (Développement)
Exécutez simplement les commandes ci-dessous pour démarrer l'installation à partir de GitHub :
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fi
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
$ make install
Installer GoAccess sur les autres distributions
Fédora
# yum install goaccess
Arch Linux
# pacman -S goaccess
Gentoo
# emerge net-analyzer/goaccess
OS X/Homebrew
# brew install goaccess
FreeBSD
# pkg install sysutils/goaccess
OpenBSD
# pkg_add goaccess
OuvrirSUSE
# zypper ar -f obs://server:http http
# zypper in goaccess
pkgsrc (NetBSD, Solaris, SmartOS)
# pkgin install goaccess
Slackware
# curl https://slackbuilds.org/slackbuilds/14.1/system/goaccess.tar.gz | tar xvz
# cd goaccess/
# GEOIP=yes ./goaccess.SlackBuild
Comment utiliser GoAccess depuis Terminal
Choisissez le fichier journal en fonction de votre système d'exploitation et du serveur Web utilisé. Sur les systèmes basés sur Debian, les journaux sont générés sous /var/log/apache2 et le système Apache basé sur Redhat créent des journaux sous /var/log/httpd annuaire. Utilisez l'option -f pour définir le fichier journal avec la commande goaccess.
goaccess -f /var/log/httpd/access_log
Sélectionnez ensuite le format du journal.
REMARQUE :Le format de journal Apache par défaut est COMBINÉ.
Le GoAccess vous permet également de définir le format du journal en utilisant –log-format options de commande. Par exemple, pour utiliser le format de journal COMBINÉ, la commande sera :
goaccess /var/log/httpd/access_log --log-format=COMBINED
Vous verrez la sortie sur la console système comme ci-dessous :
Vous avez peut-être remarqué qu'il n'y a aucune requête dans les journaux
Faisons quelques requêtes.
La sortie de goaccess sur la console système doit être modifiée comme suit :
Si vous faites défiler vers le bas, vous remarquerez des informations sur les systèmes d'exploitation et les navigateurs qui demandent la page Web, comme indiqué ci-dessous.
Vous pouvez appuyer sur "q" pour quitter la visionneuse de terminal GoAccess.
Afficher la sortie GoAccess dans le tableau de bord Web
GoAccess permet aux utilisateurs de générer des rapports dans différents formats tels que HTML, JSON et CSV. Nous pouvons générer le rapport en utilisant la commande suivante dans un fichier html.
[root@unixcop ~]# goaccess /var/log/httpd/access_log --log-format=COMBINED -a -o /var/www/html/report.html
[PARSING /var/log/httpd/access_log] {0} @ {0/s}
[root@unixcop ~]#
- -a – Activer une liste d'agents utilisateurs par hôte
- -o – Utilisé pour définir le fichier de sortie
- Le format de sortie est automatiquement sélectionné en fonction de l'extension du nom du fichier de sortie
Ensuite, accédez à report.html en utilisant l'adresse IP du serveur ou le nom de domaine comme indiqué ci-dessous :
Utiliser le service crond pour mettre à jour le fichier du tableau de bord Web
Vous pouvez programmer la commande goaccess pour mettre à jour le rapport html.
Créez simplement un script shell
vim /mnt/goaccess.sh
Ajoutez ensuite ce qui suit :
!/bin/bash
goaccess /var/log/httpd/access_log --log-format=COMBINED -a -o /var/www/html/report.html
Planifiez ensuite le script ci-dessus avec crontab :
crontab -e
Ajoutez le contenu suivant à la fin du fichier
#Cron job to update Goaccess HTML repot
* * * * * /mnt/goaccess.sh
Conclusion
Dans ce guide, vous avez expliqué comment installer et utiliser GoAccess pour afficher les journaux du serveur Web dans des formats visuels.