Kibana - Introdução a Elk Stack

Kibana é uma ferramenta de visualização de código aberto usada principalmente para analisar um grande volume de registros na forma de gráfico de linha, gráfico de barras, gráficos de pizza, mapas de calor etc. Kibana trabalha em sincronia com Elasticsearch e Logstash que juntos formam o chamado ELK pilha.

ELK significa Elasticsearch, Logstash e Kibana. ELK é uma das plataformas de gerenciamento de log populares usadas mundialmente para análise de log.

Na pilha ELK -

  • Logstashextrai os dados de registro ou outros eventos de diferentes fontes de entrada. Ele processa os eventos e depois os armazena no Elasticsearch.

  • Kibana é uma ferramenta de visualização, que acessa os registros do Elasticsearch e é capaz de exibir para o usuário na forma de gráfico de linha, gráfico de barra, gráfico de pizza, etc.

Neste tutorial, vamos trabalhar junto com Kibana e Elasticsearch e visualizar os dados em diferentes formas.

Neste capítulo, vamos entender como trabalhar com a pilha ELK juntos. Além disso, você também verá como -

  • Carregue dados CSV do Logstash para o Elasticsearch.
  • Use os índices do Elasticsearch em Kibana.

Carregar dados CSV de Logstash para Elasticsearch

Vamos usar dados CSV para fazer upload de dados usando Logstash para Elasticsearch. Para trabalhar na análise de dados, podemos obter dados do site kaggle.com. O site Kaggle.com possui todos os tipos de dados carregados e os usuários podem usá-los para trabalhar na análise de dados.

Pegamos os dados de countries.csv daqui: https://www.kaggle.com/fernandol/countries-of-the-world. Você pode baixar o arquivo csv e usá-lo.

O arquivo csv que vamos usar tem os seguintes detalhes.

Nome do arquivo - countriesdata.csv

Colunas - "País", "Região", "População", "Área"

Você também pode criar um arquivo csv fictício e usá-lo. Usaremos o logstash para despejar esses dados de countriesdata.csv para o elasticsearch.

Inicie o elasticsearch e o Kibana em seu terminal e mantenha-o funcionando. Temos que criar o arquivo de configuração para logstash, que terá detalhes sobre as colunas do arquivo CSV e também outros detalhes, conforme mostrado no arquivo logstash-config fornecido abaixo -

input {
   file {
      path => "C:/kibanaproject/countriesdata.csv"
      start_position => "beginning"
      sincedb_path => "NUL"
   }
}
filter {
   csv {
      separator => ","
      columns => ["Country","Region","Population","Area"]
   }
   mutate {convert => ["Population", "integer"]}
   mutate {convert => ["Area", "integer"]}
}
output {
   elasticsearch {
      hosts => ["localhost:9200"]
      => "countriesdata-%{+dd.MM.YYYY}"
   }
   stdout {codec => json_lines }
}

No arquivo de configuração, criamos 3 componentes -

Entrada

Precisamos especificar o caminho do arquivo de entrada que, em nosso caso, é um arquivo csv. O caminho onde o arquivo csv está armazenado é fornecido para o campo do caminho.

Filtro

Terá o componente csv com separador usado que no nosso caso é a vírgula, e também as colunas disponíveis para o nosso arquivo csv. Como o logstash considera todos os dados que chegam como string, no caso de desejarmos que qualquer coluna seja usada como inteiro, float o mesmo deve ser especificado usando mutate conforme mostrado acima.

Resultado

Para a saída, precisamos especificar onde precisamos colocar os dados. Aqui, em nosso caso, estamos usando elasticsearch. Os dados necessários a serem fornecidos ao elasticsearch são os hosts onde ele está sendo executado, mencionamos como localhost. O próximo campo é o índice, ao qual demos o nome de países -atualidade. Temos que usar o mesmo índice no Kibana uma vez que os dados sejam atualizados no Elasticsearch.

Salve o arquivo de configuração acima como logstash_countries.config . Observe que precisamos fornecer o caminho desta configuração para o comando logstash na próxima etapa.

Para carregar os dados do arquivo csv para elasticsearch, precisamos iniciar o servidor elasticsearch -

Agora corra http://localhost:9200 no navegador para confirmar se o elasticsearch está sendo executado com sucesso.

Temos elasticsearch em execução. Agora vá para o caminho onde o logstash está instalado e execute o seguinte comando para fazer upload dos dados para elasticsearch.

> logstash -f logstash_countries.conf

A tela acima mostra o carregamento de dados do arquivo CSV para o Elasticsearch. Para saber se temos o índice criado no Elasticsearch, podemos verificar o mesmo da seguinte forma -

Podemos ver o índice countriesdata-28.12.2018 criado conforme mostrado acima.

Os detalhes do índice - países-28.12.2018 são os seguintes -

Observe que os detalhes de mapeamento com propriedades são criados quando os dados são carregados do logstash para elasticsearch.

Use dados do Elasticsearch em Kibana

Atualmente, temos Kibana em execução no localhost, porta 5601 - http://localhost:5601. A IU do Kibana é mostrada aqui -

Observe que já temos Kibana conectado ao Elasticsearch e devemos ser capazes de ver index :countries-28.12.2018 dentro de Kibana.

Na IU Kibana, clique na opção Menu de gerenciamento no lado esquerdo -

Agora, clique em Gerenciamento de índice -

Os índices presentes no Elasticsearch são exibidos no gerenciamento de índice. O índice que vamos usar em Kibana é o país de 28/12/2018.

Assim, como já temos o índice de pesquisa elástica em Kibana, a seguir entenderemos como usar o índice em Kibana para visualizar dados na forma de gráfico de pizza, gráfico de barras, gráfico de linha etc.