Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução à Análise de Dados com Elastic Stack

Introdução à Análise de Dados com Elastic Stack

Os dados já não são mais apenas uma simples camada da aplicação, hoje eles são essencialmente vitais na tomada de decisões das empresas. Por esse motivo, a Análise de Dados é um componente relevante em diversos cenários modernos: Machine Learning, Data Science, IoT, etc.
Nesta palestra, apresentada no evento Insiter Conf 2018, em Teresina-PI, mostrei como podemos começar a produzir, extrair e transformar dados de uma aplicação/site/game e como consumi-los de forma organizada, usando Elastic Stack.

Avatar for Cleiton Francisco

Cleiton Francisco

June 09, 2018
Tweet

More Decks by Cleiton Francisco

Other Decks in Technology

Transcript

  1. ➔ Apresentação ◆ Motivação ◆ Pipeline de análise de dados

    ◆ Porque Elastic? ➔ A Elastic Stack ◆ Beats ◆ Logstash ◆ Elasticsearch ◆ Kibana O que vamos ver? ➔ Modelo de aplicação ➔ Como funciona ◆ Filebeat ◆ Logstash ➔ Instalação e Configuração ➔ Kibana ➔ Elastic na Nuvem
  2. ➔ Aquisição de dados ➔ Exploração e Entendimento ➔ Limpeza

    e Manipulação ➔ Análise e Modelagem ➔ Comunicar e operacionalizar Pipeline de análise de dados
  3. ➔ Simples e acessível ➔ Integra facilmente com outras ferramentas

    ➔ Baixa/média curva de aprendizagem ➔ Diversos cases e players já adotam ➔ Tá surfando na crista da onda Porque Elastic
  4. Buzzwords 2018 ➔ Artificial Intelligence (AI) ➔ Internet of Things

    ➔ Blockchain ➔ Digital Detox / Digital Productivity ➔ Microservices / Microservice Architecture ➔ Quantum Computing ➔ Serverless Architecture ➔ Mobile First ➔ Dark Data ➔ Actionable Analytics / Self-Service Analytics
  5. Buzzwords 2018 ➔ Artificial Intelligence (AI) ➔ Internet of Things

    ➔ Blockchain ➔ Digital Detox / Digital Productivity ➔ Microservices / Microservice Architecture ➔ Quantum Computing ➔ Serverless Architecture ➔ Mobile First ➔ Dark Data ➔ Actionable Analytics / Self-Service Analytics
  6. Os entregadores Beats é a plataforma de entrega de dados.

    Eles são instalados como agentes leves e enviam dados de centenas ou milhares de máquinas para o Logstash ou o Elasticsearch. Beats
  7. Beats Os entregadores A família do Beats é composta por:

    • Filebeat (Log Files) • Metricbeat (Metrics) • Packetbeat (Network Data) • Winlogbeat (Windows Event Logs) • Auditbeat (Audit Data) • Heartbeat (Uptime Monitoring)
  8. Pipeline O Logstash é o motor de fluxo de dados

    do Elastic Stack para coletar, enriquecer e unificar todos os seus dados independentemente do formato ou esquema. Logstash
  9. O coração da Stack Elasticsearch é um software open source,

    que provê uma interface RESTful de pesquisa e análise de dados capaz de solucionar um número crescente de casos de uso. Baseado no Apache Lucene. Elasticsearch
  10. Kibana A Interface Kibana é uma janela dentro do Elastic

    Stack. Ele permite a exploração visual, criação de dashboards e análise em tempo real dos dados no Elasticsearch. Ele quem torna mais fácil e compreensível a interpretação de grandes e complexos fluxos de dados.
  11. 1 Filebeat em ação Cada prospector do Filebeat possui as

    regras para captar logs específicos e enviá-los para um output que pode ser o Elasticsearch, Logstash, Kafka, Redis, etc.
  12. 1 Tudo vai ser entregue Se o Logstash estiver ocupado,

    processando um grande volume de dados, o Filebeat desacelera suas atividades, até que o congestionamento seja resolvido.
  13. 1 Logstash ama dados O Logstash aceita dados de todas

    as formas e tamanhos. Depois pode encaminhar seus dados pra onde for mais importante. INPUT OUTPUT FILTERS
  14. ➔ Weblogs / Syslog ➔ Logs customizados ➔ Métricas do

    sistema ➔ Logs de eventos ➔ Dados da Rede / Firewall ➔ Filas de processamento ➔ Bancos de dados Relacionais / Não Relacionais ➔ Streaming Inputs
  15. Configuração do Elasticsearch Edite o arquivo /etc/elasticsearch/elasticsearch.yml e altere as

    seguintes linhas: node.name: es-node-1 network.host: localhost
  16. Configuração do Kibana Edite o arquivo /etc/kibana/kibana.yml e altere as

    seguintes linhas: #server.port: 5601 server.host: "localhost" #server.name: "your-hostname" elasticsearch.url: "http://localhost:9200"
  17. O logstash precisa do Java 8 (Java 9 não é

    suportado) Instalação do Logstash
  18. input { beats { port => 5044 ssl => true

    ssl_certificate => "/etc/pki/tls/certs/logstash.crt" ssl_key => "/etc/pki/tls/private/logstash.key" } }
  19. filter { if [type] == "syslog" { grok { match

    => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_ pid}\])?: %{GREEDYDATA:syslog_message}" } # continua
  20. add_field => ["received_at", "%{@timestamp}"] add_field => ["received_from", "%{host}"] } date

    { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } # fim do "syslog"
  21. if "count_hits" in [tags] { json { skip_on_invalid_json => true

    source => "message" } geoip { source => "client_ip" } } } # fim do filter
  22. output { elasticsearch { hosts => ["localhost:9200"] sniffing => true

    manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }