3. Cenário
• Ambiente com mais de 3 milhões de contas de
e-mail;
• Mais de 100 milhões de e-mails
enviados/recebidos todos os dias;
• Mais de 400 milhões de linhas de log por dia;
4. Motivação
• Necessidade de acesso rápido a logs recentes
para análise de problemas;
• Necessidade de acesso a logs mais antigos
para análises mais detalhadas de
crescimento, etc;
• Necessidade de um relatório em tempo real
do que está acontecendo;
• Necessidade de gerar estatísticas para
entender padrões e prever problemas;
5. Problemas
• Como suprir todas as necessidades?
• Utilizar a mesma solução ?
• Como escalar a solução ? Soluções para dados
recentes e estatísticas devem ser rápidas, com
maior quantidade de dados precisam de
armazenamento;
• Custo x Benefício;
7. Tecnologia
• Para consulta de logs recentes: graylog
• Para consulta de logs antigos: filesystem +
rsync
• Para estatísticas e relatórios: Solução
desenvolvida internamente;
10. Filesystem + rsync
• Really?
• Consultas de dados antigos não demandam
interface de usuário;
• egrep + xargs FTW;
• Rsync e não syslog remoto;
• Gzip para compactação;
• 2 anos de logs em um único servidor;
11. Ferramenta interna
• Why?
• Backend: redis
• Tecnologia: python + twisted
• Utiliza processamento no servidor de origem;
• + de 70k operações por segundo, fazendo
parse e enviando para diferentes destinos;
12. Redis
• Dados voláteis em ram;
• Dados que não podem ser perdidos podem
ser persistidos em disco;
• Alta performance;
• 100k+ operações em um único servidor;
• Replicação Master/Slave;
13. Resultado
• Melhor e mais rápida análise no primeiro nível
de atendimento;
• Histórico de tudo;
• Acesso rápido a “n” tipos de estatísticas;
• Fácil implementação de novos relatórios
conforme necessidade;