Na primeira parte, demonstramos a instalação e configuração básica do Kibana. Uma vez funcional, os próximos ajustes serão mais simples. Veremos agora como exportar os logs a um servidor central.

Os logs podem ser exportados de diferentes maneiras.

Alguns administradores optam pela configuração de um servidor syslog central. Mas, neste caso, teríamos que configurar a saída de log do Squid para syslog também e ajustar a configuração do Squid e syslog para evitar duplicidade.

Por outro lado, com o filebeat, a configuração é mais simples e eficiente, visto que um serviço externo estará monitorando e exportando qualquer alteração no arquivo access.log de maneira independente.

Configuração do servidor logstash

“Nos exemplos com *ip_servidor_logstash* configure o endereço IP do servidor

1. Ativando um socket para o recebimento das mensagens de log

– Preserve as definições de filtragem (filter) e saída (output).
– Em ambientes de maior complexidade, o serviço logstash é dedicado e não existirá definição de arquivo local (sem o bloco file).

input {
  file {
    type => "squid"
    start_position => "beginning"
    path => [ "/var/log/squid/access.log" ]
  }

  beats {
      host => "ip_servidor_logstash"
      port => 5044
      ssl => false
  }
}
...

2. Reinicie o serviço e verifique se o socket está disponível

root@elk-server:~# systemctl restart logstash
root@elk-server:~# netstat -antlup | grep 5044
tcp6       0      0 10.10.10.10:5044         :::*                    LISTEN      18280/java      

Instalação e configuração do agente filebeat nos proxies (ideal para ambientes distribuídos)

1. Instalação do agente (não requer a instalação do Java)

sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
sudo apt-get update
sudo apt-get -y install filebeat

2. Edição do arquivo /etc/filebeat/filebeat.yml

As alterações estão em negrito
– Comente as definições em output.elasticsearch

...
filebeat.prospectors:

# Each - is a prospector. Most options can be set at the prospector level, so
# you can use different prospectors for various configurations.
# Below are the prospector specific configurations.

- input_type: log

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/squid/access.log

  document_type: squid
...

#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["ip_servidor_logstash:5044"]
  bulk_max_size: 1024

Até então, como o filtro grok do servidor está condicionado ao “tipo squid“, é necessário definir document-type como “squid” em todos os agentes. Porém, na terceira parte, esta configuração sofrerá uma pequena alteração porque utilizaremos o document-type como parte do índice para diferenciar a origem e controlar o nível de acesso.

Repare que, no servidor, a opção “ssl” foi definida como “false” porque o tráfego não é tão sensível a ponto de justificar um overhead adicional com criptografia. Caso exista interesse em ativar, consulte a documentação do logstash.