In this thesis we present a novel solution to parse unstructured log data from a large-scale distributed system into actionable insights and predictions using state-of-the-art Machine Learning techniques. Every digital business has to deal with many interconnected complex systems. As the business grows, the scale of the complexity becomes impossible to manage for any individual or team. Automation is required to guarantee the availability of the service at all time, as well as ensuring performance and low latency. This problem is even more prominent in distributed software systems, where each component is located in a different area of the world but they are required to work correctly together. Log analysis is a technique to monitor the status of a complex system. Every digital system in fact produces thousands of log lines every day. These logs are simple text files that output every action performed by the system. The logs play a major role for the developer, since they allow to inspect the state of the system and reconstruct events and paths that lead to system failures. Because of the huge amount of logs available, however, every business requires a custom software solution to automatically parse and inspect log files. Our researches aims to provide an innovative solution to this problem. The log files used for the research come from a real company that has to manage a worldwide distributed service composed by multiple applications installed in a multitude of machines in every continent. The source data is composed of a huge amount of plain-text log files in the order of millions of lines. Our solution parses the logs to extract structured data from the files. Then all the data collected is used as input for log analysis. The analysis aims to produce actionable insights for the business to find the source of errors and output valuable predictions on the causes of future issues in the system. Furthermore, our solution provides a dynamic web dashboard that displays the result of the analysis. Through the dashboard, the developer can choose to inspect only the most important information required to solve a specific issue. Overall, our research provides an example of how to perform large-scale log analysis. Starting from plain text log files provided by the business and extracted by a real world software system, we are able to parse, inspect, and index the data which is the analyzed to provide actionable insights and predictions.
In questa tesi presentiamo una soluzione innovativa per gestire i dati senza struttura di log di un sistema distribuito su larga scala, il nostro obiettivo è quello di fornire suggerimenti e predizioni partendo dallo stato dell'arte sul log analysis e applicando tecniche di Machine Learning. Ogni business digitale deve gestire un grande numero di sistemi complessi interconnessi tra di loro. Le dimensioni e la complessità raggiungono livelli non gestibili da nessun individuo o team al crescere del business. Ogni organizzazione ha bisogno di un sistema automatizzato che permetta di garantire il funzionamento del sistema in ogni momento, mantenendo al contempo un alto livello di performance e bassa latenza. Questo problema è ancora piu sentito nei sistemi distribuiti, in cui ogni componente è localizzato in diverse aree del mondo e ognuno deve lavorare e scambiare informazioni in maniera corretta. Log analysis è una tecnica per monitorare lo stato di un sistema complesso. Ogni business digitale produce migliaia di righe di log ogni giorno. Questi log sono semplici file di testo che mostrano ogni azione compiuta dal sistema nel tempo. I log sono fondamentali per ogni sviluppatore, in quanto permettono di controllare lo stato del sistema e ricostruire la successione di eventi che ha portato a problemi. A causa dell'enorme quantità di righe di log generate dal sistema, diventa impossibile per uno sviluppatore analizzare manualmente i log. Per questo motivo una soluzione software che automatizza questo processo è necessaria per ogni business. La nostra ricerca presentate in questa tesi presenta una soluzione innovativa al problema dell'analisi dei log. I dati di log utilizzati per il progetto di ricerca provengono da un'azienda reale, che utilizza un sistema distribuito a su scala mondiale composto da diversi servizi e applicazioni. I server su cui sono instanziati gli applicativi sono distribuiti in diverse regioni nel mondo. Il punto di partenza sono i file di log, composti da un grande ammontare di testo senza formattazione e senza un vero e proprio significato preso nell'insieme. I file analizzati contentono milioni di righe di log. Nella nostra soluzione, estraiamo i log dai vari file e diamo loro una struttura, per poi procedere con l'analisi e ad applicare le tecniche di Machine Learning che risultano piu opportune allo scenario. Inoltre, nella nostra ricerca abbiamo sviluppato un pannello web che mostra i risultati dell'analisi. Utilizzando il pannello, lo sviluppatore puo controllare e visualizzare solo i dati piu importanti per risolvere uno specifico problema. Partendo da semplici file di testo, la nostra soluzione analizza i dati, estrae informazioni strutturate, e compie un'analisi completa che mostra dati concreti per il business per controllare e monitorare il proprio sistema digitale.
Developing log analysis for a worldwide distributed system
Cappelletti, Andrea;Maglione, Sandro
2020/2021
Abstract
In this thesis we present a novel solution to parse unstructured log data from a large-scale distributed system into actionable insights and predictions using state-of-the-art Machine Learning techniques. Every digital business has to deal with many interconnected complex systems. As the business grows, the scale of the complexity becomes impossible to manage for any individual or team. Automation is required to guarantee the availability of the service at all time, as well as ensuring performance and low latency. This problem is even more prominent in distributed software systems, where each component is located in a different area of the world but they are required to work correctly together. Log analysis is a technique to monitor the status of a complex system. Every digital system in fact produces thousands of log lines every day. These logs are simple text files that output every action performed by the system. The logs play a major role for the developer, since they allow to inspect the state of the system and reconstruct events and paths that lead to system failures. Because of the huge amount of logs available, however, every business requires a custom software solution to automatically parse and inspect log files. Our researches aims to provide an innovative solution to this problem. The log files used for the research come from a real company that has to manage a worldwide distributed service composed by multiple applications installed in a multitude of machines in every continent. The source data is composed of a huge amount of plain-text log files in the order of millions of lines. Our solution parses the logs to extract structured data from the files. Then all the data collected is used as input for log analysis. The analysis aims to produce actionable insights for the business to find the source of errors and output valuable predictions on the causes of future issues in the system. Furthermore, our solution provides a dynamic web dashboard that displays the result of the analysis. Through the dashboard, the developer can choose to inspect only the most important information required to solve a specific issue. Overall, our research provides an example of how to perform large-scale log analysis. Starting from plain text log files provided by the business and extracted by a real world software system, we are able to parse, inspect, and index the data which is the analyzed to provide actionable insights and predictions.File | Dimensione | Formato | |
---|---|---|---|
Developing log analysis for a worldwide distributed system.pdf
accessibile in internet per tutti
Descrizione: Thesis by Andrea Cappelletti, Sandro Maglione
Dimensione
3.82 MB
Formato
Adobe PDF
|
3.82 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/178042