Recentemente, "cobiçando" uma pechincha, mudei o servidor para o host Alibaba Cloud International Edition Hong Kong VPS. A maior sensação depois de mudar para cá não é a melhoria da velocidade - porque o kdatacenter VPS coreano usado originalmente também é muito rápido quando acessado na rede de telecomunicações - mas o desempenho do host Alibaba Cloud VPS é realmente bom em comparação com outros hosts VPS que também são 1 GB. É um pouco fraco.

Acabei de usar uma ferramenta para verificar a carga do sistema do Alibaba Cloud Hong Kong VPS e a carga do sistema continuou aumentando. Às vezes, descobri que não conseguia abri-lo quando estava escrevendo um artigo em segundo plano. Abri o log do servidor e encontrei muitos IPs anormais, como varredura de portas, injeção de SQL, arquivos de backup de sites "ausentes" e testes de estresse AB... Resumindo, havia muitos comportamentos anormais de acesso humano.

Analisar o comportamento do IP em logs é um trabalho cansativo, especialmente quando os logs excedem centenas de MB e é muito lento abri-los como arquivos de texto. Este artigo compartilhará duas excelentes ferramentas de análise de log do servidor: ngxtop e GoAccess. ngxtop analisa arquivos de log Nginx e os exibe em tempo real usando uma interface semelhante ao comando top.

ngxtop pode analisar arquivos de log anteriores e também monitorar os logs do servidor em tempo real. Você pode descobrir rapidamente os endereços IP mais visitados nos logs, erros 403/500/404, classificações de páginas solicitadas, etc. o comando Superior. ngxtop é uma ferramenta leve, enquanto GoAccess é mais como uma poderosa ferramenta de estatísticas de log.

GoAccess não é apenas rico em gráficos e texto, mas também rápido, com uma velocidade de análise de registro de log de 8 W por segundo, e o websocket atualiza as estatísticas a cada 10 segundos. GoAccess não possui apenas uma interface de linha de comando, mas também pode gerar uma página web HTML, permitindo que você veja intuitivamente o número de visitantes no log, arquivos solicitados, 404 e outros erros, localização do usuário, navegador, sistema operacional, URL de origem, Código de status HTTP, etc.

Ferramentas de análise de log do servidor: ngxtop e GoAccess - monitoramento em tempo real e gerenciamento visual para encontrar rapidamente a origem das exceções

Resumindo, ngxtop e GoAccess são duas ferramentas poderosas para analisar logs de servidores, como Apache e Nginx. Depois de dominar esses dois softwares, os IPs “potencialmente” perigosos para o servidor podem ser revelados. Como webmaster, aprender a usar mais um software significa que você pode economizar outras despesas com servidor, como:

  1. Use Huginn para capturar atualizações de contas públicas RSS e WeChat de qualquer site - crie uma plataforma completa de leitura de informações
  2. Linux VPS monta Google Drive e Dropbox - realiza sincronização e backup de dados de host VPS
  3. Três ferramentas gratuitas para ajudá-lo a detectar a autenticidade dos servidores VPS - Desempenho do host VPS e métodos de teste de velocidade

PS: Atualizado em 21 de outubro de 2017, Amigos interessados ​​em usar o Alibaba Cloud Hong Kong VPS podem ler minha análise primeiro: Alibaba Cloud International Version Hong Kong Computer Room Speed ​​​​e Performance Evaluation - Fast but Disk IO e memória É o gargalo. Se você também deseja monitorar a estabilidade da rede do servidor VPS, você pode usar esta ferramenta: Instalação e configuração do Smokeping - uma ferramenta gratuita de monitoramento de desempenho de rede de código aberto para implantação visual mestre/escravo.

1. Instalação e uso do ngxtop

1.1  instalação do ngxtop

Página inicial do projeto:

  1. HTTPS://GitHub.com/Lebinhong/Aquele topzinho

ngxtop é adequado para logs do servidor Nginx. ngxtop pode ser instalado com o seguinte comando:

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

pip install ngxtop

Ou você pode instalá-lo diretamente da fonte:

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  uso do ngxtop

O uso básico do ngxtop é o seguinte:

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

As opções possuem os seguintes parâmetros:

-l: Especifique o caminho completo do arquivo de log (Nginx ou Apache2)

-f: formato de registro

–no-follow: processa o arquivo de log atualmente gravado em vez de processar os logs recém-adicionados ao arquivo de log em tempo real

-t: frequência de atualização

-n: exibe o número da linha

-o : regra de classificação (o padrão é contagem de acessos)

-a…, –a…: Adicione expressões (geralmente expressões agregadas como soma, média, mínimo, máximo, etc.) à saída.

-v: gera informações detalhadas

-i: processa apenas registros que correspondem às regras

-c <arquivo> ou –config <arquivo> especifica o arquivo de configuração nginx e analisa automaticamente o formato do log

-i <expressão de filtro> ou –filter <expressão de filtro> Os filtros que satisfazem a expressão serão processados

-p <filter-expression> ou –pre-filter <filter-expression> expressão no filtro para verificar na fase de pré-análise.

As variáveis ​​do ngxtop são: remote_addr, remote_user, time_local, request, request_path, status, body_bytes_sent, http_referer, http_user_agent. É usado principalmente para analisar o endereço IP, caminho da solicitação, status HTTP, referenciador, user_agent, etc.

1.3  exemplo ngxtop

Você pode usar ngxtop info para visualizar o endereço de log do servidor local e o caminho do arquivo de configuração. No entanto, ele só pode exibir alguns arquivos de log padrão e alguns arquivos de log personalizados não serão exibidos.

Descubra os dez principais URLs de solicitação de erros 404. código de comando:

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

O efeito é o seguinte:

Descubra os dez endereços IP mais visitados. código de comando:

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

O efeito é o seguinte:

Descubra os dez principais endereços IP de tráfego. código de comando:

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

Descubra códigos de erro acima de 400 e exiba solicitação, status e http_referer. código de comando:

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

Encontre os 10 principais valores médios de bytes_sent com código de status 200 e request_path começando com wzfou. código de comando:

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

Através dos comandos acima, você pode basicamente bloquear rapidamente os endereços IP de algumas solicitações anormais. Por padrão, ngxtop exibirá os primeiros 10 registros. Você pode adicionar o parâmetro –n xxx para controlar o número exibido. O comando é o seguinte:

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

ngxtop implementa monitoramento de logs do servidor. Para exibir o monitoramento de log Nginx em tempo real, você só precisa do parâmetro –no-follow.

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

O efeito é o seguinte:

2. Instalação e uso do GoAccess

2.1  Instalação do GoAccess

Site oficial do GoAccess:

  1. HTTPS: // acesse acesso.IO/

GoAccess oferece suporte à análise de logs de servidores como Apache, Nginx, Amazon S3, Elastic Load Balancing e CloudFront. O comando de instalação é o seguinte:

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

Dependendo de suas necessidades, você pode ajustar as opções de configuração ao instalar o GoAccess. do seguinte modo:

--enable-debug Compile com sinalizadores de depuração e desative as otimizações do compilador.
--enable-utf8 Amplo suporte a caracteres. Depende do módulo Ncursesw.
--enable-geoip=<legacy|mmdb> Suporte para geolocalização. Depende do módulo MaxMind GeoIP. legado usará o banco de dados GeoIP original. mmdb usará o banco de dados GeoIP2 aprimorado.
--enable-tcb=<memhash|btree> Suporte de armazenamento do Gabinete Tóquio . memhash usará o banco de dados hash na memória do Tokyo Cabinet. btree usará o banco de dados B+Tree em disco do Tokyo Cabinet.
–disable-zlib Desativa o uso da compactação zlib em bancos de dados B+Tree.
--disable-bzip Desativa o uso da compactação bzip2 em bancos de dados B+Tree.
--with-getline faz com que use um buffer de linha de extensão dinâmica para analisar solicitações de linha completa, caso contrário, um buffer de tamanho fixo (4096) será usado.
--with-openssl Permite a comunicação entre GoAccess e seu servidor WebSocket para oferecer suporte a OpenSSL.

2.2  Uso do GoAccess

A sintaxe do GoAccess é a seguinte:

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

Os parâmetros comumente usados ​​são descritos a seguir:

-f –arquivo de log=<arquivo de log>

Especifique o caminho para o arquivo de log de entrada. Se um arquivo de entrada for especificado no arquivo de configuração, ele terá precedência sobre aquele especificado na linha de comando por meio do parâmetro -f.

-l –log-debug=<nome do arquivo>

Envie todas as informações de depuração para o arquivo especificado. As opções de configuração precisam ser especificadas --enable-debug

-p –arquivo-config=<arquivoconfig>

Especifica o uso de um arquivo de configuração personalizado. Se este parâmetro for definido, sua prioridade será maior que o arquivo de configuração global (se houver).

–solicitações inválidas=<nome do arquivo>

Registrar solicitações inválidas no arquivo especificado.

--no-global-config

Desative o carregamento de arquivos de configuração global. Os diretórios possíveis devem ser /usr/etc/, /etc/ ou /usr/local/etc/, a menos que especificado ao executar ./configure --sysconfdir=/dir.

-a –lista de agentes

Abra a lista UserAgent. Quando ativado, a velocidade de análise será reduzida.

-d –com resolvedor de saída

Ative a resolução IP ao gerar relatórios HTML ou JSON.

-e –exclude-ip <IP|Intervalo de IP>

Exclua um endereço IPv4 ou IPv6. Use conectores para representar segmentos IP (início-fim).

-H –protocolo http=<sim|não>

Troca de protocolo de solicitação HTTP. Será criado um campo de solicitação contendo o protocolo da solicitação + a solicitação real.

-M –http-method=<sim|não>

Mudança de método de solicitação HTTP. Será criado um campo de solicitação contendo o método de solicitação + a solicitação real.

-o –saída=<json|csv>

Redirecione o arquivo fornecido para a saída padrão, usando o sufixo para determinar o formato de saída:

-q –sem string de consulta

Ignore a string de consulta solicitada. Isto é: www.google.com/page.htm?query => www.google.com/page.htm
Observação: a remoção da string de consulta reduzirá bastante o consumo de memória, especialmente para solicitações de carimbo de data/hora.

-r –resolvedor sem termo

Desative a resolução IP durante a saída do terminal.

–444-as-404

Lide com o status não padrão 444 como 404.

–4xx para contagem única

Adicione o número de erros do cliente 4xx ao número de visitantes únicos.

–todos os arquivos estáticos

Contar arquivos estáticos contendo strings de consulta.

–data-especificação=<data|h>

Defina o formato de exibição da data, um é o formato de data padrão (padrão) e o outro é o formato com horas anexadas à data.
Válido apenas no painel de convidados. Útil para analisar dados de visitantes por hora. Exemplo de formato de exibição: 18/dez/2010:19

--double-decode

Decodifique um valor com codificação dupla. Incluindo UserAgent, Solicitação e Referer.

–enable-panel=<PAINEL>

Abra o painel especificado. Lista do painel:

–hora-especificação=<hora|min>

Defina o formato de exibição da hora, um é o formato de hora padrão (padrão) e o outro é o formato com minutos anexados à hora (a cada dez minutos).
é usado para o painel de distribuição de tempo. Útil para analisar picos de tráfego durante períodos específicos.

–ignorar rastreadores

Ignore os rastreadores.

–ignore-panel=<PAINEL>

Ignore o painel especificado. Lista do painel:

–ignore-referer=<referente>

Ignore a fonte das estatísticas. Curingas são suportados. Por exemplo: *.domain.com ww?.domain.*

–ignore-status=<STATUS>

Ignore a análise ou exiba um ou mais códigos de status. Se houver vários códigos de status, use esse parâmetro para especificar um de cada vez.

–num-testes=<número>

Defina o número de linhas de teste, ou seja, teste o log de acesso usando o formato de log/data/hora fornecido. O valor padrão é 10 linhas. Se definido como 0 , o analisador não fará nenhum teste e analisará diretamente o arquivo inteiro. Se uma linha corresponder ao formato de log/data/hora fornecido antes de atingir número, o analisador considerará o arquivo de log válido, caso contrário, GoAccess retornará EXIT_FAILURE e exibirá mensagens de erro relevantes.

–processar e sair

Analise o log e não gere dados ao sair. Usado principalmente quando você deseja apenas adicionar dados ao banco de dados em disco sem gerar relatórios.

–real-os

Exiba o nome real do sistema operacional. Por exemplo: Windows XP, Snow Leopard.

–sort-panel=<PAINEL, CAMPO, ORDEM>

S classifica os painéis durante o carregamento inicial. Classifique as opções separadas por vírgulas. As opções usam o formato: PAINEL, METRIC, ORDER

--static-file <extensão>

Adicione sufixo de arquivo estático. Por exemplo: .mp3. Os nomes dos sufixos diferenciam maiúsculas de minúsculas.

-g –std-geoip

Banco de dados GeoIP padrão, baixo consumo de memória.

–geoip-database <geocityfile>

Defina o caminho do banco de dados GeoIP. Por exemplo: GeoLiteCity.dat. Ele precisa ser baixado localmente em maxmind.com. O suporte está disponível para IPv4 e IPv6. Nota: --geoip-city-data é um alias para --geoip-database.
Nota: Se estiver usando GeoIP2, você precisa baixar o banco de dados de cidade/país do MaxMind e configurá-lo via --geoip-database.

Formato de registro do GoAccess. GoAccess também possui um parâmetro usado para definir o formato de log do servidor: –log-format <logformat>. O parâmetro log-format é seguido por um caractere de espaço ou delimitador de tabulação (t), que é usado para especificar o formato da sequência de log.

Se você estiver usando o nome de formato de log predefinido na tabela abaixo, ele poderá ser usado diretamente como uma variável no formato de log/data/hora do GoAccess.

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

2.3  Como definir o formato do log

Primeiro, dê uma olhada em qual é o seu log_format. A diretiva log_format é a seguinte:

Sintaxe: log_format name string …;
Valor padrão: log_format combinado “…”;
Seção de configuração: http

name representa o nome do formato e string representa o formato equivalente. log_format possui um formato de log combinado padrão que não precisa ser definido, que é equivalente ao formato de log combinado do Apache, conforme mostrado abaixo:

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

Claro, você também pode adicionar as informações que o log do servidor precisa obter de acordo com suas necessidades. As seguintes variáveis ​​são permitidas no formato de log:

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 通用日志格式下的本地时间。

A seguir está um exemplo de configuração 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;
 }
 }
}

Esta é a correspondência entre formato de log GoAccess e formato de log do servidor:

%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 请求所花费的时间,单位秒

%^ 忽略这一字段

Exemplo de modificação de log 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';

O arquivo de configuração padrão do GoAccess goaccess.conf é colocado no caminho /usr/local/etc. O formato padrão é: log-format %h %^[%d: %t %^] "%r" %s %b "%R" "%u". Observe o formato de log do servidor acima e descubra que há mais tempos de resposta $request_time e tempo de resposta upstream $upstream_response_time.

Podemos modificá-lo da seguinte forma:

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

Os últimos três elementos %^ %^ %T, %^ significa ignorar, %T significa "tempo de resposta em segundos, com precisão de milissegundos" . Ao modificar o formato do GoAccess, ele corresponde ao formato de log do nosso servidor.

2.4  Exemplo GoAccess

Se o seu servidor usa formato de log comum, formato de log conjunto, incluindo host virtual, formato W3C e Amazon CloudFront (download distribuído), etc., não há necessidade de modificar o formato de log, basta usá-lo diretamente. Tanto o LNMP quanto o Oneinstack usam o formato COMBINADO.

GoAccess analisa o comando log no terminal:

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

No comando acima, -f especifica o log /caminho/para/log a ser analisado; –log-format formato de log, o formato padrão do LNMP é: COMBINADO. O efeito após a corrida é o seguinte:

As teclas de atalho de operação são as seguintes:

Página de ajuda principal F1 ou h.

F5Redesenhe a janela principal.

qSaia do programa, da janela atual ou do módulo travado.

o ou ENTER expande o módulo selecionado ou abre uma janela.

0-9 e Shift + 0 ativam o módulo selecionado.

jRole para baixo no módulo expandido.

kRole para cima no módulo expandido.

cDefina ou altere o esquema de cores.

^ fRola para frente uma tela no módulo atual.

^ bRolar uma tela para trás no módulo atual.

TABmódulo de alternância (avançar).

SHIFT + TABAlternar módulo (para trás).

s Classifica as opções dos módulos ativos.

/ pesquisa em todos os módulos (suporta expressões regulares).

nEncontre o local onde o próximo evento ocorrerá.

gVá para a primeira opção ou para o topo da tela.

GVá para a última opção ou para a parte inferior da tela.

Se você deseja visualizar os dez endereços IP mais visitados, pressione a tecla numérica 5 para abrir os detalhes do módulo. Como mostrado abaixo:

Vários outros módulos correspondentes digitais são os seguintes:

Pressione 1 para segmentar "Visitas por dia"

Pressione 2 para navegar até "URLs mais solicitados"

Pressione 3 para navegar até "Arquivos estáticos mais solicitados"

Pressione 4 para navegar até "404s mais solicitados"

Pressione 5 para navegar até "IPs de usuário mais solicitados"

Pressione 6 para navegar até "Sistema operacional do usuário"

Pressione 7 para navegar até "Navegador do usuário"

Pressione 8 para navegar até Estatísticas horárias

Saída GoAccess. O comando é o seguinte:

Gere um relatório HTML:

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

Gere um relatório JSON:

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

Gere um arquivo CSV:

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

GGoAccess é muito flexível e suporta análise e filtragem em tempo real. Por exemplo: você precisa diagnosticar problemas rapidamente monitorando logs em tempo real:

# tail -f access.log | goaccess -

Melhor ainda, você também pode usar tail -f para trabalhar com uma ferramenta de correspondência de padrões, como: grep, awk, sed, etc.

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

Ou você pode analisar o arquivo do zero com o pipe aberto e aplicar um filtro ao mesmo tempo:

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

Por exemplo:

Envie GoAccess para HTML e acesse-o com um navegador. Você pode usar o seguinte comando:

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

O efeito de acessá-lo com um navegador é o seguinte (clique para ampliar):

Os gráficos gerados pelo GoAccess são muito bonitos e você também pode visualizar opções detalhadas nos gráficos. Para mais detalhes, você também pode conferir a Demo no site oficial: https://rt.goaccess.io/

Envie GoAccess para HTML e atualize-o em tempo real. O comando é o seguinte:

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

A descrição acima mostra que após o daemon iniciar o GoAccess, ele usa o Websocket para estabelecer uma conexão longa. Ele escuta a porta 7890 por padrão. Você pode especificar o número da porta por meio do parâmetro --port.

Após especificar o número da porta, lembre-se de abri-la no firewall do seu VPS:

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

3. Resumo

O ngxtop é adequado para necessidades simples de pesquisa, enquanto o GoAccess se concentra na análise geral e pode até ser usado como estatística. Se o seu site usa SSL, quando o GoAccess gerar a página HTML para monitoramento em tempo real, lembre-se de configurar ssl-cert e ssl- na chave goaccess.conf do arquivo de configuração item .

Claro, também podemos usar o crontab para solicitar periodicamente ao GoAccess a geração de páginas HTML estatísticas, o que equivale ao monitoramento online em tempo real dos logs do servidor. O código é o seguinte (gera página HTML a cada 5 minutos):

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

Para quem não sabe como definir o formato de log do GoAccess, você pode usar diretamente a ferramenta de conversão online : https://github.com/stockrt/nginx2goaccess. Ordem:

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

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

Os resultados de saída podem ser usados ​​diretamente nas configurações de formato de log do GoAccess:

- Generated goaccess config:

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

Deixe uma resposta