GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come installare GoAccess Web Log Analyzer su Rocky Linux 8

GoAccess è un analizzatore di log leggero open source in grado di leggere e analizzare file di log di più formati, inclusi Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, Caddy, ecc. È scritto in linguaggio C e utilizza la libreria ncurses per la sua interfaccia dashboard, a cui è possibile accedere dalla riga di comando.

Può generare report in formato HTML, JSON e CSV, che possono essere condivisi con altri. Puoi persino generare rapporti HTML in tempo reale che possono essere visualizzati tramite un collegamento pubblico.

In questo tutorial imparerai a installare GoAccess Analyzer su un server Rocky basato su Linux e a configurarlo per leggere i log Nginx e fornire report in tempo reale.

Prerequisiti

  1. Un server che esegue Rocky Linux 8.

  2. Un utente non root con privilegi sudo.

  3. Nginx in esecuzione sul server per accedere ai log.

  4. Assicurati che tutto sia aggiornato.

    $ sudo dnf update
    

Passaggio 1:installazione delle dipendenze per GoAccess

L'ultima versione di GoAccess v1.5.2 non è disponibile nel repository predefinito. Per installare l'ultima versione di GoAccess, la costruiremo dal sorgente. Il primo passaggio consiste nel scaricare le dipendenze necessarie per la creazione del pacchetto GoAccess.

$ sudo dnf install ncurses-devel libmaxminddb-devel openssl-devel 
$ sudo dnf groupinstall 'Development Tools'

Fase 2:scarica e installa GoAccess

Scarica l'ultima versione dell'archivio GoAccess. Puoi trovare l'ultima versione di GoAccess dalla pagina di download ufficiale.

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

Estrarre i file dall'archivio.

$ tar -xzvf goaccess-1.5.2.tar.gz

Configura e installa il pacchetto.

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

Verifica che GoAccess sia in esecuzione.

$  goaccess --version
GoAccess - 1.5.2.
For more details visit: https://goaccess.io/
Copyright (C) 2009-2020 by Gerardo Orellana

Build configure arguments:
  --enable-utf8
  --enable-geoip=mmdb
  --with-openssl

Fase 3:scarica il database GeoIP

Puoi scaricare il database GeoIP da DB-IP o Maxmind. Se stai per scaricare da Maxmind, dovrai creare un account e generare una chiave di licenza gratuita. Il download da DB-IP può essere eseguito direttamente.

Scarica il file zip del paese da una delle fonti sopra. Una volta scaricati, estraili e carica il .mmdb file sul server in una cartella personalizzata come /home/<user>/geoip .

Fase 4 - Configura GoAccess

GoAccess memorizza il suo file di configurazione in /usr/local/etc/goaccess/goaccess.conf . Puoi controllare la posizione del file sul tuo sistema usando il seguente comando.

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

Apri il file per la modifica.

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

La maggior parte delle opzioni sono commentate. Puoi utilizzare queste opzioni tramite la riga di comando o impostarle nel file qui. Per abilitare un'opzione, rimuovi il # carattere davanti ad esso.

Per prima cosa, abilitiamo il time-format opzione. Analizzeremo i file Nginx nel nostro tutorial, quindi abilita l'opzione pensata per i log di Apache/Nginx.

# The following time format works with any of the
# Apache/NGINX's log formats below.
#
time-format %H:%M:%S

Quindi, abilita il date-format di Nginx opzione.

# The following date format works with any of the
# Apache/NGINX's log formats below.
#
date-format %d/%b/%Y

Quindi, abilita il log-format opzione. Nel nostro tutorial useremo il combined log, che è ciò che Nginx utilizza comunemente.

log-format COMBINED

Se i tuoi file di registro contengono il campo Host virtuale, abilita invece la seguente opzione.

log-format VCOMBINED

Supponiamo di volere un maggiore controllo sul formato del registro. In tal caso, puoi invece abilitare la riga seguente (a seconda del log a cui stai accedendo) e aggiungere o rimuovere parametri in base alle tue esigenze.

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

Per abilitare il modulo GeoIP, abilita la seguente opzione inserendo il percorso del database GeoIP.

# For GeoIP2 Country database:
# Download the GeoLite2-Country.mmdb.gz
# gunzip GeoLite2-Country.mmdb.gz
#
geoip-database /home/geoip/dbip-country-lite-2021-10.mmdb

Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta terminato.

Passaggio 5:esegui GoAccess

Normalmente, se vuoi eseguire GoAccess, dovrai usare il seguente comando.

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

Dobbiamo usare sudo perché gli utenti normali non possono aprire i file di registro. Inoltre, dovrai utilizzare il percorso completo per l'eseguibile con il comando sudo perché il comando sudo non riconosce le applicazioni nel /usr/local/bin directory. Tuttavia, puoi aggirare la limitazione creando un collegamento simbolico.

Per farlo, esegui il seguente comando.

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

Ora puoi eseguire direttamente GoAccess.

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

I file di registro Nginx conservano un registro di tutto il traffico HTTP in entrata. Se il tuo server è in esecuzione da molto tempo, vedrai più log di accesso con i log più vecchi in formato compresso .gz formato. I file di registro meno recenti vengono generati come risultato della rotazione del registro.

Una volta eseguito il comando, verrai accolto con la seguente dashboard.

GoAccess ti fornisce diverse scorciatoie da tastiera per navigare nella dashboard.

  • TAB per andare avanti attraverso i moduli disponibili e SHIFT+TAB per tornare indietro.
  • F5 per aggiornare la dashboard.
  • g per passare alla parte superiore della schermata del dashboard e G per spostarsi in basso.
  • o o ENTER per espandere il modulo selezionato.
  • j e k per scorrere verso il basso e verso l'alto all'interno del modulo attivo.
  • s per visualizzare le opzioni di ordinamento per il modulo attivo.
  • / per cercare in tutti i moduli e n per passare alla partita successiva.
  • 0-9 e SHIFT+0 per attivare velocemente il rispettivo modulo numerato.
  • ? per visualizzare la finestra di dialogo della guida rapida.
  • q per uscire dal programma.

Esaminiamo brevemente tutti i pannelli.

  1. Visitatori unici al giorno - Questo pannello è autoesplicativo. Elenca visitatori unici, hit e larghezza di banda cumulativa per ogni data. Per impostazione predefinita, include anche web crawler e spider.

  2. File richiesti (URL) - Questo pannello fornisce le statistiche relative ai file non statici più richiesti sul tuo server.

  3. Richieste statiche - È simile al pannello sopra, tranne per il fatto che gestisce file statici come immagini, CSS, JavaScript, ecc.

  4. URL non trovati (404) - Questo pannello registra tutte le richieste a file e percorsi non trovati sul tuo server.

  5. Nomi host e IP dei visitatori - Questo pannello fornisce maggiori informazioni sui visitatori del tuo sito. Puoi premere o per espandere il pannello per ottenere informazioni dettagliate come paese di origine, città e DNS inverso.

  6. Sistemi operativi - Questo pannello mostra diversi sistemi operativi utilizzati dai visitatori.

  7. Browser - Questo pannello mostra i vari browser utilizzati dai visitatori.

  8. Distribuzione del tempo - Questo pannello fornirà un rapporto orario per il numero di visite, i visitatori unici e la larghezza di banda consumata.

  9. Host virtuali - Questo pannello mostra gli host virtuali analizzati dal file di registro. Apparirà solo se usi VCOMBINED log format nel file di configurazione sopra o se %v fa parte della configurazione del formato log.

  10. URL di riferimento - Questo elenca gli URL che rimandano i visitatori al tuo server. Questo pannello è disabilitato per impostazione predefinita. Per abilitarlo, commenta la riga seguente nel file di configurazione aggiungendo # davanti.

    #ignore-panel REFERRERS
    
  11. Siti di riferimento - Questo pannello mostra gli indirizzi IP degli host di riferimento.

  12. Frasi chiave - Questo pannello mostra le parole chiave utilizzate su Ricerca Google, cache di Google o Google Translate che portano al tuo sito. Anche questo pannello è disabilitato per impostazione predefinita. Abilitalo commentando la riga seguente nel file di configurazione.

    #ignore-panel KEYPHRASES
    
  13. Codici di stato HTTP - Questo pannello mostra le statistiche per i codici di stato HTTP restituiti dal tuo server quando risponde a una richiesta.

  14. Utente remoto (autenticazione HTTP) - Questo pannello mostra l'ID utente della persona che accede a un documento sul tuo server, protetto da autenticazione HTTP. Questo pannello funziona solo se %e fa parte della configurazione del formato log.

  15. Stato della cache - Questo pannello determina se una richiesta viene memorizzata nella cache e servita da essa. Questo pannello funziona solo se %c fa parte della configurazione del formato log.

  16. Posizione geografica - Questo pannello fornisce un elenco di posizioni geografiche dei visitatori che accedono al tuo sito. Verrà visualizzato solo se hai scaricato e aggiunto la sua posizione nel file di configurazione.

Passaggio 6:esegui GoAccess come non privilegiato

Come buona pratica di sicurezza, minore è il codice che funziona come root, meglio è. Per eseguire GoAccess senza root, sono necessarie le autorizzazioni per leggere i file di registro.

I file di registro del server di solito fanno parte di adm gruppo. Puoi verificarlo usando il seguente comando.

$ ls -l /var/log/nginx
total 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

Come puoi vedere, non è necessario essere un utente root per aprire i file di registro. Qualsiasi utente appartenente a adm gruppo può aprire i file.

Il modo più semplice per eseguire GoAccess senza root è aggiungere l'utente attualmente connesso a adm gruppo. In questo modo, puoi eseguire GoAccess con quell'utente senza sudo.

Esegui il comando seguente per aggiungere l'utente corrente a adm gruppo.

$ sudo usermod -aG adm $USER 

Ora, esci e accedi nuovamente per applicare la modifica. Oppure puoi eseguire il comando seguente senza dover effettuare il logout per implementare la modifica.

$ su $USER

Dovresti essere in grado di eseguire GoAccess direttamente senza bisogno di sudo.

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

Passaggio 7 - Genera rapporti HTML

GoAccess può essere utilizzato per generare report HTML che puoi servire online. Utilizzare il comando seguente per generare un report HTML.

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

Puoi scaricare il file sul tuo PC locale per te stesso o nella cartella del tuo sito Web per pubblicarlo.

Puoi persino generare un rapporto HTML in tempo reale utilizzando GoAccess. Ma prima devi aprire la porta 7890 per l'esecuzione di GoAccess Websocket. Apri la porta usando il seguente comando.

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

Ricarica il firewall per applicare la modifica.

$ sudo firewall-cmd --reload

Ora, esegui il comando seguente per generare un rapporto HTML in tempo reale.

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

Ciò genererebbe un rapporto in tempo reale nella posizione specificata. Il comando precedente manterrà GoAccess in esecuzione in primo piano come WebSocket in attesa di connessioni.

C'è un piccolo avvertimento con l'esecuzione del comando precedente. Il comando precedente funzionerà quando GoAccess dispone delle autorizzazioni utente su /usr/share/nginx/html directory. Poiché stiamo eseguendo GoAccess con l'utente attualmente connesso, devi concedere a quell'utente le autorizzazioni su /usr/share/html directory. Se non puoi aspettare per qualche motivo, dovrai eseguire GoAccess utilizzando sudo.

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

Se desideri eseguire GoAccess in background, puoi eseguirlo come demone utilizzando il comando seguente.

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

Per interrompere il demone GoAccess, termina il processo con il comando seguente.

$ sudo kill -9 78315

Qui stiamo usando l'ID del processo che abbiamo ottenuto nel nostro comando precedente. Se non ricordi l'ID del processo, puoi anche utilizzare il seguente comando per terminare il processo.

$ sudo kill -9 `pidof goaccess`

Nota che stiamo usando il backquote (`) nel nostro comando. L'uso di virgolette regolari fallirà il comando.

Conclusione

Questo conclude il nostro tutorial sull'installazione e l'esecuzione di GoAccess Log Analyzer sul server Rocky Linux 8. Se hai domande, pubblicale nei commenti qui sotto.


Rocky Linux
  1. Come installare GoAccess Web Log Analyzer su Ubuntu 20.04

  2. Come installare Python 3.9 su Rocky Linux 8

  3. Come installare Rocky Linux 8.4

  4. Come installare GoAccess Web Log Analyzer su Ubuntu 20.04

  5. Come installare Redis su Rocky Linux 8

Come installare PHP 7.4 su Rocky Linux 8

Come installare Python 3.9 su Rocky Linux

Come installare PHP 8 su Rocky Linux 8

Come installare Nginx su Rocky Linux 8

Come installare Node.js su Rocky Linux 8

Come installare Rust su Rocky Linux 8