en form av datamining martin doversten - diva...

24
IT 11 067 Examensarbete 15 hp September 2011 Log Search En form av datamining Martin Doversten Institutionen för informationsteknologi Department of Information Technology

Upload: others

Post on 19-Oct-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

  • IT 11 067

    Examensarbete 15 hpSeptember 2011

    Log SearchEn form av datamining

    Martin Doversten

    Institutionen för informationsteknologiDepartment of Information Technology

  • Teknisk- naturvetenskaplig fakultet UTH-enheten Besöksadress: Ångströmlaboratoriet Lägerhyddsvägen 1 Hus 4, Plan 0 Postadress: Box 536 751 21 Uppsala Telefon: 018 – 471 30 03 Telefax: 018 – 471 30 00 Hemsida: http://www.teknat.uu.se/student

    Abstract

    Log Search - A kind of data mining

    Martin Doversten

    This report examines the possibility of optimizing troubleshooting log files generated when constructing new Volvo trucks. Errors occur when CAD models are stored and managed by the versioning system PDMLink. By developing a new diagnostic tool, Log Search, the troubleshooting process is automated and thereby streamlines the current manual search.

    Tryckt av: Reprocentralen ITCIT 11 067Examinator: Anders JanssonÄmnesgranskare: Olle GällmoHandledare: Kajsa Backman

  • Sammanfattning

    Denna rapport undersöker möjligheten att optimera felsökning i logg-filer som genereras vid lastbilskonstruering p̊a Volvo. Felen uppst̊ar d̊aCAD-modeller lagras och hanteras av versionshanteringssystemet PDM-Link. Genom att utveckla ett nytt felsökningsverktyg, Log Search, skafelsökningsprocessen automatiseras och p̊a s̊a sätt effektivisera det nuva-rande manuella sökandet.

  • Inneh̊all

    1 Introduktion 81.1 Problemformulering . . . . . . . . . . . . . . . . . . . . . . . . . 81.2 Avgränsning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3 Syfte och m̊al . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Omvärldsanalys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.4.1 Användarstudie . . . . . . . . . . . . . . . . . . . . . . . . 9

    2 Bakgrund 92.1 Datamining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.1.1 Reguljäruttryck . . . . . . . . . . . . . . . . . . . . . . . . 102.2 PDMLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3 Metod 113.1 Krav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3.1.1 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.2 Oracle databas . . . . . . . . . . . . . . . . . . . . . . . . 12

    3.2 Apache Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3 Vaadin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    3.4.1 Genomg̊aende test . . . . . . . . . . . . . . . . . . . . . . 123.4.2 Användartest . . . . . . . . . . . . . . . . . . . . . . . . . 13

    4 Resultat 134.1 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    4.1.1 Systemflöde . . . . . . . . . . . . . . . . . . . . . . . . . . 134.1.2 Användargränssnitt . . . . . . . . . . . . . . . . . . . . . 144.1.3 Databas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    4.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2.1 Klient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2.2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    4.3 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.4 Optimering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    5 Slutsats 195.1 Vidareutveckling . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    Referenser 22

    Bilaga 1: Användarstudie 23

    Bilaga 2: Ordlista 24

    7

  • 1 Introduktion

    Volvo Information Technology1 supportavdelning handskas dagligen med sto-ra mängder loggdata. Loggdata genereras vid lagring och versionshantering avCAD-modeller2, som i sin tur är en del av konstruerandet av nya lastbilar.CAD-modellerna ritas i konstruktionsprogrammet PRO Engineer och sparas iversionshanteringssystemet PDMLink3. All typ av aktivitet som sker i PDM-Link loggas, s̊a även fel. Det är därefter upp till supportavdelningen att loka-lisera felen och vidta åtgärder. Felsökningen sker manuellt vilket är ineffektivoch tidskrävande. Ca 2 GB logfiler genereras per timme p̊a fyra separata noderoch loggfilerna blir snabbt ohanterliga i dagens verksamhet.

    Med hjälp av informationsutvinning (“datamining”)4 och utveckling av ett nyttfelsökningsverktyg ska felsökningsprocessen automatiseras och p̊a s̊a sätt effek-tivisera det manuella sökandet.

    1.1 Problemformulering

    Rapporten granskar hur man kan automatisera felsökningsprocesser i PDMLinksloggfiler. Ett felsökningsverktyg ska utvecklas för att centralisera och extraherainformation som är intressant i ett felsökningsärende. Informationen ska varaenkelt presenterad för användaren för att effektivisera det manuella arbetet iproduktionsmiljön.

    1.2 Avgränsning

    Den metod som beskrivs i rapporten avser endast en prototyp. Det finns ingetkrav p̊a att implementera lösningen i praktiken. All utveckling sker i en separattestmiljö, parallellt med den befintliga produktionen. Dock utförs samtliga testerbaserat p̊a verkliga scenarion.

    1.3 Syfte och m̊al

    Syftet är att underlätta supportarbete av felsökningsärenden i PDMLinks logg-filer. Denna automatiserade sökningsprocess ska ersätta det nuvarande manuellaarbetet. Supportavdelningen ska f̊a en tydlig översikt över hur systemet m̊ar viden specifikt tidpunkt, t.ex. felfrekvens etc.

    D̊a PDMLink inte är en egenutveckling fr̊an Volvo IT utan kommer fr̊an en ex-ternleverantör behöver Volvo IT öppna supportärenden mot leverantören. Detligger därför b̊ade i Volvo IT och leverantörens intresse att f̊a tydliga referenser

    1Volvo Information Technology är ett globalt företag och ing̊ar i Volvokoncernen, i dennarapport förkortat som “Volvo IT”

    2CAD är en förkortning av Computer-aided design, digital framställning av ritningar inomkonstruktion samt arkitektur. [10]

    3PDMLink är ett versionshanteringssystem för CAD-modeller, se avsnitt 2.24“datamining” är ett begrepp inom datavetenskapen, se avsnitt 2.1

    8

  • till det uppkomna felet.

    Målet är att ta fram ett nytt felsökningsverktyg. Felsökningsverktyget ska möjliggörasökning samt indexering baserad p̊a datum, loggdatatyp etc. Loggdata som kantänkas inneh̊alla felet ska presenteras p̊a ett enkelt och hanterbart sätt för per-sonen som genomför felsökningen.

    1.4 Omvärldsanalys

    Volvo IT söker idag manuellt i PDMLinks loggfiler efter fel. En typisk sökningkan g̊a till p̊a följande sätt:

    − Supporten f̊ar in ett ärende fr̊an kund om vad som kan tänkas vara fel. Ibästa fall f̊ar man ett felmeddelande men mer vanligt är en beskrivningom vad som gjordes precis innan felet uppstod.

    − Med informationen man har f̊att försöker man återskapa felet alternativtleta direkt i loggfilerna efter det ursprungliga felet. Vanligt förekommandehjälpmedel är kommandoradsverktygen5 “grep” och “tail” för UNIX.

    − Om man lyckas lokalisera felet, och beroende typ av fel, väljer man attåtgärda felet internt alternativt skickar vidare det till leverantören.

    D̊a informationen ofta är kort fr̊an kunden som upplevde felet lyckas man intealltid hitta eller återskapa felet.

    1.4.1 Användarstudie

    Baserat p̊a en användarstudie6, framkommer det att supporten upplever felsökningsarbetetsv̊arhanterligt och alltför manuellt. Studien undersöker övergripande supportav-delningens dagliga felsökningsrutiner samt förslag p̊a förbättring.Det är en resurskrävande process som tar mycket tid och är komplicerad attutföra.

    2 Bakgrund

    Rapporten rör till stor del informationsutvinning där fokus ligger p̊a felsökning.Detta tillämpas övergripande i hela lösningen. Data som i det här fallet ska be-handlas är loggfiler genererade av ett versionshanteringssystem för CAD-modeller,PDMLink.

    5“grep” utför textsökningar i en eller flera filer och “tail” skriver ut de sista raderna i enfil [11] [13]

    6Se “Bilaga 1: Användarstudie”, sida 23.

    9

  • 2.1 Datamining

    “Datamining” är ett begrepp inom datavetenskapen som beskriver metoder attleta, hitta och extrahera data efter ett visst fördefinierat mönster.[7]

    2.1.1 Reguljäruttryck

    Reguljäruttryck beskriver ett mönster som i detta fall används vid extraheringav loggdata. Om en given sträng stämmer överens med mönstret är det en kor-rekt matchning.

    Det finns programvaror och webbtjänster som kan hjälpa till att konstruerareguljäruttryck.

    Hjälpmedel som användes i denna rapport:

    − RegExr - http://gskinner.com/RegExr/

    − Regular Expression Test Page - http://www.fileformat.info/tool/regex.htm

    − txt2re - http://www.txt2re.com

    Exempel p̊a reguljäruttryck som används av Log Search:

    "2010-03-05": 20\\d\\d-[01][0-3]-[0-3]\\d

    "Sun 3/27/11": ?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\\s([01]?\\d/[0-3]?\\d/(?:20)?\\d\\d

    "18:27:32": [0-2]\\d:[0-5]\\d:[0-5]\\d

    2.2 PDMLink

    PDMLink är en form av versionshanteringssystem för CAD- konstruktionspro-grammet PRO Engineer. PDMLink hanterar även lagring av CAD-modeller somkonstrueras i PRO Engineer. Varje enskild installation av PDMLink är tillika ettenskilt versionshanteringssystem med sitt egna lagringsutrymme och databas.[4]

    PDMLink best̊ar av tre delar:

    − Webbserver som tar hand om gränssnittspresentationen

    − Filvalv där CAD-modellerna sparas

    − Databas som hanterar all information kring varje in-checkad CAD-modell

    PDMLink erbjuder en rad verktyg och insticksmoduler vilka s̊aledes styrs avden lokala PDMLink installationen.

    10

  • Den loggdata som genereras fr̊an PDMLink sker per installation och hamnari underkataloger p̊a den nod som h̊aller installationen, i dagsläget är detta fyranoder. Som tidigare nämnts kan loggdata se olika ut trotts att den kommer fr̊anett och samma system, PDMLink. Detta beror p̊a att PDMLink kör flera olikaprocesser parallellt.

    3 Metod

    Det manuella felsökningsarbetet ska ersättas av ett felsökningsverktyg som au-tomatiserar processen. Detta verktyg, kallat Log Search, ska utvecklas som enseparat applikation, skild fr̊an den nuvarande produktionsmiljön. Log Searchska best̊a av tv̊a delar, användargränssnitt och serverapplikation.Användargränssnittet kommer att hantera presentationen av data, i vilken sup-portavdelningen gör sökningar för lokalisering av fel.Serverapplikationen ska centralisera samt extrahera loggdata fr̊an PDMLinkssamtliga loggfiler. En gemensam databas kommer skapas i syftet att främst lag-ra extraherad loggdata men ocks̊a s̊adant som tillhör användargränssnittet, t.ex.sökningshistorik, systemstatus etc.

    3.1 Krav

    I stora organisationer, som Volvo IT, är det viktigt att framtidssäkra nyut-veckling av programvaror. Vid val av likväl programmeringsspr̊ak som databasm̊aste det finnas intern erfarenhet inom organisationen för att stödja supportsamt vidareutveckling.

    Volvo IT har tagit fram särskilda bestämmelser och krav för vad som gällervid nyutveckling.

    3.1.1 Java

    Log Search kommer att implementeras i Java för att göra systemet generisktöver flera olika operativsystem men ocks̊a för att uppfylla Volvo IT:s krav p̊anyutveckling.

    Det finns stora fördelar med Java genom att det finns tydlig dokumentation samtstort stöd för API:er som kan underlätta och effektivisera programmerandet.[6,3]

    Volvo IT har l̊ang erfarenhet av Javautveckling och det kommer därför finnasgoda resurser att underh̊alla systemet i framtiden. Ett tänkbart alternativ tillJava för implementeringen av servern var Python. Detta var dock aldrig aktuelltd̊a framtida support av systemet inte kunde säkras.

    11

  • 3.1.2 Oracle databas

    Systemet Log Search ska använda sig av en Oracledatabas för lagring av data.Detta enligt Volvo IT:s krav p̊a nyutveckling. [8, 5]

    3.2 Apache Tomcat

    Apache Tomcat är en serverapplikation fr̊an Sun Microsystems, numera ägt avOracle, som möjliggör körning av program implementerade i Java via HTTPsom en s̊a kallad “web service”. Efter att ha startat sitt Javaprogram i ApacheTomcat kan detta n̊as via webbläsaren, lokalt eller över nätverk. Genom attimplementera klientdelen av Log Search som en “web service” möjliggör dettasnabb och effektiv åtkomst för Volvo IT:s supportavdelningen. [9]

    3.3 Vaadin

    Vaadin tidigare IT Mill Toolkit är ett gränssnittsramverk för Java som möjliggörkörning av “web service” p̊a Apache Tomcat. Ramverket erbjuder ett stort bib-liotek av grafiska komponenter och kan likställas med Swing och dess MVC7

    struktur. Det g̊ar snabbt att sätta sig in i hur ramverket fungerar med den do-kumentation som Vaadin tillhandah̊aller p̊a sin hemsida, inklusive exempel ochguider.Vaadin är ett utmärkt sätt att snabbt och enkelt skapa gränssnittsprototyper.För att lägga mer tid och fokus p̊a serverapplikationen kommer klientdelen avLog Search använda sig av Vaadin. Vid en demonstration av Log Search kananvändaren skapa sig en uppfattning om hur systemet är tänkt att se ut, sam-tidigt som Vaadin är lätt att ersätta med Volvo IT:s eget ramverk JVS vidframtida implementering i produktionsmiljön. [1, 2]

    Alternativ till Vaadin är Echo, ICEfaces, ZK och GWT (Google Web Toolkit).[14]

    3.4 Test

    3.4.1 Genomg̊aende test

    Testet best̊ar av att extrahera data fr̊an loggfiler om minst 1 GB med hjälp avLog Search. Samtlig testdata tas fr̊an den befintliga produktionsmiljön. Genommanuella jämförelser mellan Log Search databasen och ursprungsfilerna kontrol-leras om extraheringen har utförts korrekt.

    Eftersom det genereras 2 GB loggdata per timme, m̊aste Log Search hinnahantera minst 1 GB loggdata under 30 minuter för att inte riskera alltför storafördröjningar.

    7MVC är en förkortning av Model-View-Controller, en designstruktur som används vidmjukvaruutveckling. [12]

    12

  • 3.4.2 Användartest

    En demonstration av användargränssnittet för de tänkta användarna kommerutvärdera systemets användarvänlighet och om systemet är tillämpbart i ettverkligt scenario.

    4 Resultat

    4.1 Design

    Nedan följer ett flödesschema som beskriver Log Search samt en skiss överanvändargränssnittet. Flödesschemat g̊ar stegvis igenom hur loggfiler proces-sar, fr̊an att en ny loggfil upptäcks av systemet till dess data är extraherad ochlagra i databasen.

    4.1.1 Systemflöde

    ORACLE DB

    EXTRACTED_DATA

    LOGFILES

    Unresolved

    Watcher

    Log file Log file

    Log file Log file

    Consume supervisor

    Consumer

    Watch

    Archive

    Watch

    er say

    s hello

    !

    Processing logfile...

    Client

    1.3.

    4.5.

    6.

    6.

    3.

    2.

    7.

    Figur 1: Beskrivning av systemflödet, fr̊an upptäckandet av en ny loggfil tilllagring av dess loggdata i databasen.

    1. Loggfiler genererade av PDMLink exporteras till en gemensam mappstruk-tur som bevakas av Log Search.

    2. “Watcher” meddelar “Consume supervisor” att en eller flera nya loggfilerhar upptäckts.

    13

  • 3. “Consume supervisor” ber antingen “Watcher” skicka vidare filen för ex-trahering av data, alternativt till “Unrevolved” i fallet d̊a “Consume su-pervisor” inte vet hur datat ska extraheras p̊a ett korrekt sätt.

    4. “Consume supervisor” startar en extraheringsprocess av loggdata och väntarp̊a resultatet.

    5. Det extraherade resultatet f̊as tillbaka av “Consume supervisor”.

    6. Referenser till loggfilen p̊a disk skapas i databasen, den extraherade logg-datan lagras i databasen och den processade loggfilen arkiveras i mapp-strukturen “Archive”.

    7. Klienten kan n̊a samtlig extraherad data i databasen.

    4.1.2 Användargränssnitt

    +- + Log Search Web Client

    Search :

    10

    10

    From :

    To:

    keyworkd

    Field :

    Show allSaved search

    File Edit Tools Help

    agdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfsagdsgsdgsdgnnvdn kdsnlnsdlnkv sdnglafsafsag dskjfnd12354 kabsfs

    File: dngkjsdngkjnsdID: dosingdsongRef.: odsng jnsdg jnSdChecksum: 90327598732u

    Figur 2: Skiss över användargränssnittet, sökning och presentation av loggdatan.

    Användargränssnittet best̊ar av en enkel listvy som presenterar samtlig loggda-ta fr̊an databasen. Till höger återfinns en sökpanel med tillhörande sökhistorik,

    14

  • manuellt sparad av användaren. Vid markering av en rad i listvyn visas detal-jerad information (källa, källans plats p̊a disk, övriga referenser m.m.) för denmarkerade raden längst ner i vänstra hörnet.

    4.1.3 Databas

    ER-diagram

    ER-diagram “Entity-Relationships”-diagram är en generell metod som användsvid databasdesign. ER-diagram kan översättas till en relationsmodell som re-presenteras direktöversatt i databasen. [8, 5]

    Log files has

    ID

    Source file

    Extracted dataFile size

    Parent

    Last line

    Checksum

    Row number

    DateType

    Log info(Stack trace)

    Exec code

    Figur 3: Databasen representerad av ett ER-diagram.

    15

  • Relationsmodell

    Log filesID Source file Parent Last line Checksum File size1 V081259version listener.log C:\WatchDir 313 a554d... 4956932 BackgroundMethodServ... C:\WatchDir 206 dff44... 21378

    Extracted dataFile ID Row number Date Type Exec code Log info1 34 2011-0... INFO wt.meth... [main] Starting BackgroundMeth...2 52 2011-0... TRACE wt.meth... [WfSharedUserWorkQueue1.Pol...1 12 2011-0... TRACE wt.meth... [main] JVM id: 5383

    Tabell 1: Exempeldata presenterad i relationsmodellen för Log Search.

    16

  • 4.2 Implementation

    4.2.1 Klient

    Figur 4: Skärmdump av webbklienten.

    Log Search Web Client är gränssnittet som användaren möter vid sökningenbland färdiganalyserad loggdata p̊a servern. Klienten körs som en “web service”p̊a Apache Tomcat. Det krävs ingen installation och man kan n̊a klienten fr̊anen webbläsare.

    Användaren kan utföra sökningar efter datum eller fritext i valt fält, represen-

    17

  • terat fr̊an databasen. Uppdateringen av data fr̊an databasen sker kontinuerligti bakgrunden, vilket användaren allts̊a inte behöver bry sig om.

    Log Search Web Client presenterar samtliga extraherade data fr̊an analyseradeloggfiler samt referenser till dessa fysiskt p̊a disk.

    Klienten har ett hjälpavsnitt som förklarar dess funktioner samt ger exem-pel p̊a giltiga sökningar. Log Search Web Client kan n̊as fr̊an ett flertal olikawebbläsare.

    Användarprofil

    Eftersom Log Search endast presenterar redan befintlig loggdata p̊a nytt och iett mer användarvänligt gränssnitt bör användaren ha tidigare erfarenheter avPDMLink. Log Search är allts̊a tänkt att agera hjälpverktyg för de användaresom redan genomför s̊adan felsökning som Log Search avser, med andra ordfelsökning i PDMLink.

    4.2.2 Server

    Serverapplikation Log Search Helper är skriven som en terminalapplikation somanvänder sig av Oracle JDBC biblioteket för koppling mot databasen.

    Log Search Helper som representerar serverdelen av Log Search ansvarar föranalysering och extrahering av loggdata. Log Search Helper bevakar kontinuer-ligt en fördefinierad sökväg p̊a disk efter nya eller ändrade loggfiler. Vid ny ellerändrad loggfil triggas en “supervisor” som i sin tur analyserar och extraherarrelevant data till databasen.Om filen redan finns i databasen letar “supervisorn” efter ändringar och skriverendast ej redan befintlig data till databasen.

    Log Search Helper kan extrahera samt analysera data fr̊an PDMLinks logg-filer. Användaren kan utföra sökningar, spara sökningar samt exportera valfrittantal loggfiler som ett Zip-arkiv. Log Search Helper saknar funktionalitet attutföra rensning i databasen vilket tas upp som ett förslag p̊a vidareutveckling islutet av denna rapport.

    Beskrivning av loggdata

    Befintliga loggfiler har använts för att observera vilken typ av loggdata somLog Search ska extrahera, det vill säga vilka loggdata som är relevanta i ettfelsökningsärende.

    Nedan följer exempel p̊a tv̊a olika loggfiler som har observerats. Man kan se attbland annat datumformatet skiljer sig beroende p̊a vilken process i PDMLinksom har genererat loggfilen. Notera även att positionen av loggmeddelandetstyp skiljer sig, “ERROR” respektive “INFO”.

    18

  • 2011-03-27 18:41:45,511 ERROR wt.method.server.shutdown - Stopping services...

    Sun 3/27/11 18:27:32: main: INFO : wt.method.server.startup - Services started.

    4.3 Test

    Oracle SQL Developer och Windows Task Manager användes under testet föratt övervaka hur Log Search hanterade minnet samt skrivning till databasen.Systemet lyckades analysera och extrahera data fr̊an loggfiler större än 1 GBunder 20 min. Efter manuella observationer uppskattades Log Search f̊anga 80%av loggdatat som skulle extraheras.

    De 20% loggdata som inte f̊angas av Log Search Helper lagras, som tidigarenämnt (se Figur 1.), i en “Unresolved”-mappstruktur för manuell hantering.Anledning till att en del loggdata inte f̊angas av systemet beror p̊a antalet fallav reguljäruttryck som fördefinieras. Allt eftersom man skapar först̊aelse för nyafall kan dessa läggas till i en särskild “parser”-Javaklass.

    4.4 Optimering

    Systemet utgör en plattform att bygga vidare fr̊an. Det finns delar i systemetsom behöver optimeras eftersom viss loggdata, enligt de test som har utförts,sorteras bort och aldrig extraheras till databasen, med andra ord indexerarinte system samtliga fel i loggarna. Även de reguljäruttryck som används vidmönstermatchning p̊a servern kan konstrueras om för att ge bättre matchningmot loggfilerna.

    5 Slutsats

    Utvecklandet av Log Search är ett tydligt exempel p̊a hur man kan automatiseramanuellt arbete och därmed underlätta för t.ex. supportavdelning p̊a Volvo IT.Jag har f̊att bättre kunskaper i Java och har skaffat mig nya erfarenheter i ut-veckling av “web service” - applikationer. Jag fick en bra inblick i hur det är attutveckla i en stor organisation. Man m̊aste tänka l̊angsiktigt och se till att detfinns resurser som kan underh̊alla det man har utvecklat.

    Log Search kommer implementeras i praktiken efter ytterligare tester och an-passningar mot Volvo IT.

    19

  • 5.1 Vidareutveckling

    ORACLE DB

    EXTRACTED_DATA

    ANALYSED_DATA

    LOGFILES

    Unresolved

    Watcher

    Log file Log file

    Log file Log file

    Consume supervisor

    Consumer

    Watch

    Archive

    Watch

    er say

    s hello

    !

    Processing logfile...

    Client

    Analyser

    Please analyze some new data!

    Stop consu

    ming new

    log files!

    Timer Time to analyze

    some data!

    1.3.

    4.5.

    6.

    6.

    3.

    2.

    7.

    7.

    8.

    9.

    10.

    11.

    Figur 5: Beskrivning av systemflödet, likt Figur 1. med förslag p̊a vidareutveck-ling.

    Log Search är ett komplett och fungerande felsökningsverktyg men det finnsdelar som kan vidareutvecklas, delvis nämnt i avsnitt 4.4, “Optimering”.

    Förslag p̊a vidareutveckling av Log Search:

    − Rensningsprocess som givet ett datumintervall ser till att databasen inteväxer sig för stor.

    − Ytterligare niv̊a i databasen, där man separerar extraherad r̊adata ochanalyserad data. R̊adata extraheras p̊a en mer generell niv̊a för att in-te “missa” n̊agot fr̊an loggfilerna. Analyserad data genereras med jämnamellanrum, alternativt p̊a begäran av användaren, och representerar d̊aen “förfinad” databas.

    − Log Search h̊aller reda p̊a redundans av loggdata. Vad redundans innebär idet här sammanhanget beror p̊a vad användaren definierar som redundans,

    20

  • t.ex. loggdata med liknande “stack trace”, loggdata som exekverats fr̊ansamma process runt ett givet klockslag, etc.

    − Definiera fler “loggdatafall” i form av reguljäruttryck i “parser”-Javaklassen.

    21

  • Referenser

    [1] Marko Gronroos. Book of Vaadin: Vaadin 6.4. Vaadin Ltd, 2010.

    [2] Vaadin Ltd. Vaadin - thinking of u and i - vaadin.com. http://www.vaadin.com, Maj 2011.

    [3] Inc. President, MindView. Thinking in java, 3rd ed. revision 4.0. http://www.it.uu.se/edu/course/homepage/devgui/vt10/material/tij/,Februari 2011.

    [4] Parametric Technology Corporation (PTC). Windchill R© pdmlink R©,control all the content and processes that drive product develop-ment. http://www.ptc.com/WCMS/files/125264/en/6291_WC_PDMLink_DS_EN.PDF, 2011.

    [5] Shamkant Navathe Ramez Elmasri. Fundamentals of Database Systems, ,6th edition. Addison-Wesley, 2010.

    [6] Walter Savitch. Absolute Java, 3th edition. Addison-Wesley, 2008.

    [7] David Södermark Simon Westerberg. Data mining. Technical report, CS -Ume̊a University, 2006.

    [8] Tore Risch Thomas Padron-McCarthy. Databasteknik. StudentlitteraturAB, 2005.

    [9] Wikipedia. Apache tomcat. http://sv.wikipedia.org/wiki/Apache_Tomcat, Juli 2010.

    [10] Wikipedia. Computer-aided design. http://sv.wikipedia.org/wiki/Computer-aided_design, Juni 2011.

    [11] Wikipedia. Grep. http://en.wikipedia.org/wiki/Grep, Juli 2011.

    [12] Wikipedia. Model-view-controller. http://sv.wikipedia.org/wiki/Model-View-Controller, Maj 2011.

    [13] Wikipedia. Tail (unix). http://en.wikipedia.org/wiki/Tail_(Unix),Maj 2011.

    [14] Wikipedia. Vaadin. http://en.wikipedia.org/wiki/Vaadin, Juni 2011.

    22

  • Bilaga 1: Användarstudie

    Hur ofta gör du felsökningar i loggarna som genereras av PDMLink?

    Ange vilka verktyg du använder dig av:

    Hittar du alltid felet du söker efter?

    Om nej, ange en eller flera orsaker:

    - "Lyckas inte relatera återskapat fel till loggarna."

    - "Ibland är det svårt att hitta felen eftersom det finns så många loggfiler i systemet +

    att det inte går att avgöra på förhand vilken maskin i klustret som felet uppkommit i."

    - "Oftast därför att man inte orkar leta igenom alla loggarna på alla

    noderna för att hitta vart användarna träffat."

    - "I vissa fall är loggningsnivån på PDMLink satt på ett sätt där vissa fel inte rapporteras alls

    eller bara till en viss gräns, då kan det hända att man inte hittar det man vill."

    Nämn minst ett förslag på hur man skulle kunna effektivisera felsökning i PDMLink loggarna:

    - "Centralisera samtliga loggar från alla fyra noderna."

    - "Samla ihop alla loggar på ett ställe och skapa något intelligent

    sökverktyg för att effektivisera sökningen."

    - "Slå samman loggarna i ett sökbart repository."

    - "Att kunna söka genom alla logfiler på en gång med ett interface

    utan att behöva logga in på det olika pdmlink maskinerna."

    - "Mer användarvänlig layout jämfört med vad man får i "vi". Exempelvis färgkodning.

    Lätt sätt att filtrera ut information baserat på exempelvis tid, typ av meddelande, id etc."

    Aldrig, 0 (0%)

    1-3 ggr i månaden, 0 (0%)

    1-3 ggr i veckan, 3 (60%)

    Fler än 3 ggr i veckan, 2 (40%)

    0 1 2 3 4 5 6

    Unixkommandot "grep"

    Unixkommandot "tail"

    Egenutvecklat

    Annat

    Ja, 1 (20%)

    Nej, 4 (80%)

    Annat: - Textredigerarer för UNIX, t.ex. VIM - Open source - Hobbyprojekt från forum så som Github, m.fl.

    23

  • Bilaga 2: Ordlista

    Volvo IT, Volvo Information Technology är ett globalt företag och ing̊ar i Vol-vokoncernen.

    CAD, förkortning av Computer-aided design, digital framställning av ritningarinom konstruktion samt arkitektur.

    PDMLink, ett versionshanteringssystem för CAD-modeller, se avsnitt 2.2.

    MVC, förkortning av Model-View-Controller, en designstruktur som användsvid mjukvaruutveckling.

    Informationsutvinning (“datamining”), ett begrepp inom datavetenska-pen, se avsnitt 2.1.

    24