Não se afoguem mais em uma tonelada de Logs, ELK te salva! (Real-time)

Hoje em dia a análise de Big Data é cada vez mais importante por uma série de fatores, um deles é a tomada de decisão sobre o que fazer com determinado produto, serviço ou aplicação e, por conta disso, quem não faz análise de seus logs acaba ficando para trás. Isso é válido para empresas, Sysadmins, engenheiros, e principalmente a galera DevOps. Com base nesta questão, este artigo mostra uma das muitas formas de fazer isso, utilizando de tecnologias como: ELK, Docker e outras ferramentas essenciais para uma Infraestrutura Ágil, tudo isso em Real-time.

[ Hits: 18.211 ]

Por: Uriel Ricardo em 18/10/2016


Configurando o Logstash.conf



Essa é a parte mais legal na minha opinião, pois aqui é que a mágica acontece!

Para configurar o logstash, iremo acessar o diretório "./logstash" do repositório e abrir o arquivo "logstash.conf". Você vai ter algo como isso aqui:
Linux: Não se afoguem mais em uma tonelada de Logs, ELK te salva!(Real-time)
Podemos dividir essa configuração em 3 partes: input, filter e output.

Input

É a parte responsável pela entrada de dados, ali em nosso conf estamos dizendo que o input será o filebeat, tudo que entrar pela porta 5044 vai passar por ai, para depois cair no filter, para ser filtrado, como o próprio nome já diz. Uma dica legal quando for fazer o uso do filebeat remotamente é configurar além da porta o host, assim não sera qualquer um que poderá lhe enviar dados. Por exemplo:

input {
  beats {
    host => "xxx.xxx.xxx.xxx",
    host => "yyy.yyy.yyy.yyy",
    port => 5044
  }
}

Neste caso só os hosts declarados acima poderiam injetar dados no Logstash, se um host "zzz.zzz.zzz.zzz" tentasse ele não teria sucesso. Outro modo de se fazer isso é ssl/tls!

Filter

Nessa parte tudo vai depender do motivo pelo qual você está tentando utilizar sua aplicação, no meu caso, vou utilizar a configuração da imagem porque esse é um dos modos mais fáceis de tratar um .csv, dividir ele em colunas, lembrando que será isso que vai aparecer no meu kibana.

Na linha 8 estou dizendo que se o type que eu declarei lá no filebeat for = "csv" ele vai filtrar daquele modo! Caso eu tivesse analisando também dados de um nginx por exemplo, eu teria que fazer um "if" para ele e passar de que modo eu gostaria de filtrar os dados do nginx. Claramente estou usando o plugin csv do logstash.

A nível de produção estou usando uns 5 plugins só para este type, lembrando que existem dezenas de plugins (isso senão centenas!). Certo, digamos que nosso log esteja no .csv, e ele está dividido em colunas, como por exemplo: "origem", "receptor", "data", "status"... O log seria mais ou menos assim: "uriel@vivaolinux.com.br - adm@vivalinux.com.br - 30.09,16 - 'enviado com sucessso'....".

Em nosso filtro estou dividindo por colunas: "coluna1", "coluna3", "coluna4", "coluna5", "coluna6", "coluna7" que eu poderia ter nomeado como os dados do próprio .csv, "origem", "receptor", "data", "status"... Mas como disponibilizei o repositório para todos, este modo fica mais visível.

output

A saída é visivelmente o elasticsearc que será o responsável por armazenar estes dados depois de filtrados.

Após configurar isso, terminamos, não é necessário configurarmos o kibana e o elasticsearch, pois as imagens que vamos usar, tem configuração padrão, basta sair do arquivo, e executar o comando:

# docker-compose up -d

e ele vai subir os containers.

Agora basta acessar o ip do seu host e a porta do kibana, exemplo: "111.111.111.111:5601".

Basta acessar, configurar um índice, e analisar seus dados.

Na próxima página vou mostrar algumas dashboards e visualizations.

Página anterior     Próxima página

Páginas do artigo
   1. ELK + Docker
   2. Entendendo e configurando o Elk
   3. Configurando o Filebeat.yml
   4. Configurando o Logstash.conf
   5. Acessando Kibana e analisando meu dados (Real-time)
Outros artigos deste autor

Projeto Sharingan

Leitura recomendada

Cinelerra no Ubuntu - Instalando e configurando para melhor desempenho

Transformando seu Ubuntu Hardy em OSX Leopard

XGL no Slackware 10.2

ARToolKit: Criando aplicativos de Realidade Aumentada

As letras que fazem TOING

  
Comentários
[1] Comentário enviado por FelipeCoutinhoS em 19/10/2016 - 00:09h

Parabéns pelo artigo, muito bem explicado! Achei você bem detalhista, lhe encontrei no LinkedIn, por acaso teria interesse em palestrar sobre isso na GDG DevFest em são Paulo?
E quanto ao artigo, teria este material em PDF?

[2] Comentário enviado por cesar.dba em 20/10/2016 - 08:29h

Fantastico!
Especialista em Banco de Dados

[3] Comentário enviado por UrielRicardo em 21/10/2016 - 09:15h


[1] Comentário enviado por FelipeCoutinhoS em 19/10/2016 - 00:09h

Parabéns pelo artigo, muito bem explicado! Achei você bem detalhista, lhe encontrei no LinkedIn, por acaso teria interesse em palestrar sobre isso na GDG DevFest em são Paulo?
E quanto ao artigo, teria este material em PDF?


Olá Amigo, tudo bem? Lhe respondi na mensagem privada que me enviou, agradeço pelo feedback! Quanto ao pdf enviei para seu e-mail em anexo!

[4] Comentário enviado por UrielRicardo em 21/10/2016 - 09:15h


[2] Comentário enviado por cesar.dba em 20/10/2016 - 08:29h

Fantastico!
Especialista em Banco de Dados


Muito Obrigado pelo FeedBack =)

[5] Comentário enviado por removido em 03/11/2016 - 09:22h

Assunto bem interessante. Obrigado pelo excelente artigo!

[6] Comentário enviado por UrielRicardo em 03/11/2016 - 09:32h


[5] Comentário enviado por eddye00 em 03/11/2016 - 09:22h

Assunto bem interessante. Obrigado pelo excelente artigo!


Eu que lhe agradeço, muito obrigador por ler meu artigo!

[7] Comentário enviado por cesar.dba em 03/11/2016 - 10:16h

Amigo bom dia,
Poderia me enviar em pdf o artigo por e-mail?!
Especialista em Banco de Dados

[8] Comentário enviado por lestatwa em 10/11/2016 - 13:51h

Primeiramente você deve se preocupar em responder: o que é big data? Uma base grande? Grande quanto? Qual o maior gargalo em analisar big data? Como é feita a paralelização das análises?
Quando você conseguir responder estas perguntas, vai entender que não existe sentido em chamar logs gerados por um servidor de big data tal como não existe maneira de analisar uma base realmente grande em um único servidor. A maioria dos métodos de analise supõe que exista um driver (servidor ou pc aonde o código da análise é escrito) e vários workers (outros servidores que fazem a análise em paralelo). Métodos baseados no haboop tem um gargalo enorme (fora o problema da linguagem, só se pode usar Java), visto que existe muita leitura e escrita nos discos. Já frameworks mais novos, como o Apache Spark colocam toda a base a ser analisada em cache na memoria RAM, tornando as análizes até 100x mais rápidas que via hadoop. Além disto pode ser programado em Python, Scala, Java e R. Enfim, estou ilustrando este senário pois vejo muitos cursos de pós-graduação se propondo a abordar big data, porém o fazem de maneira totalmente equivocada, dando a impressão que qualquer base "grande" é big data.
Sei que seu propósito era apenas abordar alguns tools, porém gostaria de contribuir com estas reflexões.

[9] Comentário enviado por iranmeneses em 05/05/2017 - 11:25h

Bom dia. Nobre amigo sigo todo o tutorial, mas não estou conseguindo encontrar esse comando docker-compose up -d. Poderia me ajudar? Fico no aguardo. Grato.

[10] Comentário enviado por UrielRicardo em 09/05/2017 - 13:21h


[9] Comentário enviado por iranmeneses em 05/05/2017 - 11:25h

Bom dia. Nobre amigo sigo todo o tutorial, mas não estou conseguindo encontrar esse comando docker-compose up -d. Poderia me ajudar? Fico no aguardo. Grato.


Tudo bem? você chegou a instalar o docker compose???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts