Case
Kinghost
+
Elasticsearch
Archer!
Developer PHP
Zend Certified Engineer 5.3
6 anos experiência
Palestrante há 2 anos
Grupo PHPRS
Kinghost
Case
O Problema
Propostas
Estrutura proposta
Problemas enfrentados
Sucesso!
Melhorias Futuras
1.
O Problema
Ferramenta de E-mail Marketing
Processar os retornos de bounce do Postfix
“Tratar os retornos de erros é
algo extremamente importante.
Para não enviar campanhas
maliciosas é necessário
processar o retorno
imediatamente.
2.
Propostas
Scripts? Tecnologias? Tempo?
Brainstorm
Maneiras de Resolver
Script
Ficar lendo o arquivo de logs
procurando por retornos.
- Demorado
- Dificil de Escalar
- Fácil de Criar
MongoDb
Jogar todo esse dado para o
mongo e processar os dados já
inseridos, utilizando vários
scripts de leitura.
- Dificuldade Média
- Boa Velocidade de
Leitura
- Sem Relatórios
Elasticsearch
Utilizar o armazenamento do
elasticsearch junto com o
sistema de filas, para agilizar o
processamento.
- Estrutura complexa
- Processamento
Real-time
- Relatórios Dinâmicos
3.
Estrutura Escolhida
Docker + Filebeat + Logstash + Rabbit + Elasticsearch + Kibana
Filebeat
Lê um arquivo de (n) lugares
Filtra
Envia o resultado
Logstash
Recebe input
Parseia
Envia para output
RabbitMq
Recebe e distribui mensagens para filas de acordo com regras
simples
Elasticsearch
Armazenamento e Consulta
Kibana
Visualização dos dados armazenados
Fluxo de Dados
Postfix
log
Logstash
Elastics
earch
Rabbit
Mq
Filebeat
Workers
Workers
Workers
Workers
7.992.993+ linhas/dia
Postfix log
4.
Problemas enfrentados
“- Sync do log do postfix
- Parser do logstash (grok)
- Criação do Ambiente
- Limitação de Recursos no Container
- Logs em modo debug
- Monitoramento em caso de falha
- Leak memória Kibana
5.
Sucesso!
6.
Próximos passos!
Monitoramento
Recursos
Escalonamento Automatizado
Melhoria no parser
thanks!
No Questions.
@danielphp

Case Kinghost + Elasticsearch