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

Criando um sistema de auditoria com Go, ElasticSearch e Kibana

Criando um sistema de auditoria com Go, ElasticSearch e Kibana

Como a ideia de um app bem simples com Go, junto com o ElasticSearch e Kibana, ajudou na economia de tempo e recurso na construção de um mecanismo de auditoria de eventos trafegados em um message broker.

O app tinha como função realizar a leitura de mensagens em uma fila e enviá-las ao ElasticSearch. O Kibana foi usado ler os dados do ElasticSearch e criar métricas de forma dinâmica.

Evento http://www.thedevelopersconference.com.br/tdc/2018/portoalegre/trilha-go

Gabriel Feitosa

December 08, 2018
Tweet

More Decks by Gabriel Feitosa

Other Decks in Technology

Transcript

  1. Sobre a talk • O desafio • O cenário •

    Ideias • Solução • Por que Go?
  2. Sobre mim • Trabalho na Conta Azul ◦ Faço parte

    do time que está revolucionando o mercado contábil com o Conta Azul Mais • 8 meses usando a marmotinha gabrielfeitosa gabrielfeitosa gabfeitosa_ [email protected]
  3. O desafio Auditar 8 microsserviços em um curto espaço de

    tempo e levar em consideração a economia extrema de recursos (memória, cpu, disco, …) type Audit struct { ID int64 `json:"id"` IDCorrelation int `json:"correlation_id"` Module string `json:"module"` Action string `json:"action"` Login string `json:"login"` TransactionAt time.Time `json:"transaction_at"` Entity string `json:"entity"` IP string `json:"ip"` Location Location `json:"location"` }
  4. O cenário • Time com domínio em Java • Todos

    os módulos usavam Spring Boot • Recursos de infra limitados ◦ Servidor próprio • ElasticSearch usado em outro projeto ◦ Bem subutilizado • RabbitMQ já era utilizado pelo projeto
  5. E a exibição dos dados? “Pensamos em criar um ultra,

    mega, power sistema que permite montar dashboards e extrair relatórios de forma dinâmica!” O empolgado
  6. E os dados vão para onde? Para um tópico no

    RabbitMQ, pois ele já é usado em outros cenários
  7. Como o time foi convencido a adotar Go? • Simples

    • Performático • Imagem docker minúscula (A infra pira) • Exemplo (RabbitMQ e ElasticSearch) • Não era para o produto