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.
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:
- 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
- Linux VPS monta Google Drive e Dropbox - realiza sincronização e backup de dados de host VPS
- 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:
- 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:
- 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
ouJSON
.-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
ouh
.
F5
Redesenhe a janela principal.
q
Saia do programa, da janela atual ou do módulo travado.
o
ouENTER
expande o módulo selecionado ou abre uma janela.
0-9
eShift + 0
ativam o módulo selecionado.
j
Role para baixo no módulo expandido.
k
Role para cima no módulo expandido.
c
Defina ou altere o esquema de cores.
^ f
Rola para frente uma tela no módulo atual.
^ b
Rolar uma tela para trás no módulo atual.
TAB
módulo de alternância (avançar).
SHIFT + TAB
Alternar módulo (para trás).
s
Classifica as opções dos módulos ativos.
/
pesquisa em todos os módulos (suporta expressões regulares).
n
Encontre o local onde o próximo evento ocorrerá.
g
Vá para a primeira opção ou para o topo da tela.
G
Vá 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"