8.1 Configurando o índice para logs do Docker
Para demonstração, criei uma imagem Docker com ELK e Filebeat, que inclui um programa de teste para gerar logs. Neste exemplo, vamos focar na configuração do índice para os logs do Docker no Kibana.
Passo 1: Clonando o repositório e iniciando o stack ELK
Baixe o repositório com as configurações do Docker Compose para o stack ELK e inicie-o:
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker compose up
Para facilitar, a flag -d
foi omitida para que você possa ver o processo de inicialização do stack ELK. A inicialização pode levar alguns minutos. Após a inicialização bem-sucedida, você verá no log uma entrada como esta:
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],
"pid":6,"message":"http server running at http://0:5601"}
Passo 2: Acessando o Kibana
Abra o navegador e acesse o endereço http://localhost:5601.

Passo 3: Configurando o índice para logs
Selecione no menu à esquerda do Kibana a seção Discover para acessar a página de criação de índice.

Passo 4: Criando um novo índice
Clique no botão Create index pattern para abrir o formulário de configuração. No campo Index pattern name, insira logstash-*
. Se a configuração estiver correta, o Kibana mostrará os índices correspondentes à regra.

Passo 5: Selecionando o campo de data e hora
Na próxima página, selecione o campo principal com o timestamp — @timestamp
.

Passo 6: Verificando o índice
Após concluir a configuração, você verá a página de configurações do índice. Não são necessárias ações adicionais no momento.

Passo 7: Visualizando os logs
Volte para a seção Discover, onde serão exibidos os registros de logs dos containers Docker.

8.2 Criando dashboards para visualização de logs
Passo 1. Crie dashboards para visualizar os logs
No menu esquerdo, clica na seção "Dashboard" — isso vai te levar pra página onde os dashboards são criados.

Passo 2. Toca em «Create new dashboard», e você vai ser levado pra tela onde os objetos são adicionados a esse Dashboard.

Passo 3. Clica no botão «Create new», e o Kibana vai te sugerir escolher como os dados serão exibidos. Tem várias opções, mas pra exemplo vamos focar em duas — gráficos no estilo «Vertical Bar» e tabela de dados «Data Table». O resto é configurado de forma parecida.

8.3 Histograma de logs
Vamos fazer um histograma, usando o exemplo de “Vertical Bar”, que vai mostrar a proporção de requisições bem-sucedidas e mal-sucedidas do serviço. Depois de configurar, vai ficar algo assim:

As requisições com código de resposta < 400 são consideradas bem-sucedidas, e todas >= 400 são consideradas problemáticas.
Primeiro, precisamos selecionar a fonte de dados para o gráfico. Pegamos o Index Pattern que criamos antes.

Após selecionar a fonte, um gráfico geral padrão aparece automaticamente. Bora configurar isso.

Na seção “Buckets”, clica em “Add”, escolhe “X-axis” e configura o eixo X. Nele, vamos plotar timestamps. No campo “Aggregation”, escolhemos “Date Histogram”, e em “Field” colocamos “@timestamp”. O campo “Minimum interval” pode ficar em “Auto”.

Clica em “Update”, e no gráfico aparecerá o número de requisições a cada 30 segundos.

Agora vamos configurar as colunas no eixo Y. Por enquanto, ele mostra apenas o número total de requisições no intervalo de tempo. Vamos mudar a agregação para “Sum Bucket”, pra adicionar as requisições bem-sucedidas e problemáticas. Na seção Bucket → Aggregation, escolhemos “Filters” e configuramos o filtro: “statusCode >= 400”. No campo “Custom label”, escrevemos um nome claro para a métrica.

Clica em “Update”, e o gráfico vai mostrar apenas as requisições problemáticas.

Quer mudar a cor das colunas? Clique no círculo na legenda do gráfico, e vai aparecer uma janela pra escolher a cor.

Agora vamos adicionar os dados das requisições bem-sucedidas. Na seção “Metrics”, clica em “Add” e escolhe “Y-axis”. Configura do mesmo jeito, mas para o filtro, coloca “statusCode < 400”.

Alteramos a cor para a nova coluna, e aí teremos uma visualização da proporção de requisições bem-sucedidas e problemáticas.

Não esquece de salvar o gráfico, clicando em “Save” na parte superior da tela. Dá um nome, e ele vai aparecer no Dashboard.

8.4 Tabela de Logs
Bora criar uma tabela "Data Table" pra gente ver a lista de todas as URLs pras quais teve requisição, e a quantidade de vezes. Vamos começar, como fizemos com o Vertical Bar, selecionando a fonte de dados.

Depois de selecionar a fonte, na tela vai aparecer uma tabela com uma única coluna, mostrando o número total de requisições pro intervalo de tempo escolhido.

Agora vamos configurar a tabela. Vai lá no bloco "Buckets", clica em "Add" e seleciona "Split rows".

No campo que apareceu, "Aggregation", escolhe "Terms", e em "Field" coloca "url.keyword".

No campo "Custom label", coloca um nome fácil de entender, tipo "Url". Aí clica em "Update" — e tá pronta nossa tabela. Ela mostra a quantidade de requisições pra cada URL no intervalo de tempo escolhido.

Pra salvar a tabela, clica em "Save" na parte de cima da tela, coloca um nome (tipo, "Urls"), e volta pro Dashboard. Agora dá pra ver as duas visualizações que criamos.

GO TO FULL VERSION