Criando um painel no Kibana para monitorar logs

Criando um painel no Kibana para monitorar logs

Olá, meu nome é Eugene, sou líder de equipe B2B na Citymobil. Uma das tarefas da nossa equipe é apoiar integrações para pedidos de táxi de parceiros, e para garantir um serviço estável devemos sempre entender o que está acontecendo em nossos microsserviços. E para isso você precisa monitorar constantemente os logs.

No Citymobil, usamos a pilha ELK (ElasticSearch, Logstash, Kibana) para trabalhar com logs, e a quantidade de dados que chega lá é enorme. Encontrar problemas nessa massa de solicitações que podem surgir após a implantação de um novo código é bastante difícil. E para sua identificação visual, o Kibana possui uma seção Dashboard.

Existem alguns artigos no Habré com exemplos de como configurar uma pilha ELK para receber e armazenar dados, mas não há materiais relevantes sobre a criação de um Dashboard. Portanto, quero mostrar como criar uma representação visual de dados com base nos logs recebidos no Kibana.

Fixação

Para deixar mais claro, criei uma imagem Docker com ELK e Filebeat. E colocado em um recipiente um pequeno programa em Go, que para nosso exemplo irá gerar logs de teste. Não vou descrever em detalhes a configuração do ELK, já há bastante escrito sobre isso no Habré.

Clone o repositório de configuração docker-compose e configurações ELK e inicie-o com o comando docker-compose up. Não adicionar intencionalmente uma chave -dpara ver o progresso da pilha ELK.

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

Se tudo estiver configurado corretamente, veremos uma entrada nos logs (talvez não imediatamente, o processo de lançamento de um contêiner com toda a pilha pode levar vários minutos):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

Em localhost:5061 Kibana deve abrir.

Criando um painel no Kibana para monitorar logs
Criando um painel no Kibana para monitorar logs
A única coisa que precisamos configurar é criar um padrão de índice para o Kibana com informações sobre quais dados exibir. Para fazer isso, executaremos uma solicitação curl ou realizaremos uma série de ações na interface gráfica.

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

Criando um padrão de índice por meio da GUI
Para configurar, selecione a seção Descobrir no menu esquerdo e acesse a página de criação do padrão de índice.

Criando um painel no Kibana para monitorar logs
Ao clicar no botão “Criar padrão de índice”, chegamos à página de criação de índice. No campo "Nome do padrão de índice", insira "logstash-*". Se tudo estiver configurado corretamente, abaixo o Kibana mostrará os índices que se enquadram na regra.

Criando um painel no Kibana para monitorar logs
Na próxima página, selecione o campo-chave com carimbo de data e hora, no nosso caso é @timestamp.

Criando um painel no Kibana para monitorar logs
Isso abrirá a página de configurações de índice, mas nenhuma ação adicional será necessária de nossa parte neste momento.

Criando um painel no Kibana para monitorar logs

Agora podemos ir novamente para a seção Descobrir, onde veremos as entradas do log.

Criando um painel no Kibana para monitorar logs

Painel

No menu esquerdo, clique na seção de criação do Dashboard e acesse a página correspondente.

Criando um painel no Kibana para monitorar logs
Clique em “Criar novo dashboard” e acesse a página de adição de objetos ao Dashboard.

Criando um painel no Kibana para monitorar logs
Clique no botão "Criar novo" e o sistema solicitará que você selecione o tipo de exibição de dados. Kibana tem um grande número deles, mas veremos como criar uma representação gráfica da "Barra Vertical" e uma "Tabela de Dados" tabular. Outros tipos de apresentação são configurados de forma semelhante. 
Criando um painel no Kibana para monitorar logs
Alguns objetos disponíveis são rotulados como B e E, o que significa que o formato é experimental ou está em teste beta. Com o tempo, o formato pode mudar ou desaparecer completamente do Kibana.

Barra vertical

Para o exemplo da “Barra Vertical”, vamos criar um histograma da proporção de status de resposta bem e mal sucedidos do nosso serviço. Ao final das configurações, obtemos o seguinte gráfico:

Criando um painel no Kibana para monitorar logs
Classificaremos todas as solicitações com status de resposta < 400 como bem-sucedidas e >= 400 como problemáticas.

Para criar um gráfico de “Barras Verticais”, precisamos selecionar uma fonte de dados. Selecione o padrão de índice que criamos anteriormente.

Criando um painel no Kibana para monitorar logs
Por padrão, um único gráfico sólido aparecerá após a seleção de uma fonte de dados. Vamos configurar isso.

Criando um painel no Kibana para monitorar logs
No bloco “Baldes”, pressione o botão “Adicionar”, selecione “X-asis” e configure o eixo X. Vamos reservar os carimbos de data e hora para o recebimento dos lançamentos no log. No campo “Agregação” selecione “Histograma de Data”, e no “Campo” selecione “@timestamp”, indicando o campo de hora. Vamos deixar o “Intervalo mínimo” no estado “Auto” e ele se ajustará automaticamente ao nosso display. 

Criando um painel no Kibana para monitorar logs
Ao clicar no botão “Atualizar”, veremos um gráfico com a quantidade de solicitações a cada 30 segundos.

Criando um painel no Kibana para monitorar logs
Agora vamos configurar as colunas ao longo do eixo Y. Agora estamos exibindo o número total de solicitações no intervalo de tempo selecionado.

Criando um painel no Kibana para monitorar logs
Vamos alterar o valor de "Agregação" para "Sum Bucket", o que nos permitirá combinar dados para solicitações bem-sucedidas e malsucedidas. No bloco Bucket -> Aggregation, selecione a agregação por "Filtros" e defina a filtragem por "statusCode >= 400". E no campo “Rótulo personalizado” indicamos o nome do nosso indicador para uma exibição mais compreensível na legenda do gráfico e na lista geral.

Criando um painel no Kibana para monitorar logs
Ao clicar no botão “Atualizar” no bloco de configurações, obteremos um gráfico com solicitações de problemas.

Criando um painel no Kibana para monitorar logs
Se você clicar no círculo ao lado da legenda, aparecerá uma janela na qual você poderá alterar a cor das colunas.

Criando um painel no Kibana para monitorar logs
Agora vamos adicionar dados sobre solicitações bem-sucedidas ao gráfico. Na seção "Métricas", clique no botão "Adicionar" e selecione "Eixo Y".

Criando um painel no Kibana para monitorar logs
Na métrica criada, fazemos as mesmas configurações das solicitações erradas. Somente no filtro especificamos "statusCode < 400".

Criando um painel no Kibana para monitorar logs
Ao alterar a cor da nova coluna, obtemos uma exibição da proporção de solicitações problemáticas e bem-sucedidas.

Criando um painel no Kibana para monitorar logs
Ao clicar no botão “Salvar” na parte superior da tela e especificar o nome, veremos o primeiro gráfico no Dashboard.

Criando um painel no Kibana para monitorar logs

Tabela de dados

Agora considere a visualização tabular "Tabela de Dados". Vamos criar uma tabela com uma lista de todas as URLs que foram solicitadas e a quantidade dessas solicitações. Tal como acontece com o exemplo da Barra Vertical, primeiro selecionamos uma fonte de dados.

Criando um painel no Kibana para monitorar logs
Em seguida, será exibida na tela uma tabela com uma coluna, que mostra o número total de solicitações para o intervalo de tempo selecionado.

Criando um painel no Kibana para monitorar logs
Alteraremos apenas o bloco "Baldes". Clique no botão "Adicionar" e selecione "Dividir linhas".

Criando um painel no Kibana para monitorar logs
No campo “Agregação”, selecione “Termos”. E no campo “Campo” que aparece selecione “url.keyword”.

Criando um painel no Kibana para monitorar logs
Ao especificar o valor “Url” no campo “Rótulo personalizado” e clicar em “Atualizar”, obteremos a tabela desejada com a quantidade de solicitações para cada uma das URLs no período de tempo selecionado.

Criando um painel no Kibana para monitorar logs
Na parte superior da tela, clique novamente no botão "Salvar" e especifique o nome da tabela, por exemplo URLs. Vamos voltar ao Dashboard e ver as duas visualizações criadas.

Criando um painel no Kibana para monitorar logs

Trabalhando com Painel

Ao criar o Dashboard, definimos apenas os parâmetros de visualização principal nas configurações do objeto de exibição. Não faz sentido especificar dados para filtros em objetos, por exemplo, “intervalo de datas”, “filtragem por agente de usuário”, “filtragem por país de solicitação”, etc. É muito mais conveniente especificar o período de tempo desejado ou definir a filtragem necessária no painel de consulta, localizado acima dos objetos.

Criando um painel no Kibana para monitorar logs
Os filtros adicionados neste painel serão aplicados a todo o Dashboard e todos os objetos de exibição serão reconstruídos de acordo com os dados filtrados reais.

Conclusão

Kibana é uma ferramenta poderosa que permite visualizar qualquer dado de maneira conveniente. Tentei mostrar a configuração dos dois principais tipos de display. Mas outros tipos são configurados de maneira semelhante. E a abundância de configurações que deixei “nos bastidores” permitirá que você personalize gráficos com muita flexibilidade para atender às suas necessidades.

Fonte: habr.com

Adicionar um comentário