Container Elastic Stack para visualização de logs do Proxy Squid

Compartilho neste artigo a minha primeira experiência com o projeto Open Source Elastic Stack, um conjunto de ferramentas para coleta, tratamento e exibição de logs. Demonstrarei como utilizei o Elastic Stack para coletar, tratar e apresentar os logs de acesso do Squid.

[ Hits: 13.152 ]

Por: Thiago Murilo Diniz em 28/07/2017 | Blog: https://br.linkedin.com/in/thiagomdiniz


Visualizando os logs no Kibana



Agora visualizaremos, através do Kibana, os logs do Squid indexados no Elasticsearch.

Acesse a interface web do Kibana e clique no menu "Discover". Conforme Figura 7, o Kibana o avisará de que ainda não foi definido um "index pattern". O Kibana precisa que, ao menos, um "index pattern" seja configurado para que possa identificar em qual índice do Elasticsearch serão executadas as consultas e análises.
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 7 - Kibana sem "index pattern"
Neste caso, como sabemos que os índices que serão criados no Elasticsearch terão o prefixo "filebeat-", digitaremos filebeat-* no campo "Index name or pattern". Após digitar, aguarde cerca de 3 segundos para que o Kibana atualize o campo "Time-field name" com o valor "@timestamp" e então clique no botão "Create" (Figura 8):
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 8 - Configuração de "index pattern" no Kibana
Com isso, clicando novamente no menu "Discover", você visualizará os "documents" indexados no Elasticsearch. Perceba que cada "document" possui os campos mapeados pelo Logstash através do plugin "grok" e também os campos de geolocalização criados pelo plugin "geoip" (Figura 9).
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 9 - Exibição de documento no Kibana
A partir daí, o Kibana nos permitirá gerar visualizações e dashboards para exibição das informações coletadas dos logs de acesso do Squid.

Pode-se observar na Figura 10 o menu "Visualize", que permitirá criar visões como gráficos, tabelas, mapas etc:
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 10 - Acessando o menu "Visualize" no Kibana
Ao clicar em "Create a visualization" você deverá escolher o tipo de visão que irá criar (Figura 11):

Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 11 - Seleção de tipo de visão no Kibana
Após selecionar o tipo de visão, selecione o índice do qual as informações serão extraídas (Figura 12):
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 12 - Seleção de origem dos dados no Kibana
Pode-se observar na Figura 13, que os campos extraídos dos logs de acesso do Squid e indexados no Elasticsearch estão disponíveis para utilização nas visões:
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 13 - Campos do Squid disponíveis no Kibana
Após criar as visões, você poderá juntá-las em uma só tela criando um dashboard. Para criar um dashboard, clique no menu "Dashboard" e depois em "Create a dashboard" (Figura 14):
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 14 - Acessando o menu "Dashboard" do Kibana
E por fim, você terá um dashboard exibindo as visões adicionadas ao mesmo (Figura 15):
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 15 - Dashboard no Kibana
Caso você queira utilizar o dashboard de exemplo que criei na Figura 15, faça download dos arquivos de configuração das visões e do dashboard, clique no menu "Management" e depois em "Saved Objects" (Figura 16):
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 16 - Acessando o menu "Management" do Kibana
Depois, conforme Figura 17, clique no botão "Import" e selecione primeiro o arquivo "visualizations.json". Depois clique em "Import" novamente e selecione o arquivo "dashboard.json". Com isso, o dashboard exibido na Figura 15 ficará disponível no menu "Dashboard".
Linux: Container Elastic Stack para visualização dos logs do Proxy Squid
Figura 17 - Tela que permite importar configurações no Kibana

Conclusão

Após esta experiência, percebi o quão poderoso é o Elastic Stack e a infinidade de coisas que se pode fazer com estas ferramentas.

Para dar alguns exemplos, poderíamos indexar dados de NetFlow para análise de tráfego de rede, utilizar outros Beats como o PacketBeat ou MetricBeat, gerar alertas com o Watcher ou ainda integrar o Logstash com Nagios ou Zabbix.

Referências


Página anterior    

Páginas do artigo
   1. Introdução
   2. Preparando o ambiente
   3. Subindo o Elastic Stack
   4. Visualizando os logs no Kibana
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Monitorando a temperatura do computador com lm_sensors + MRTG

Wine: Como associar uma extensão a um aplicativo instalado

Compilando e instalando o XFCE 4.2 no SuSE através dos fontes

Dicas rápidas para linha de comando

Usando o NetBSD como desktop

  
Comentários
[1] Comentário enviado por ande27 em 05/01/2018 - 10:47h

Thiago, já utilizo o ELK a um bom tempo, sabe me dizer se existe integração do Squid do Pfsense para o ELK?


[2] Comentário enviado por thiagodiniz em 18/01/2018 - 19:50h

Olá Anderson!

Não tenho muita experiência com pfSense, mas por ser um BSD acredito que seja possível instalar o Filebeat.

Encontrei dois artigos que podem te ajudar:
https://rareintel.com/2016/07/10/installing-logstash-filebeat-directly-pfsense-2-3/
https://extelligenceblog.it/2017/07/11/elastic-stack-suricata-idps-and-pfsense-firewall-part-1/

No último diz o seguinte:
Se você usa pfSense 2.3.4:
http://pkg.freebsd.org/freebsd:10:x86:64/latest/All/

Se você usa pfSense 2.4 (Released in October 2017):
http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/

O nome do pacote nestes repositórios é "beats-6.1.1_1.txz".

Outra possível solução seria usar o parâmetro "access_log" da configuração do Squid pra tentar enviar os logs diretamente ao Logstash ou para outro sistema via syslog que possua o Filebeat:
http://www.squid-cache.org/Doc/config/access_log/

Espero ter ajudado.
Abç!

[3] Comentário enviado por ande27 em 26/01/2018 - 18:55h


[2] Comentário enviado por thiagodiniz em 18/01/2018 - 19:50h

Olá Anderson!

Não tenho muita experiência com pfSense, mas por ser um BSD acredito que seja possível instalar o Filebeat.

Encontrei dois artigos que podem te ajudar:
https://rareintel.com/2016/07/10/installing-logstash-filebeat-directly-pfsense-2-3/
https://extelligenceblog.it/2017/07/11/elastic-stack-suricata-idps-and-pfsense-firewall-part-1/

No último diz o seguinte:
Se você usa pfSense 2.3.4:
http://pkg.freebsd.org/freebsd:10:x86:64/latest/All/

Se você usa pfSense 2.4 (Released in October 2017):
http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/

O nome do pacote nestes repositórios é "beats-6.1.1_1.txz".

Outra possível solução seria usar o parâmetro "access_log" da configuração do Squid pra tentar enviar os logs diretamente ao Logstash ou para outro sistema via syslog que possua o Filebeat:
http://www.squid-cache.org/Doc/config/access_log/

Espero ter ajudado.
Abç!


Muito obrigado Thiago.
Vou testar tudo isso em um Lab.


[4] Comentário enviado por leoberbert em 03/10/2019 - 13:54h

Anderson,

Você não precisar instalar o filebeat, desde que você tenha o java instalado, basta baixar o .tar.gz, extrair e entrar na pasta do filebeat e executar ./filebeat e ele irá executar.

Att,


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts