Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
goaccess — GoAccess é um analisador de logs web em tempo real e visualizador interativo que roda em um terminal em sistemas *nix ou através do seu navegador. | Kitploit
Ferramentas/GitHubGitHub/allinurl/goaccess
Utilitários de Propósito GeralPrivacidadeDetecção de AnomaliasAnálise de Logs
GitHuballinurl/goaccess

goaccess

GoAccess é um analisador de logs web em tempo real e visualizador interativo que roda em um terminal em sistemas *nix ou através do seu navegador.

Ver Repositório
20.8k1.2khá 1 diaRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

GoAccess C build GoAccess

O que é?

GoAccess é um analisador de logs web em tempo real, interativo e de código aberto, executado em um terminal em sistemas *nix ou diretamente no seu navegador. Projetado com administradores de sistemas, engenheiros DevOps e profissionais de segurança em mente, ele entrega estatísticas HTTP rápidas e acionáveis e relatórios visuais de servidor em tempo real. O GoAccess analisa seus logs de servidor web em tempo real e apresenta os dados diretamente no terminal ou através de um painel HTML ao vivo, facilitando o monitoramento de tráfego, a detecção de anomalias e a solução de problemas instantaneamente.

Mais informações em: https://goaccess.io.

Painel do Terminal GoAccess Painel HTML do GoAccess

Funcionalidades

O GoAccess analisa o arquivo de log web especificado e exibe os dados no terminal X. As funcionalidades incluem:

  • Completamente em Tempo Real
    Todos os painéis e métricas são atualizados a cada 200 ms na saída do terminal e a cada segundo na saída HTML.

  • Configuração Mínima Necessária
    Você pode simplesmente executá-lo contra seu arquivo de log de acesso, escolher o formato de log e deixar o GoAccess analisar o log de acesso e mostrar as estatísticas.

  • Rastreamento do Tempo de Resposta da Aplicação
    Rastreia o tempo gasto para atender a requisição. Extremamente útil se você deseja rastrear páginas que estão desacelerando seu site.

  • Autenticação WebSocket:
    O GoAccess oferece autenticação WebSocket aprimorada, suportando verificação JWT local e externa, com capacidade segura de renovação de token e integração perfeita com sistemas de autenticação externa.

  • Quase Todos os Formatos de Log Web
    O GoAccess permite qualquer string de formato de log personalizado. Opções predefinidas incluem Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, etc.

  • Processamento Incremental de Log
    Precisa de persistência de dados? O GoAccess tem a capacidade de processar logs incrementalmente através das opções de persistência em disco.

  • Apenas uma dependência
    O GoAccess é escrito em C. Para executá-lo, você só precisa do ncurses como dependência. É isso. Ele ainda possui seu próprio servidor WebSocket — http://gwsocket.io/.

  • Visitantes
    Determine a quantidade de hits, visitantes, largura de banda e métricas para as requisições mais lentas por hora ou data.

  • Métricas por Host Virtual
    Tem vários Hosts Virtuais (Blocos de Servidor)? Possui um painel que exibe qual host virtual está consumindo mais recursos do servidor web.

  • ASN (Mapeamento de Número de Sistema Autônomo)
    Ótimo para detectar padrões de tráfego malicioso e bloqueá-los adequadamente.

  • Esquema de Cores Personalizável
    Adapte o GoAccess ao seu gosto/esquema de cores. Seja através do terminal ou simplesmente aplicando a folha de estilo na saída HTML.

  • Suporte para Grandes Conjuntos de Dados
    O GoAccess possui a capacidade de analisar logs grandes devido às suas tabelas hash otimizadas em memória. Tem um uso de memória muito bom e um desempenho bastante bom. Esse armazenamento também oferece suporte para persistência em disco.

Quase todos os formatos de log web...

O GoAccess permite qualquer string de formato de log personalizado. Opções predefinidas incluem, mas não se limitam a:

  • Amazon CloudFront (Distribuição de Download).
  • Amazon Simple Storage Service (S3)
  • AWS Elastic Load Balancing
  • Formato de Log Combinado (XLF/ELF) Apache | Nginx
  • Formato de Log Comum (CLF) Apache
  • Google Cloud Storage.
  • Hosts virtuais Apache
  • Formato Nativo Squid.
  • Formato W3C (IIS).
  • Formato JSON Estruturado do Caddy.
  • Variante CLF do Traefik

Por que GoAccess?

O GoAccess foi projetado para ser um analisador de logs rápido, baseado em terminal. Sua ideia central é analisar e visualizar rapidamente as estatísticas do servidor web em tempo real sem precisar usar o navegador (ótimo se você deseja fazer uma análise rápida do seu log de acesso via SSH, ou se simplesmente ama trabalhar no terminal).

Ele também serve como uma ferramenta prática para monitoramento de segurança, facilitando a identificação de atividades suspeitas, padrões de tráfego incomuns, tentativas de força bruta, scanners, bots e requisições anômalas diretamente dos seus logs.

Embora a saída do terminal seja a saída padrão, ele tem a capacidade de gerar um relatório HTML completo, independente e em tempo real, bem como relatórios JSON e CSV.

Você pode vê-lo mais como uma ferramenta de comando de monitoramento do que qualquer outra coisa.

Instalação

Packaging status

Compilar a partir do release

O GoAccess pode ser compilado e usado em sistemas *nix.

Baixe, extraia e compile o GoAccess com:

root@kitploit:~
$ wget https://tar.goaccess.io/goaccess-1.10.2.tar.gz
$ tar -xzvf goaccess-1.10.2.tar.gz
$ cd goaccess-1.10.2/
$ ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib
$ make
# make install

Compilar a partir do GitHub (Desenvolvimento)

root@kitploit:~
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install

Distribuições

A maneira mais fácil de instalar o GoAccess em GNU+Linux é usando o gerenciador de pacotes preferido da sua distribuição GNU+Linux. Observe que nem todas as distribuições terão a versão mais recente do GoAccess disponível.

Debian/Ubuntu

root@kitploit:~
# apt-get install goaccess

Nota: É provável que isso instale uma versão desatualizada do GoAccess. Para garantir que você está executando a versão estável mais recente do GoAccess, veja a opção alternativa abaixo.

Repositório Oficial GoAccess Debian & Ubuntu

root@kitploit:~
$ wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
$ echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
$ sudo apt-get update
$ sudo apt-get install goaccess

Nota:

  • Os pacotes .deb no repositório oficial também estão disponíveis via HTTPS. Talvez seja necessário instalar o apt-transport-https.

Fedora

root@kitploit:~
# yum install goaccess

Arch

root@kitploit:~
# pacman -S goaccess

Gentoo

root@kitploit:~
# emerge net-analyzer/goaccess

OS X / Homebrew

root@kitploit:~
# brew install goaccess

FreeBSD

root@kitploit:~
# cd /usr/ports/sysutils/goaccess/ && make install clean
# pkg install sysutils/goaccess

OpenBSD

root@kitploit:~
# cd /usr/ports/www/goaccess && make install clean
# pkg_add goaccess

openSUSE

root@kitploit:~
# zypper ar -f obs://server:http http
# zypper in goaccess

OpenIndiana

root@kitploit:~
# pkg install goaccess

pkgsrc (NetBSD, Solaris, SmartOS, ...)

root@kitploit:~
# pkgin install goaccess

Windows

O GoAccess pode ser usado no Windows através do Cygwin. Veja os pacotes do Cygwin. Ou através do Subsistema GNU+Linux no Windows 10.

Docker

Uma imagem Docker foi atualizada, capaz de direcionar a saída de um log de acesso. Se você quiser apenas gerar um relatório, pode canalizar um log do ambiente externo para um processo baseado em Docker:

root@kitploit:~
touch report.html
cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED -

OU em tempo real

root@kitploit:~
tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -

Há também documentação sobre como usar o docker-compose.

Compilar em contêiner isolado

Você também pode compilar o binário para sistemas baseados em Debian em um ambiente de contêiner isolado para evitar poluir seu sistema local com as bibliotecas de desenvolvimento:

root@kitploit:~
$ curl -L "https://github.com/allinurl/goaccess/archive/refs/heads/master.tar.gz" | tar -xz && cd goaccess-master
$ docker build -t goaccess/build.debian-12 -f Dockerfile.debian-12 .
$ docker run -i --rm -v $PWD:/goaccess goaccess/build.debian-12 > goaccess

Você pode ler mais sobre o uso da imagem docker em DOCKER.md.

Pacotes das Distribuições

O GoAccess tem requisitos mínimos, é escrito em C e requer apenas ncurses. No entanto, abaixo está uma tabela de algumas dependências opcionais em algumas distros para compilar o GoAccess a partir do código fonte.

Nota: Talvez seja necessário instalar ferramentas de compilação como gcc, autoconf, gettext, autopoint etc. para compilar/construir software a partir do código fonte. Exemplo: base-devel, build-essential, "Development Tools".

Armazenamento

Tabelas Hash Padrão

O armazenamento em memória oferece melhor desempenho ao custo de limitar o tamanho do conjunto de dados à quantidade de memória física disponível. O GoAccess usa tabelas hash em memória. Tem um uso de memória muito bom e um desempenho bastante bom. Esse armazenamento também oferece suporte para persistência em disco.

Opções de Linha de Comando / Configuração

Veja as opções que podem ser fornecidas ao comando ou especificadas no arquivo de configuração. Se especificado no arquivo de configuração, as opções longas devem ser usadas sem o prefixo --.

Uso / Exemplos

Nota: Canalizar dados para o GoAccess não solicitará uma caixa de diálogo de configuração de log/data/hora; você precisará defini-la previamente em seu arquivo de configuração ou na linha de comando.

Primeiros Passos

Para gerar saída em um terminal e gerar um relatório interativo:

root@kitploit:~
# goaccess access.log

Para gerar um relatório HTML:

root@kitploit:~
# goaccess access.log -a > report.html

Para gerar um arquivo de relatório JSON:

root@kitploit:~
# goaccess access.log -a -d -o report.json

Para gerar um relatório CSV para a saída padrão:

root@kitploit:~
# goaccess access.log --no-csv-summary -o csv

O GoAccess também oferece grande flexibilidade para filtragem e análise em tempo real. Por exemplo, para diagnosticar rapidamente problemas monitorando logs desde que o goaccess foi iniciado:

root@kitploit:~
# tail -f access.log | goaccess -

E ainda melhor, para filtrar enquanto mantém um pipe aberto para preservar a análise em tempo real, podemos usar tail -f e uma ferramenta de correspondência de padrões como grep, awk, sed, etc.:

root@kitploit:~
# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -

ou para analisar desde o início do arquivo enquanto mantém o pipe aberto e aplica um filtro

root@kitploit:~
# tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -

Múltiplos Arquivos de Log

Existem várias maneiras de analisar vários logs com o GoAccess. A mais simples é passar vários arquivos de log na linha de comando:

root@kitploit:~
# goaccess access.log access.log.1

É possível até mesmo analisar arquivos de um pipe enquanto lê arquivos regulares:

root@kitploit:~
# cat access.log.2 | goaccess access.log access.log.1 -

Nota: o traço simples é anexado à linha de comando para informar ao GoAccess que ele deve ler do pipe.

Agora, se quisermos adicionar mais flexibilidade ao GoAccess, podemos usar zcat --force para ler arquivos compactados e descompactados. Por exemplo, se quisermos processar todos os arquivos de log access.log*, podemos fazer:

root@kitploit:~
# zcat --force access.log* | goaccess -

Nota: No Mac OS X, use gunzip -c em vez de zcat.

Suporte Multi-thread

Use --jobs=<count> (ou -j) para habilitar a análise multi-thread. Exemplo:

root@kitploit:~
# goaccess access.log -o report.html -j 4

E use --chunk-size=<256-32768> para ajustar o tamanho do chunk; o tamanho padrão do chunk é 1024. Exemplo:

root@kitploit:~
# goaccess access.log -o report.html -j 4 --chunk-size=8192

Saídas HTML em Tempo Real

O GoAccess tem a capacidade de gerar dados em tempo real no relatório HTML. Você pode até enviar o arquivo HTML por e-mail, pois ele é composto por um único arquivo sem dependências externas, que bacana!

O processo de geração de um relatório HTML em tempo real é muito semelhante ao processo de criação de um relatório estático. Apenas --real-time-html é necessário para torná-lo em tempo real.

root@kitploit:~
# goaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html

Para visualizar o relatório, navegue até http://your_site/report.html.

Por padrão, o GoAccess usará o nome do host do relatório gerado. Opcionalmente, você pode especificar a URL à qual o navegador do cliente se conectará. Veja FAQ para um exemplo mais detalhado.

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io

Por padrão, o GoAccess escuta na porta 7890. Para usar uma porta diferente de 7890, você pode especificá-la como (certifique-se de que a porta está aberta):

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --port=9870

E para vincular o servidor WebSocket a um endereço diferente de 0.0.0.0, você pode especificá-lo como:

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --addr=127.0.0.1

Nota: Para gerar dados em tempo real em uma conexão TLS/SSL, você precisa usar --ssl-cert=<cert.crt> e --ssl-key=<priv.key>.

Filtragem

Trabalhando com datas

Outro pipe útil seria filtrar datas do log web.

O seguinte obterá todas as requisições HTTP a partir de 05/Dec/2010 até o final do arquivo.

root@kitploit:~
# sed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a -

ou usando datas relativas, como o dia de ontem ou amanhã:

root@kitploit:~
# sed -n '/'$(date '+%d\/%b\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -

Se quisermos analisar apenas um determinado período de DATA a a DATA b, podemos fazer:

root@kitploit:~
# sed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a -

Se quisermos preservar apenas uma certa quantidade de dados e reciclar o armazenamento, podemos manter apenas um certo número de dias. Por exemplo, para manter e mostrar os últimos 5 dias:

root@kitploit:~
# goaccess access.log --keep-last=5

Hosts virtuais

Supondo que seu log contenha o campo de host virtual. Por exemplo:

root@kitploit:~
vhost.io:80 8.8.4.4 - - [02/Mar/2016:08:14:04 -0600] "GET /shop HTTP/1.1" 200 615 "-" "Googlebot-Image/1.0"

E você gostaria de anexar o host virtual à requisição para ver a qual host virtual as URLs principais pertencem:

root@kitploit:~
awk '$8=$1$8' access.log | goaccess -a -

Para fazer o mesmo, mas também usar filtragem e análise em tempo real:

root@kitploit:~
tail -f  access.log | unbuffer -p awk '$8=$1$8' | goaccess -a -

Para excluir uma lista de hosts virtuais, você pode fazer o seguinte:

root@kitploit:~
# grep -v "`cat exclude_vhost_list_file`" vhost_access.log | goaccess -

Arquivos, códigos de status e bots

Para analisar páginas específicas, ex.: visualizações de página, html, htm, php, etc., dentro de uma requisição:

root@kitploit:~
# awk '$7~/\.html|\.htm|\.php/' access.log | goaccess -

Nota: $7 é o campo de requisição para o formato de log comum e combinado (sem Host Virtual). Se seu log incluir Host Virtual, provavelmente você desejará usar $8. É melhor verificar qual campo você está mirando, ex.:

root@kitploit:~
# tail -10 access.log | awk '{print $8}'

Ou para analisar um código de status específico, ex.: 500 (Erro Interno do Servidor):

root@kitploit:~
# awk '$9~/500/' access.log | goaccess -

Ou vários códigos de status, ex.: todos os 3xx e 5xx:

root@kitploit:~
# tail -f -n +0 access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess -o out.html -

E para obter uma visão geral estimada de quantos bots (crawlers) estão atingindo seu servidor:

root@kitploit:~
# tail -F -n +0 access.log | grep -i --line-buffered 'bot' | goaccess -

Dicas

Além disso, vale a pena notar que, se quisermos executar o GoAccess com prioridade mais baixa, podemos executá-lo como:

root@kitploit:~
# nice -n 19 goaccess -f access.log -a

e se você não quiser instalá-lo em seu servidor, ainda pode executá-lo a partir de sua máquina local!

root@kitploit:~
# ssh -n root@server 'tail -f /var/log/apache2/access.log' | goaccess - --log-format=COMBINED

Nota: SSH requer -n para que o GoAccess possa ler do stdin. Além disso, certifique-se de usar chaves SSH para autenticação, pois não funcionará se uma senha for exigida.

Solução de Problemas

Recebemos muitas perguntas e problemas que já foram respondidos anteriormente.

  • Problemas de correspondência de data/hora? Verifique se o formato do seu log e a localidade do sistema em que você executa o GoAccess são compatíveis. Veja #1571
  • Problemas com correspondência de padrões? Espaços costumam ser um problema, veja por exemplo #136, #1579
  • Outros problemas ao corresponder entradas de log: Veja >200 issues fechadas sobre formatos de log/data/hora
  • Problemas com processamento de log? Veja >111 issues sobre processamento de log

Processamento Incremental de Log

O GoAccess tem a capacidade de processar logs incrementalmente através de seu armazenamento interno e despejar seus dados em disco. Funciona da seguinte maneira:

  1. Um conjunto de dados deve ser persistido primeiro com --persist; em seguida, o mesmo conjunto de dados pode ser carregado com.
  2. --restore. Se novos dados forem passados (canalizados ou através de um arquivo de log), eles serão anexados ao conjunto de dados original.
NOTAS

O GoAccess mantém o controle dos inodes de todos os arquivos processados (assumindo que os arquivos permanecerão na mesma partição). Além disso, extrai um trecho de dados do log junto com a última linha analisada de cada arquivo e o timestamp da última linha analisada. Ex.: inode:29627417|line:20012|ts:20171231235059

Primeiro, ele compara se o trecho corresponde ao log que está sendo analisado; se corresponder, assume que o log não mudou drasticamente, ou seja, não foi truncado. Se o inode não corresponder ao arquivo atual, ele analisa todas as linhas. Se o arquivo atual corresponder ao inode, ele lê as linhas restantes e atualiza a contagem de linhas analisadas e o timestamp. Como precaução extra, ele não analisará linhas de log com timestamp ≤ ao armazenado.

Dados canalizados funcionam com base no timestamp da última linha lida. Por exemplo, ele analisará e descartará todas as entradas recebidas até encontrar um timestamp >= ao armazenado.

Exemplos
root@kitploit:~
// log de acesso do mês passado
# goaccess access.log.1 --persist

em seguida, carregue com

root@kitploit:~
// anexar o log de acesso deste mês e preservar novos dados
# goaccess access.log --restore --persist

Para ler apenas dados persistidos (sem analisar novos dados)

root@kitploit:~
# goaccess --restore

Contribuindo ##Qualquer ajuda sobre o GoAccess é bem-vinda. A forma mais útil é testá-lo e dar

feedback. Sinta-se à vontade para usar o rastreador de problemas do GitHub e pull requests para discutir e enviar alterações de código.

Pode contribuir para as nossas traduções editando os ficheiros .po diretamente no GitHub ou usando a interface visual inlang.com

Aproveite!

Baixar ferramenta
  • Suporte Docker
    Capacidade de construir a imagem Docker do GoAccess a partir do upstream. Você ainda pode configurá-lo totalmente usando mapeamento de volume e editando goaccess.conf. Veja a seção Docker abaixo. Há também documentação sobre como usar o docker-compose.

  • DistroNCursesGeoIP (opt)GeoIP2 (opt)OpenSSL (opt)
    Ubuntu/Debianlibncurses-devlibgeoip-devlibmaxminddb-devlibssl-dev
    RHEL/CentOSncurses-develgeoip-devellibmaxminddb-developenssl-devel
    Archncursesgeoiplibmaxminddbopenssl
    Gentoosys-libs/ncursesdev-libs/geoipdev-libs/libmaxminddbdev-libs/openssl
    SlackwarencursesGeoIPlibmaxminddbopenssl