Introduzione
GoAccess è un analizzatore di log web in tempo reale open source e visualizzatore interattivo che viene eseguito in un terminale nei sistemi *nix o tramite il tuo browser .
Fornisce veloce e preziose statistiche HTTP per gli amministratori di sistema che richiedono al volo un report visual server.
GoAccess è stato progettato per essere un veloce analizzatore di log basato su terminale. La sua idea principale è analizzare e visualizzare rapidamente le statistiche del server web in tempo reale senza bisogno di utilizzare il browser (ottimo se vuoi fare una rapida analisi del tuo log di accesso tramite SSH, o se semplicemente ami lavorare nel terminale ).
Sebbene l'output del terminale sia l'output predefinito, ha la capacità di generare un tempo reale completo e autonomo Report HTML (ottimo per analisi, monitoraggio e visualizzazione dei dati ), nonché un rapporto JSON e CSV.
INSTALLAZIONE
L'installazione di GoAccess è piuttosto semplice. Basta scaricarlo, estrarlo e compilarlo
Illustreremo come installarlo sulle distribuzioni Linux più comuni.
Installa GoAccess su RHEL/CentOS 8
Metodo 1:
Crea dal sito goaccess
Segui questi passaggi ed esegui i comandi seguenti per iniziare con l'installazione.
Innanzitutto, dovresti installare epel repo e aggiornare i pacchetti di sistema.
dnf -y install epel-release
dnf -y update
shutdown -r now
GoAccess è scritto nel linguaggio di programmazione C. Quindi, l'unica dipendenza richiesta sono le ncurses libreria e gcc . Per installare ncurses e ccc , esegui:
dnf -y install ncurses-devel gcc
Installa i pacchetti opzionali eseguendo:
dnf -y install geoip-devel tokyocabinet-devel
Potrebbe anche essere necessario installare strumenti di compilazione come autoconf e gettext
dnf install -y autoconf gettext
Scarica goaccess tarball con:
[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 ~]#
Quindi estrailo e compilalo con i comandi seguenti:
[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
Metodo 2:
Crea da GitHub (sviluppo)
Basta eseguire i seguenti comandi per avviare l'installazione da GitHub:
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fi
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
$ make install
Installa GoAccess sulle altre distribuzioni
Fedora
# 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
OpenSUSE
# 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
Come utilizzare GoAccess da Terminal
Scegli il file di registro in base al tuo sistema operativo e al server web utilizzato. Sui sistemi basati su Debian i log vengono generati in /var/log/apache2 directory e sistema basato su Redhat Apache creano i log in /var/log/httpd directory. Usa l'opzione -f per definire il file di registro con il comando goaccess.
goaccess -f /var/log/httpd/access_log

Quindi seleziona il formato del registro.
NOTA :il formato predefinito del registro Apache è COMBINATO.

GoAccess ti consente anche di definire il formato del registro utilizzando –log-format opzioni di comando. Ad esempio, per utilizzare il formato di registro COMBINATO il comando sarà:
goaccess /var/log/httpd/access_log --log-format=COMBINED
Vedrai l'output sulla console di sistema come di seguito:

Potresti notare che non ci sono richieste nei log
Facciamo alcune richieste.
L'output di goaccess sulla console di sistema dovrebbe essere modificato in questo modo:

Se scorri verso il basso noterai informazioni sui sistemi operativi e sui browser che richiedono la pagina web come mostrato di seguito.

Puoi premere 'q' per uscire dal visualizzatore del terminale GoAccess.
Visualizza l'output di GoAccess nel dashboard Web
GoAccess consente agli utenti di generare report in vari formati come HTML, JSON e CSV. Possiamo generare il rapporto utilizzando il seguente comando in un file 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 – Abilita un elenco di agenti utente per host
- -o – Usato per definire il file di output
- Il formato di output viene selezionato automaticamente in base all'estensione del nome del file di output
Quindi, accedi a report.html utilizzando l'indirizzo IP del server o il nome di dominio come mostrato di seguito:

Utilizza crond Service per aggiornare il file del dashboard Web
Puoi programmare il comando goaccess per aggiornare il rapporto html.
Basta creare uno script di shell
vim /mnt/goaccess.sh
Quindi aggiungi quanto segue:
!/bin/bash
goaccess /var/log/httpd/access_log --log-format=COMBINED -a -o /var/www/html/report.html
Quindi pianifica lo script sopra con crontab:
crontab -e
Aggiungi il seguente contenuto alla fine del file
#Cron job to update Goaccess HTML repot
* * * * * /mnt/goaccess.sh
Conclusione
In questa guida hai spiegato come installare e utilizzare GoAccess per visualizzare i log del server web in formati visivi.