SlideShare uma empresa Scribd logo
1 de 24
Francisco Wagner Cunha Freire (@ffreire)
Agenda
• Cenário;
• Motivação;
• Problemas;
• Tecnologia;
• Resultado;
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;
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;
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;
Tecnologia
• Ferramentas disponíveis no mercado;
• Opções open-source;
• Desenvolvimento interno;
Tecnologia
• Para consulta de logs recentes: graylog
• Para consulta de logs antigos: filesystem +
rsync
• Para estatísticas e relatórios: Solução
desenvolvida internamente;
Graylog
• Open-source;
• Backends: ElasticSearch + MongoDB + AMQP
(RabbitMQ);
• Streams personalizadas;
• Alta performance;
• Interface simples;
• Protocolo simples;
• Não utilizar syslog remoto;
• Plugin desenvolvido:
https://github.com/locaweb/logix
Graylog
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;
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;
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;
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;
Estrutura
Aplicação
Rsyslog
Filesystem
Logserver
(rsync)
Gzip
Logix (udp)
RabbitMQ
Graylog
ElasticSearch
Parser (udp)
Redis (shard)
Redis (slave)
Redis (shard)
Redis (slave)
Redis (shard)
Redis (slave)
Logs armazenados (2013)
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Jan-13 Feb-13 Mar-13 Apr-13 May-13 Jun-13
Tamanho (GB) +gzip Tamanho (GB) +raw
Graylog
Redis
redis 127.0.0.1:6379> info
redis_version:2.4.1
arch_bits:64
uptime_in_days:2
connected_clients:7024
connected_slaves:3
used_memory_human:11.63G
used_memory_peak_human:16.66G
total_connections_received:978225
total_commands_processed:3782860626
expired_keys:7613320
evicted_keys:0
role:master
db0:keys=511643,expires=386597
db2:keys=6581773,expires=1562605
db3:keys=64,expires=55
db6:keys=1,expires=0
db10:keys=19,expires=0
db15:keys=4,expires=0
Relatórios
Relatórios
Heatmap
Python
Config
Dúvidas?
Contato
• Francisco Wagner Cunha Freire
wgrcunha@gmail.com
• Twitter: @ffreire
• http://github.com/locaweb

Mais conteúdo relacionado

Semelhante a Solução de logs para 3M contas de email

Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Big data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dadosBig data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dadosRenan Moreira de Oliveira
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesjoanio trade
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
 
WebCrawling Utilizando PHP
WebCrawling Utilizando PHPWebCrawling Utilizando PHP
WebCrawling Utilizando PHPRodrigo Sales
 
SNMP - Rafael Rodriques
SNMP - Rafael RodriquesSNMP - Rafael Rodriques
SNMP - Rafael Rodriquesmarleigrolli
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataAmbiente Livre
 
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data tdc-globalcode
 
Transferência Gerenciada de Arquivos Corporativos
Transferência Gerenciada de Arquivos CorporativosTransferência Gerenciada de Arquivos Corporativos
Transferência Gerenciada de Arquivos CorporativosVirtù Tecnológica
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital PreservationRoberto Beraldo Chaiben
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDAOficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDAnitaibezerra
 
Planejamento de Capacidade com ferramentas gratuitas
Planejamento de Capacidade com ferramentas gratuitasPlanejamento de Capacidade com ferramentas gratuitas
Planejamento de Capacidade com ferramentas gratuitasRodrigo Campos
 

Semelhante a Solução de logs para 3M contas de email (20)

Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Big data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dadosBig data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dados
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandes
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
 
WebCrawling Utilizando PHP
WebCrawling Utilizando PHPWebCrawling Utilizando PHP
WebCrawling Utilizando PHP
 
SNMP - Rafael Rodriques
SNMP - Rafael RodriquesSNMP - Rafael Rodriques
SNMP - Rafael Rodriques
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big Data
 
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
 
Cirrus
CirrusCirrus
Cirrus
 
Transferência Gerenciada de Arquivos Corporativos
Transferência Gerenciada de Arquivos CorporativosTransferência Gerenciada de Arquivos Corporativos
Transferência Gerenciada de Arquivos Corporativos
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital Preservation
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDAOficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
 
Planejamento de Capacidade com ferramentas gratuitas
Planejamento de Capacidade com ferramentas gratuitasPlanejamento de Capacidade com ferramentas gratuitas
Planejamento de Capacidade com ferramentas gratuitas
 

Solução de logs para 3M contas de email