Di recente, "bramando" un affare, ho cambiato il server con l'host VPS Alibaba Cloud International Edition di Hong Kong. La sensazione più grande dopo essersi trasferiti qui non è l'aumento della velocità - perché il VPS coreano kdatacenter utilizzato originariamente è anche molto veloce quando si accede alla rete di telecomunicazioni - ma le prestazioni dell'host VPS Alibaba Cloud sono davvero buone rispetto ad altri host VPS che sono anch'essi 1GB è un po' debole.

Ho appena utilizzato uno strumento per scansionare il carico del sistema di Alibaba Cloud Hong Kong VPS e il carico del sistema continuava ad aumentare. A volte ho scoperto che non riuscivo ad aprirlo mentre stavo scrivendo un articolo in background. Ho aperto il registro del server e ho trovato molti IP anomali, come scansione delle porte, SQL injection, file di backup del sito Web "mancanti" e stress test AB... In breve, c'erano molti IP anomali nel comportamento di accesso umano.

Analizzare il comportamento degli IP nei log è un lavoro faticoso, soprattutto quando i log superano le centinaia di MB, ed è molto lento aprirli come file di testo. Questo articolo condividerà due eccellenti strumenti di analisi dei log del server: ngxtop e GoAccess. ngxtop analizza i file di registro di Nginx e li visualizza in tempo reale utilizzando un'interfaccia simile al comando top.

ngxtop può analizzare i file di registro precedenti e può anche monitorare i registri del server in tempo reale. Puoi scoprire rapidamente gli indirizzi IP più visitati nei registri, gli errori 403/500/404, il posizionamento delle pagine richieste, ecc. nella porta proprio come quando usi. il comando Superiore. ngxtop è uno strumento leggero, mentre GoAccess è più simile a un potente strumento di statistiche di registro.

GoAccess non è solo ricco di grafica e testo, ma anche veloce, con una velocità di analisi dei record di registro di 8 W al secondo e websocket aggiorna le statistiche ogni 10 secondi. GoAccess non solo ha un'interfaccia a riga di comando, ma può anche generare una pagina Web HTML, consentendoti di vedere in modo intuitivo il numero di visitatori nel registro, i file richiesti, 404 e altri errori, posizione dell'utente, browser, sistema operativo, URL di origine, Codice di stato HTTP, ecc.

Strumenti di analisi dei log del server: ngxtop e GoAccess: monitoraggio in tempo reale e gestione visiva per trovare rapidamente l'origine delle eccezioni

In breve, ngxtop e GoAccess sono due potenti strumenti per analizzare i log di server come Apache e Nginx. Una volta padroneggiati questi due software, è possibile rivelare gli IP "potenzialmente" pericolosi per il server. In qualità di webmaster, imparare a utilizzare un software in più significa che puoi risparmiare un'altra spesa per il server, ad esempio:

  1. Utilizza Huginn per acquisire aggiornamenti degli account pubblici RSS e WeChat da qualsiasi sito Web: crea una piattaforma unica di lettura delle informazioni
  2. Linux VPS monta Google Drive e Dropbox realizza la sincronizzazione e il backup dei dati dell'host VPS
  3. Tre strumenti gratuiti per aiutarti a rilevare l'autenticità dei server VPS: prestazioni dell'host VPS e metodi di test della velocità

PS: aggiornato il 21 ottobre 2017, Gli amici interessati a utilizzare Alibaba Cloud Hong Kong VPS possono leggere prima la mia recensione: Alibaba Cloud International Version Hong Kong Computer Room Speed ​​and Performance Evaluation - Fast but Disk IO e memoria È il collo di bottiglia. Se desideri monitorare anche la stabilità della rete del server VPS, puoi utilizzare questo strumento: Installazione e configurazione Smokeping: uno strumento di monitoraggio delle prestazioni di rete open source gratuito per la distribuzione visiva master/slave.

1. Installazione e utilizzo di ngxtop

1.1 installazione ngxtop

Home page del progetto:

  1. HTTPS://GitHub.com/Lebinhong/Quella piccola cima

ngxtop è adatto per i log del server Nginx. ngxtop può essere installato con il seguente comando:

Fedora:yum install python-pip
CentOS/RHEL需先安装EPEL,安装完后:yum install python-pip
Debian/Ubuntu:apt-get install python-pip

pip install ngxtop

Oppure puoi installarlo direttamente dal sorgente:

wget https://github.com/lebinh/ngxtop/archive/master.zip -O ngxtop-master.zip
unzip ngxtop-master.zip
cd ngxtop-master
python setup.py install

1.2  utilizzo di ngxtop

L'utilizzo di base di ngxtop è il seguente:

gxtop [选项]
ngxtop [选项] (print|top|avg|sum) <变量>
ngxtop info

Le opzioni hanno i seguenti parametri:

-l: specifica il percorso completo del file di registro (Nginx o Apache2)

-f: formato del registro

–no-follow: elabora il file di registro attualmente scritto invece di elaborare i registri appena aggiunti al file di registro in tempo reale

-t: frequenza di aggiornamento

-n: visualizza il numero di riga

-o : regola di ordinamento (l'impostazione predefinita è il conteggio degli accessi)

-a …, –a …: aggiunge espressioni (generalmente espressioni aggregate come sum, avg, min, max, ecc.) all'output.

-v: restituisce informazioni dettagliate

-i: elabora solo i record che corrispondono alle regole

-c <file> o –config <file> specifica il file di configurazione nginx e analizza automaticamente il formato del registro

-i <espressione-filtro> o –filter <espressione-filtro> I filtri che soddisfano l'espressione verranno elaborati

-p <espressione-filtro> o –pre-filter <espressione-filtro> espressione interna al filtro da controllare nella fase di pre-analisi.

Le variabili di ngxtop sono: remote_addr, remote_user, time_local, request, request_path, status, body_bytes_sent, http_referer, http_user_agent. Viene utilizzato principalmente per analizzare l'indirizzo IP, il percorso della richiesta, lo stato HTTP, il referer, user_agent, ecc.

1.3  esempio ngxtop

È possibile utilizzare ngxtop info per visualizzare l'indirizzo del registro del server locale e il percorso del file di configurazione. Tuttavia, può visualizzare solo alcuni file di registro predefiniti e alcuni file di registro personalizzati non verranno visualizzati.

Scopri i primi dieci URL di richiesta per gli errori 404. codice comando:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow top request_path --filter 'status == 404'

L'effetto è il seguente:

Scopri i dieci indirizzi IP più visitati. codice comando:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr

L'effetto è il seguente:

Scopri i dieci indirizzi IP con il traffico principale. codice comando:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --order-by 'avg(bytes_sent) * count'

Scopri i codici di errore superiori a 400 e visualizza la richiesta, lo stato e http_referer. codice comando:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow -i 'status >= 400' print request status http_referer

Trova i primi 10 valori medi di bytes_sent con codice di stato 200 e request_path che inizia con wzfou. codice comando:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow avg bytes_sent --filter 'status == 200 and request_path.startswith("wzfou")'

Attraverso i comandi di cui sopra, puoi sostanzialmente bloccare rapidamente gli indirizzi IP di alcune richieste anomale. Per impostazione predefinita, ngxtop visualizzerà i primi 10 record. Puoi aggiungere il parametro –n xxx per controllare il numero visualizzato. Il comando è il seguente:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr -n 20

ngxtop implementa il monitoraggio dei log del server. Per visualizzare il monitoraggio dei log di Nginx in tempo reale, è necessario solo il parametro –no-follow. Il comando è il seguente:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --group-by remote_addr

L'effetto è il seguente:

2. Installazione e utilizzo di GoAccess

2.1  Installazione di GoAccess

Sito ufficiale di GoAccess:

  1. HTTPS://go access.IO/

GoAccess supporta l'analisi dei log di server come Apache, Nginx, Amazon S3, Elastic Load Balancing e CloudFront. Il comando di installazione è il seguente:

apt-get install libncursesw5-dev libgeoip-dev
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
tar -xzvf goaccess-1.2.tar.gz
cd goaccess-1.2/
./configure --enable-utf8 --enable-geoip=legacy
make
make install

A seconda delle tue esigenze, puoi modificare le opzioni di configurazione durante l'installazione di GoAccess. come segue:

--enable-debug Compila con flag di debug e disattiva le ottimizzazioni del compilatore.
--enable-utf8 Ampio supporto di caratteri. Dipende dal modulo Ncursesw.
--enable-geoip=<legacy|mmdb> Supporto per la geolocalizzazione. Dipende dal modulo MaxMind GeoIP. legacy utilizzerà il database GeoIP originale. mmdb utilizzerà il database GeoIP2 potenziato.
--enable-tcb=<memhash|btree> Supporto di archiviazione Tokyo Cabinet . memhash utilizzerà il database hash in memoria del Governo di Tokyo. btree utilizzerà il database B+Tree su disco del Tokyo Cabinet.
–disable-zlib Disabilita l'uso della compressione zlib sui database B+Tree.
--disable-bzip Disabilita l'uso della compressione bzip2 sui database B+Tree.
--with-getline fa sì che utilizzi un buffer di riga che si estende dinamicamente per analizzare le richieste di riga completa, altrimenti verrà utilizzato un buffer di dimensione fissa (4096).
--with-openssl Abilita la comunicazione tra GoAccess e il relativo server WebSocket per supportare OpenSSL.

2.2  Utilizzo di GoAccess

La sintassi di GoAccess è la seguente:

goaccess [filename] [ options ... ] [-c][-M][-H][-q][-d][...]

I parametri comunemente utilizzati sono descritti come segue:

-f –file-log=<filelog>

Specificare il percorso del file di registro di input. Se un file di input è specificato nel file di configurazione, ha la precedenza su quello specificato sulla riga di comando tramite il parametro -f.

-l –log-debug=<nome file>

Invia tutte le informazioni di debug al file specificato. Le opzioni di configurazione devono essere specificate --enable-debug

-p –config-file=<configfile>

Specifica di utilizzare un file di configurazione personalizzato. Se questo parametro è impostato, la sua priorità sarà maggiore rispetto al file di configurazione globale (se presente).

–invalid-requests=<nome file>

Registra le richieste non valide nel file specificato.

--no-global-config

Disabilita il caricamento dei file di configurazione globale. Le directory possibili dovrebbero essere /usr/etc/, /etc/ o /usr/local/etc/, a meno che non venga specificato durante l'esecuzione di ./configure --sysconfdir=/dir.

-a –elenco-agenti

Apri l'elenco degli UserAgent. Quando è attivato, la velocità di analisi verrà ridotta.

-d –con-risolutore-di-uscita

Abilita la risoluzione IP durante l'output di report HTML o JSON.

-e –exclude-ip <IP|intervallo IP>

Escludere un indirizzo IPv4 o IPv6. Utilizza i connettori per rappresentare i segmenti IP (inizio-fine).

-H –protocollo-http=<sì|no>

Cambio del protocollo di richiesta HTTP. Verrà creato un campo di richiesta contenente il protocollo di richiesta + la richiesta reale.

-M –metodo-http=<sì|no>

Cambio del metodo di richiesta HTTP. Verrà creato un campo richiesta contenente il metodo di richiesta + la richiesta reale.

-o –output=<json|csv>

Reindirizzare il file specificato sull'output standard, utilizzando il suffisso per determinare il formato di output:

-q –nessuna-stringa-query

Ignora la stringa di query richiesta. Cioè: www.google.com/page.htm?query => www.google.com/page.htm
Nota: la rimozione della stringa di query ridurrà notevolmente il consumo di memoria, soprattutto per le richieste di timestamp.

-r –nessun risolutore di termini

Disabilita la risoluzione IP durante l'output del terminale.

–444-come-404

Gestire lo stato non standard 444 come 404.

–4xx-a-conteggio-univoco

Aggiungi il numero di errori client 4xx al numero di visitatori unici.

–all-static-files

Contare i file statici contenenti stringhe di query.

–date-spec=<data|ora>

Imposta il formato di visualizzazione della data, uno è il formato data standard (predefinito) e l'altro è il formato con le ore aggiunte alla data.
Valido solo nel pannello ospite. Utile per analizzare i dati dei visitatori a livello orario. Esempio di formato di visualizzazione: 18/dic/2010:19

--doppia decodifica

Decodificare un valore con doppia codifica. Compresi UserAgent, Richiesta e Referer.

–enable-panel=<PANNELLO>

Apri il pannello specificato. Elenco dei pannelli:

–spec-ora=<ora|min>

Imposta il formato di visualizzazione dell'ora, uno è il formato dell'ora standard (predefinito) e l'altro è il formato con i minuti aggiunti all'ora (ogni dieci minuti).
viene utilizzato per il pannello di distribuzione del tempo. Utile per analizzare i picchi di traffico durante periodi di tempo specifici.

–ignore-crawler

Ignora i crawler.

–ignore-panel=<PANNELLO>

Ignora il pannello specificato. Elenco dei pannelli:

–ignore-referer=<riferitore>

Ignorare la fonte delle statistiche. Sono supportati i caratteri jolly. Ad esempio: *.dominio.com ww?.dominio.*

–ignore-status=<STATO>

Ignora l'analisi o visualizza uno o più codici di stato. Se sono presenti più codici di stato, utilizzare questo parametro per specificarne uno alla volta.

–num-test=<numero>

Imposta il numero di righe di test, ovvero testa il registro di accesso utilizzando il formato registro/data/ora specificato. Il valore predefinito è 10 righe. Se impostato su 0 , il parser non eseguirà alcun test e analizzerà direttamente l'intero file. Se una riga corrisponde al formato registro/data/ora specificato prima di raggiungere numero, il parser considererà valido il file di registro, altrimenti GoAccess restituirà EXIT_FAILURE e visualizzerà i relativi messaggi di errore.

–process-and-exit

Analizza il registro e non emette dati all'uscita. Utilizzato principalmente quando si desidera solo aggiungere dati al database del disco senza generare report.

–real-os

Visualizza il nome reale del sistema operativo. Ad esempio: Windows XP, Snow Leopard.

–sort-panel=<PANNELLO,CAMPO,ORDINE>

S ordina i pannelli durante il caricamento iniziale. Ordina le opzioni separate da virgole. Le opzioni utilizzano il formato: PANNELLO, METRICO, ORDINE

--file-statico <estensione>

Aggiungi il suffisso del file statico. Ad esempio: .mp3. I nomi dei suffissi fanno distinzione tra maiuscole e minuscole.

-g –std-geoip

Database GeoIP standard, ingombro di memoria ridotto.

–geoip-database <geocityfile>

Imposta il percorso del database GeoIP. Ad esempio: GeoLiteCity.dat. Deve essere scaricato localmente da maxmind.com. Il supporto è disponibile sia per IPv4 che per IPv6. Nota: --geoip-city-data è un alias per --geoip-database.
Nota: se si utilizza GeoIP2, è necessario scaricare il database della città/paese da MaxMind e impostarlo tramite --geoip-database.

Formato registro GoAccess. GoAccess dispone anche di un parametro utilizzato per impostare il formato del registro del server: –log-format <logformat>. Il parametro log-format è seguito da uno spazio o da un delimitatore di tabulazione (t), utilizzato per specificare il formato della stringa di log.

Se si utilizza il nome del formato registro predefinito nella tabella seguente, è possibile utilizzarlo direttamente come variabile nel formato registro/data/ora di GoAccess.

COMBINED     | 联合日志格式
VCOMBINED    | 支持虚拟主机的联合日志格式
COMMON       | 通用日志格式
VCOMMON      | 支持虚拟主机的通用日志格式
W3C          | W3C 扩展日志格式
SQUID        | Native Squid 日志格式
CLOUDFRONT   | 亚马逊 CloudFront Web 分布式系统
CLOUDSTORAGE | 谷歌云存储
AWSELB       | 亚马逊弹性负载均衡
AWSS3        | 亚马逊简单存储服务 (S3)

2.3  Come impostare il formato del registro

Per prima cosa, dai un'occhiata a qual è la tua log_format. La direttiva log_format è la seguente:

Sintassi: log_format nome stringa …;
Valore predefinito: log_format combinato “…”;
Sezione configurazione: http

name rappresenta il nome del formato e string rappresenta il formato equivalente. log_format ha un formato di registro combinato predefinito che non necessita di essere impostato, che equivale al formato di registro combinato di Apache, come mostrato di seguito:

log_format  combined  '$remote_addr - $remote_user  [$time_local]  '
                                   ' "$request"  $status  $body_bytes_sent  '
                                   ' "$http_referer"  "$http_user_agent" ';

Naturalmente è anche possibile aggiungere le informazioni che il registro del server deve ottenere in base alle proprie esigenze. Nel formato log sono consentite le seguenti variabili:

remote_addr, $http_x_forwarded_for 记录客户端IP地址
remote_user 记录客户端用户名称
request 记录请求的URL和HTTP协议
status 记录请求状态
body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
bytes_sent 发送给客户端的总字节数。
connection 连接的序列号。
connection_requests 当前通过一个连接获得的请求数量。
msec 日志写入时间。单位为秒,精度是毫秒。
pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
http_referer 记录从哪个页面链接访问过来的
http_user_agent 记录客户端浏览器相关信息
request_length 请求的长度(包括请求行,请求头和请求正文)。
request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
time_iso8601 ISO8601标准格式下的本地时间。
time_local 通用日志格式下的本地时间。

Di seguito è riportato un esempio di impostazione log_format:

http {
 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                                        '"$status" $body_bytes_sent "$http_referer" '
                                        '"$http_user_agent" "$http_x_forwarded_for" '
                                        '"$gzip_ratio" $request_time $bytes_sent $request_length';
 
 log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" '
                                '"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
                                '[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';
 
 open_log_file_cache max=1000 inactive=60s;
 
 server {
 server_name ~^(www.)?(.+)$;
 access_log logs/$2-access.log main;
 error_log logs/$2-error.log;
 
 location /srcache {
 access_log logs/access-srcache.log srcache_log;
 }
 }
}

Questa è la corrispondenza tra il formato di registro GoAccess e il formato di registro del server:

%t 匹配time-format格式的时间字段

%d 匹配date-format格式的日期字段

%h host(客户端ip地址,包括ipv4和ipv6)

%r 来自客户端的请求行

%m 请求的方法

%U URL路径

%H 请求协议

%s 服务器响应的状态码

%b 服务器返回的内容大小

%R HTTP请求头的referer字段

%u 用户代理的HTTP请求报头

%D 请求所花费的时间,单位微秒

%T 请求所花费的时间,单位秒

%^ 忽略这一字段

Esempio di modifica del registro GoAccess:

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

Il file di configurazione predefinito di GoAccess goaccess.conf si trova nel percorso /usr/local/etc Il formato predefinito è: log-format %h %^[%d:. %t %^] "%r" %s %b "%R" "%u". Osserva il formato del registro del server riportato sopra e scopri che ci sono più tempi di risposta $request_time e tempi di risposta upstream $upstream_response_time.

Possiamo modificarlo come segue:

原来:log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
修改:log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^ %^ %T

Gli ultimi tre elementi %^ %^ %T, %^ significa ignora, %T significa "tempo di risposta in secondi, preciso al millisecondo" . Modificando il formato di GoAccess, corrisponde al formato di registro del nostro server.

2.4  Esempio di GoAccess

Se il tuo server utilizza un formato di log comune, un formato di log congiunto, incluso host virtuale, formato W3C e Amazon CloudFront (download distribuito), ecc., non è necessario modificare il formato di log, basta utilizzarlo direttamente. Sia LNMP che Oneinstack utilizzano il formato COMBINATO.

GoAccess analizza il comando log nel terminale:

goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED

Nel comando precedente, -f specifica il log /percorso/del/log da analizzare; –log-format formato log, il formato predefinito LNMP è: COMBINED. L'effetto dopo la corsa è il seguente:

I tasti di scelta rapida per le operazioni sono i seguenti:

F1 o h pagina principale della guida.

F5Ridisegna la finestra principale.

qEsci dal programma, dalla finestra corrente o dal modulo bloccato.

o o ENTER espande il modulo selezionato o apre una finestra.

0-9 e Shift + 0 attivano il modulo selezionato.

jScorri verso il basso nel modulo espanso.

kScorri verso l'alto nel modulo espanso.

cImposta o modifica la combinazione di colori.

^ fScorre avanti di una schermata nel modulo corrente.

^ bScorri indietro di una schermata nel modulo corrente.

TABattiva/disattiva modulo (avanti).

SHIFT + TABCambia modulo (indietro).

s Ordina le opzioni dei moduli attivi.

/ effettua ricerche in tutti i moduli (supporta le espressioni regolari).

nTrova il luogo in cui si verificherà l'evento successivo.

gSposta sulla prima opzione o sulla parte superiore dello schermo.

GSposta all'ultima opzione o alla parte inferiore dello schermo.

Se desideri visualizzare i primi dieci indirizzi IP più visitati, premi il tasto numerico 5 per aprire i dettagli del modulo. Come mostrato di seguito:

Molti altri moduli digitali corrispondenti sono i seguenti:

Premi 1 per scegliere come target "Visite al giorno"

Premi 2 per passare a "URL più richiesti"

Premere 3 per passare a "File statici più richiesti"

Premi 4 per passare a "404 più richiesti"

Premi 5 per passare a "IP utente più richiesti"

Premere 6 per accedere a "Sistema operativo dell'utente"

Premi 7 per accedere a "Browser dell'utente"

Premere 8 per accedere alle statistiche orarie

Uscita GoAccess. Il comando è il seguente:

Genera un rapporto HTML:

# goaccess access.log -a -o report.html

Genera un rapporto JSON:

# goaccess access.log -a -d -o report.json

Genera un file CSV:

# goaccess access.log --no-csv-summary -o report.csv

GGoAccess è molto flessibile e supporta l'analisi e il filtraggio in tempo reale. Ad esempio: devi diagnosticare rapidamente i problemi monitorando i log in tempo reale:

# tail -f access.log | goaccess -

Ancora meglio, puoi anche usare tail -f per lavorare con uno strumento di corrispondenza dei modelli, come: grep, awk, sed, ecc.

# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -

Oppure puoi analizzare il file da zero con la pipe aperta e applicare un filtro allo stesso tempo:

# tail -f -n +0 access.log | grep --line-buffered 'Firefox' | goaccess -o out.html --real-time-html -

Per esempio:

Output GoAccess in Html e quindi accedervi con un browser È possibile utilizzare il seguente comando:

goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/howsvps.com/wzfou.html

L'effetto dell'accesso tramite browser è il seguente (clicca per ingrandire):

I grafici prodotti da GoAccess sono molto belli e puoi anche visualizzare opzioni dettagliate nei grafici. Per i dettagli, puoi anche consultare la demo sul sito ufficiale: https://rt.goaccess.io/

Output GoAccess in Html e aggiornalo in tempo reale Il comando è il seguente:

goaccess -d -f /data/wwwlogs/howsvps.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/howsvps.com/wzfou.html --real-time-html --port=9870 --daemonize

Quanto sopra mostra che dopo che il demone ha avviato GoAccess, utilizza Websocket per stabilire una connessione lunga. Per impostazione predefinita, è in ascolto sulla porta 7890. È possibile specificare il numero di porta tramite il parametro --port.

Dopo aver specificato il numero di porta, ricordati di aprirlo nel firewall VPS:

iptables -A INPUT -p tcp -m tcp --dport 9870 -j ACCEPT

3. Riepilogo

ngxtop è adatto a semplici esigenze di ricerca, mentre GoAccess si concentra sull'analisi generale e può anche essere utilizzato come statistica. Se il tuo sito web utilizza SSL, quando GoAccess genera la pagina HTML per il monitoraggio in tempo reale, ricordati di configurare ssl-cert e ssl- nella chiave del file di configurazione goaccess.conf elemento.

Naturalmente possiamo anche usare crontab per chiedere periodicamente a GoAccess di generare pagine HTML statistiche, il che equivale al monitoraggio online in tempo reale dei log del server. Il codice è il seguente (genera una pagina HtmL ogni 5 minuti):

*/5 * * * * goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/wzfou.com/wzfou.html

Per coloro che non sanno come impostare il formato del registro di GoAccess, è possibile utilizzare direttamente lo strumento di conversione online : https://github.com/stockrt/nginx2goaccess. Ordine:

用法: ./nginx2goaccess.sh '<log_format>'

./nginx2goaccess.sh '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'

I risultati di output possono essere utilizzati direttamente nelle impostazioni del formato del registro di GoAccess:

- Generated goaccess config:

time-format %T
date-format %d/%b/%Y
log_format %h - %^ [%d:%t %^] "%r" %s %b "%R" "%u"

lascia un commento