Poikkeamien tunnistaminen lokitiedostoista : Splunk-ohjelmiston hyödyntäminen poikkeamien tunnistamiseen
Niemelä, Tomi (2024)
Niemelä, Tomi
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202402203189
https://urn.fi/URN:NBN:fi:amk-202402203189
Tiivistelmä
Toimeksiantaja valmistaa langattomia verkkoliikennelaitteita, joiden testaamisesta syntyy päivittäin tuhansia rivejä lokitiedostoja. Toimeksiantaja halusi tutkia koneoppimisen ja automaation mahdollisuuksia suoritusaikalokitiedostojen läpikäymiseen ja mahdollisten pullonkaulojen tunnistamiseen lokitiedostoista. Opinnäytetyön tavoitteena oli binäärimuotoisten suoritusaikalokitiedostojen kerääminen jatkuvasta integraatiosta ja niiden lähettäminen Splunk-ohjelmistolle indeksoitaviksi ja edelleen analysoitaviksi.
Opinnäytetyön tarkoituksena oli selvittää, miten binäärimuotoisista lokitiedostoista saadaan tunnistettua automaation tai koneoppimisen avulla komponenttien mahdollista poikkeavaa käytöstä ja sen mahdollista kestoa. Splunk-ohjelmistoa käytettiin lokitiedostojen läpikäymiseen, ja sen Machine Learning Toolkit -laajennusosaa hyödynnettiin koneoppismenetelmien käyttöönottamiseksi. Opinnäytetyön tietoperusta koostuu pääsääntöisesti englanninkielisistä julkaisuista ja artikkeleista aiheinaan koneoppiminen ja Splunk.
Poikkeamien tunnistamiseksi binäärimuotoiset suoritusaikalokitiedostot purettiin ja parsittiin Splunk-ohjelmiston ymmärtämään csv-tiedostomuotoon testiympäristössä. Splunk-ohjelmistoa ei kuitenkaan ollut käytössä osastolla, jolle työ tehtiin, joten Splunk päätettiin asentaa paikalliseen kehitysympäristöön poikkeamien tunnistamisen kokeilemista varten.
Splunk-ohjelmisto asetettiin seuraamaan tiedostopolkua, josta csv-muotoiset tiedostot indeksoitiin tapahtumiksi, jokaisesta testikerrasta erikseen. Splunk-ohjelmistolla onnistuttiin näistä indeksoiduista tapahtumista löytämään kuormitettuja prosessoriytimiä sekä esittämään keinoja poikkeamien tunnistamiseksi suoritusaikalokitiedostoista koneoppimista hyödyntäen. Mahdollisia poikkeamia löydettiin myös ilman koneoppimisen keinoja. Mahdollisten poikkeamien kestoa ei kuitenkaan onnistuttu tässä opinnäytetyössä laskemaan, sillä suoritusaikalokitiedostoja täytyisi muokata sisältämään enemmän yksilöivää tietoa kulloinkin käsittelyssä olevasta datapaketista. Ilman tätä tietoa Splunk-ohjelmistolla ei voitu yhdistää oleellisia tietoja keskenään ja näin laskea datapaketin käyttämää kokonaisaikaa prosessien ketjussa.
Splunk vaikutti erittäin tehokkaalta työkalulta lokitiedostojen läpikäymiseen. Koneoppimisen hyödyntäminen oli helppoa, mutta toisaalta kulutti virtuaalikoneen laskentatehoa merkittävästi. Splunk-ohjelmistossa oli mahdollista ohjelmoida haut automaattisiksi, ja asettaa hälytykset poikkeaville tuloksille, joten lokitiedostojen manuaalinen läpikäyminen vähentyisi työkalua käyttämällä merkittävästi. The contractor manufactures wireless network communication devices. Thousands of lines of logfiles are generated daily from testing these devices, and contractor wanted to investigate the possibilities of machine learning and automation for going through the logfiles and identifying possible bottlenecks in the system from the logfiles. The aim of this thesis was to collect runtime log files in binary format from continuous integration and send them to the Splunk for indexing and further analysis.
The subject of this thesis was to find out how to identify possible abnormal behavior of components and software and their possible duration by analyzing binary log files, that were result from testing network communication devices, with the help of automation or machine learning. Splunk was utilized to go through the log files, and its Machine Learning Toolkit plugin was used to implement machine learning methods.
To identify anomalies, runtime log files in binary format were extracted and parsed into csv file format understood by Splunk software in the test environment. These formatted csv files were sent for indexing. The Splunk software was able to find loaded processor cores from these indexed events. With the Splunk, it was possible to present ways to identify possible anomalies from log files using machine learning. Possible anomalies were also found without the use of machine learning. However, the duration of possible anomalies could not be calculated in this thesis, as the log files would have to be edited to contain more unique information about the data package.
Overall, Splunk seemed like a very powerful tool for going through the log files. In Splunk, it was possible to program the searches to be automatic, and to set alarms for abnormal results, so the manual reviewing of the log files would be significantly reduced by using this tool.
Opinnäytetyön tarkoituksena oli selvittää, miten binäärimuotoisista lokitiedostoista saadaan tunnistettua automaation tai koneoppimisen avulla komponenttien mahdollista poikkeavaa käytöstä ja sen mahdollista kestoa. Splunk-ohjelmistoa käytettiin lokitiedostojen läpikäymiseen, ja sen Machine Learning Toolkit -laajennusosaa hyödynnettiin koneoppismenetelmien käyttöönottamiseksi. Opinnäytetyön tietoperusta koostuu pääsääntöisesti englanninkielisistä julkaisuista ja artikkeleista aiheinaan koneoppiminen ja Splunk.
Poikkeamien tunnistamiseksi binäärimuotoiset suoritusaikalokitiedostot purettiin ja parsittiin Splunk-ohjelmiston ymmärtämään csv-tiedostomuotoon testiympäristössä. Splunk-ohjelmistoa ei kuitenkaan ollut käytössä osastolla, jolle työ tehtiin, joten Splunk päätettiin asentaa paikalliseen kehitysympäristöön poikkeamien tunnistamisen kokeilemista varten.
Splunk-ohjelmisto asetettiin seuraamaan tiedostopolkua, josta csv-muotoiset tiedostot indeksoitiin tapahtumiksi, jokaisesta testikerrasta erikseen. Splunk-ohjelmistolla onnistuttiin näistä indeksoiduista tapahtumista löytämään kuormitettuja prosessoriytimiä sekä esittämään keinoja poikkeamien tunnistamiseksi suoritusaikalokitiedostoista koneoppimista hyödyntäen. Mahdollisia poikkeamia löydettiin myös ilman koneoppimisen keinoja. Mahdollisten poikkeamien kestoa ei kuitenkaan onnistuttu tässä opinnäytetyössä laskemaan, sillä suoritusaikalokitiedostoja täytyisi muokata sisältämään enemmän yksilöivää tietoa kulloinkin käsittelyssä olevasta datapaketista. Ilman tätä tietoa Splunk-ohjelmistolla ei voitu yhdistää oleellisia tietoja keskenään ja näin laskea datapaketin käyttämää kokonaisaikaa prosessien ketjussa.
Splunk vaikutti erittäin tehokkaalta työkalulta lokitiedostojen läpikäymiseen. Koneoppimisen hyödyntäminen oli helppoa, mutta toisaalta kulutti virtuaalikoneen laskentatehoa merkittävästi. Splunk-ohjelmistossa oli mahdollista ohjelmoida haut automaattisiksi, ja asettaa hälytykset poikkeaville tuloksille, joten lokitiedostojen manuaalinen läpikäyminen vähentyisi työkalua käyttämällä merkittävästi.
The subject of this thesis was to find out how to identify possible abnormal behavior of components and software and their possible duration by analyzing binary log files, that were result from testing network communication devices, with the help of automation or machine learning. Splunk was utilized to go through the log files, and its Machine Learning Toolkit plugin was used to implement machine learning methods.
To identify anomalies, runtime log files in binary format were extracted and parsed into csv file format understood by Splunk software in the test environment. These formatted csv files were sent for indexing. The Splunk software was able to find loaded processor cores from these indexed events. With the Splunk, it was possible to present ways to identify possible anomalies from log files using machine learning. Possible anomalies were also found without the use of machine learning. However, the duration of possible anomalies could not be calculated in this thesis, as the log files would have to be edited to contain more unique information about the data package.
Overall, Splunk seemed like a very powerful tool for going through the log files. In Splunk, it was possible to program the searches to be automatic, and to set alarms for abnormal results, so the manual reviewing of the log files would be significantly reduced by using this tool.