ETLive 2.0: più velocità e scalabilità per l’analisi del traffico email

Alessio Cecchi
08/12/2013

Come i nostri clienti avranno notato abbiamo dovuto sospendere il servizio ETLive (analisi del traffico email in tempo reale) per diversi giorni. Il motivo è che la costante crescita degli utenti di Qboxmail lo metteva in “ginocchio” sotto il costante flusso di centinaia, a volte anche migliaia, di righe di log da analizzare, al secondo.

ETLive analisi log email

 

ETLive è un sistema molto complesso, interamente pensato e sviluppato dai nostri “Ninja Developers”. Facendola breve, tutti i server dell’infrastruttura di Qboxmail (MX, POP, IMAP, SMTP, Webmail) inviano i loro log tramite syslog ad un client syslog scritto in Ruby. Da qui partono tutta una serie di processi che, sempre in tempo reale, eseguono il parsing di questi log, scartano le informazioni che non ci interessano e registrano solamente i dati utili.

Nella prima versione questi dati passavano da un sistema di code che utilizza Resque e poi dei task si occupavano di prelevare i dati ed inserirli in un database NoSQL basato su MongoDB. Purtroppo i continui update necessari per mantenere costantemente aggiornati i dati pesavano molto sui dischi ed il loro I/O non era sufficiente a mantenere il passo. Inoltre il consumo di RAM per mantenere gli indici e le ricerche degli utenti che arrivavano dall’interfaccia web facevano si che MongoDB rispondesse sempre più lento e si creassero delle code di log da analizzare in Resque.

Ad una prima analisi la soluzione più immediata poteva sembrare quella di potenziare l’hardware ma il problema si sarebbe ripresentato da lì a poco, inoltre da un punto di vista pratico ci sarebbe costano molto in termini economici. La strada corretta era quella di rivedere completamente l’architettura software di ETLive in modo da renderlo nettamente più veloce, stabile e scalabile a parità di hardware utilizzato, e così abbiamo fatto.

Il nuovo ETLive utilizza adesso pesantemente Redis, tutti i dati una volta analizzati vengono mantenuti “in memory” per 60 minuti, questo ha reso le ricerche sui “Log in Tempo Reale” estremamente veloci e leggere per il sistema. I dati più vecchi di 60 minuti vengono spostati in MongoDB e quindi resi disponibili agli utenti nella sezione “Archivio” dove sono mantenuti per 7 giorni. Anche la sezione Archivio è stata migliorata, adesso siamo in grado di mantenere i dati fino a 365 giorni senza appesantire il sistema, il tutto grazie ad una sapiente ottimizzazione dei dati e del codice Ruby (che ora lavora anche in modalità “Evented” che lavoro su MongoDB.

Con queste ultime modifiche è stata aggiunta, per i clienti, anche la possibilità di visualizzare le email in coda di invio sui server SMTP. Una funzionalità normalmente disponibile solo per i SysAdmin tramite comandi shell con, ad esempio, il comando “mailq” di Postfix.

Le attuali componenti software utilizzate in ETLive sono:

Questo aggiornamento dell’architettura ci consente di iniziare ad introdurre nuovi servizi quali server SMTP dedicati ai clienti che includono un sistema di Antispan in uscita e collegati ad ETLive.

Utilizziamo i cookie per fornirti una migliore esperienza di navigazione, continuando ne accetti l’utilizzo. Per maggiori informazioni visita la pagina Privacy policy.

Accetta