GoAccess - Analisador de log em tempo real do Apache
O GoAccess é um aplicativo de análise da web de código aberto para sistemas operacionais Unix/Linux. Possui uma interface para a web, além de uma baseada em texto. Ele pode fornecer análises em tempo real, monitorando continuamente os logs dos servidores Apache e do Nginx, incluindo os diversos hosts virtuais configurados. Neste material irei explicar como instalar e como utilizar essa ferramenta.
GoAccess - Analisador de log em tempo real do Apache
O GoAccess é um aplicativo de análise da web de código aberto para sistemas operacionais Unix/Linux. Possui uma interface de usuário para a web, além da baseada em texto. Ele pode fornecer análises em tempo real, monitorando continuamente os logs do servidor web Apache e do Nginx, incluindo os diversos hosts virtuais configurados.
No repositório oficial, normalmente não está disponível a versão mais atual do software, então o ideal é adicionarmos o repositório oficial do GoAccess, e depois, realizar a instalação.
echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
sudo apt-get update
sudo apt-get install goaccess
Observações:
Seguem os comandos necessário para instalar o GoAccess utilizando o código fonte:
git clone https://github.com/allinurl/goaccess.git
cd goaccess
autoreconf -fi
./configure --enable-geoip --enable-utf8
make
# make install
# goaccess /var/log/apache2/access.log -c
# goaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED
# goaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html
Um exemplo de monitoramento em tempo real está no site do GoAccess:
Outras informações, você pode encontrar no site oficial do projeto:
Você usa esse tipo de monitoramento em seu servidor web? Ou utiliza outra configuração/ferramenta?
Recursos do GoAccess
O GoAccess possui diversos recursos, como:- Visão estatística, consumo de banda, etc
- Principais visitantes, tempo de navegação dos visitantes, sites de origem, erros 404
- Hosts, DNS reverso, localização dos IPs
- Sistemas operacionais, navegadores, robôs de busca
- Códigos de status HTTP
- Geo localização - Continente, Pais, Cidade
- Métricas por hosts virtuais
- Suporta HTTP/2 e IPV6
- Habilidade de gerar JSON e CSV
- Processamento de log incremental, com suporte a grandes bases de informações e persistência de dados
- Diversos esquemas de cores
Instalar o GoAccess
A forma preferencial de instalação do GoAccess é através do gerenciador de pacotes de sua distribuição, no caso do Debian/Ubuntu devemos utilizar o comando apt.No repositório oficial, normalmente não está disponível a versão mais atual do software, então o ideal é adicionarmos o repositório oficial do GoAccess, e depois, realizar a instalação.
echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
sudo apt-get update
sudo apt-get install goaccess
Observações:
- Caso você tenha erros com as chaves, tenha certeza que executou o segundo comando, dentre os listados anteriormente, de forma correta.
- Os pacotes .deb estão disponíveis através de HTTPS. Portanto, você precisará instalar o pacote apt-transport-https.
- O key fingerprint é: C03B 4888 7D5E 56B0 4671 5D32 97BD 1A01 3344 9C3D
Pacotes necessários
O GoAccess possui poucos pré-requisitos, pois foi escrito na Linguagem C e requer apenas o ncurses. Na tabela abaixo apresento uma tabela cm dependências opcionais, para as principais distribuições.Instalar através do código fonte (GitHub - Desenvolvimento)
Caso você queira executar através do código fonte, será necessário a instalação de ferramentas de construção e compilação, como: gcc, autoconf, gettext, autopoint, base-devel, build-essential, "Development Tools".Seguem os comandos necessário para instalar o GoAccess utilizando o código fonte:
git clone https://github.com/allinurl/goaccess.git
cd goaccess
autoreconf -fi
./configure --enable-geoip --enable-utf8
make
# make install
Utilizar o GoAccess
Você já pode executar o GoAccess nos arquivos de log do seu servidor web! Na sequência, apresento os principais cenários de utilização dessa ferramenta.Saída no Terminal
O seguinte comando pergunta pela configuração do log utilizando os formatos pré-definidos, depois, exibe as estatísticas em tempo real no terminal.# goaccess /var/log/apache2/access.log -c
Gerar o HTML estático
E exemplo abaixo processa o log, gerando as estatísticas em um arquivo HTML estático, com as informações até o momento da execução do comando.# goaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED
Gerar o HTML com monitoramento em tempo real
Podemos também gerar arquivos HTML com o monitoramento em tempo real, utilizando a seguinte sintaxe do comando:# goaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html
Um exemplo de monitoramento em tempo real está no site do GoAccess:
Outras informações, você pode encontrar no site oficial do projeto:
Conclusões
Espero que as informações apresentadas nesse material te ajudem a monitorar seu servidor web de forma mais eficiente!Você usa esse tipo de monitoramento em seu servidor web? Ou utiliza outra configuração/ferramenta?
Muito legal.
___________________________________________________________