IT 11 067
Examensarbete 15 hp September 2011
Log Search
En form av datamining
Martin Doversten
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.
Sammanfattning
Denna rapport unders¨oker m¨ojligheten att optimera fels¨okning i logg- filer som genereras vid lastbilskonstruering p˚a Volvo. Felen uppst˚ar d˚a
Inneh˚ all
1 Introduktion 8
1.1 Problemformulering . . . . 8
1.2 Avgr¨ansning . . . . 8
1.3 Syfte och m˚al . . . . 8
1.4 Omv¨arldsanalys . . . . 9
1.4.1 Anv¨andarstudie . . . . 9
2 Bakgrund 9 2.1 Datamining . . . . 10
2.1.1 Regulj¨aruttryck . . . . 10
2.2 PDMLink . . . . 10
3 Metod 11 3.1 Krav . . . . 11
3.1.1 Java . . . . 11
3.1.2 Oracle databas . . . . 12
3.2 Apache Tomcat . . . . 12
3.3 Vaadin . . . . 12
3.4 Test . . . . 12
3.4.1 Genomg˚aende test . . . . 12
3.4.2 Anv¨andartest . . . . 13
4 Resultat 13 4.1 Design . . . . 13
4.1.1 Systemfl¨ode . . . . 13
4.1.2 Anv¨andargr¨anssnitt . . . . 14
4.1.3 Databas . . . . 15
4.2 Implementation . . . . 17
4.2.1 Klient . . . . 17
4.2.2 Server . . . . 18
4.3 Test . . . . 19
4.4 Optimering . . . . 19
5 Slutsats 19 5.1 Vidareutveckling . . . . 20
Referenser 22
Bilaga 1: Anv¨andarstudie 23
Bilaga 2: Ordlista 24
1 Introduktion
Volvo Information Technology1 supportavdelning handskas dagligen med sto- ra m¨angder loggdata. Loggdata genereras vid lagring och versionshantering av CAD-modeller2, som i sin tur ¨ar en del av konstruerandet av nya lastbilar.
CAD-modellerna ritas i konstruktionsprogrammet PRO Engineer och sparas i versionshanteringssystemet PDMLink3. All typ av aktivitet som sker i PDM- Link loggas, s˚a ¨aven fel. Det ¨ar d¨arefter upp till supportavdelningen att loka- lisera felen och vidta ˚atg¨arder. Fels¨okningen sker manuellt vilket ¨ar ineffektiv och tidskr¨avande. Ca 2 GB logfiler genereras per timme p˚a fyra separata noder och loggfilerna blir snabbt ohanterliga i dagens verksamhet.
Med hj¨alp av informationsutvinning (“datamining”)4och utveckling av ett nytt fels¨okningsverktyg ska fels¨okningsprocessen automatiseras och p˚a s˚a s¨att effek- tivisera det manuella s¨okandet.
1.1 Problemformulering
Rapporten granskar hur man kan automatisera fels¨okningsprocesser i PDMLinks loggfiler. Ett fels¨okningsverktyg ska utvecklas f¨or att centralisera och extrahera information som ¨ar intressant i ett fels¨oknings¨arende. Informationen ska vara enkelt presenterad f¨or anv¨andaren f¨or att effektivisera det manuella arbetet i produktionsmilj¨on.
1.2 Avgr¨ansning
Den metod som beskrivs i rapporten avser endast en prototyp. Det finns inget krav p˚a att implementera l¨osningen i praktiken. All utveckling sker i en separat testmilj¨o, parallellt med den befintliga produktionen. Dock utf¨ors samtliga tester baserat p˚a verkliga scenarion.
1.3 Syfte och m˚al
Syftet ¨ar att underl¨atta supportarbete av fels¨oknings¨arenden i PDMLinks logg- filer. Denna automatiserade s¨okningsprocess ska ers¨atta det nuvarande manuella arbetet. Supportavdelningen ska f˚a en tydlig ¨oversikt ¨over hur systemet m˚ar vid en specifikt tidpunkt, t.ex. felfrekvens etc.
D˚a PDMLink inte ¨ar en egenutveckling fr˚an Volvo IT utan kommer fr˚an en ex- ternleverant¨or beh¨over Volvo IT ¨oppna support¨arenden mot leverant¨oren. Det ligger d¨arf¨or b˚ade i Volvo IT och leverant¨orens intresse att f˚a tydliga referenser
1Volvo Information Technology ¨ar ett globalt f¨oretag och ing˚ar i Volvokoncernen, i denna rapport f¨orkortat som “Volvo IT”
2CAD ¨ar en f¨orkortning av Computer-aided design, digital framst¨allning av ritningar inom konstruktion samt arkitektur. [10]
3PDMLink ¨ar ett versionshanteringssystem f¨or CAD-modeller, se avsnitt 2.2
4“datamining” ¨ar ett begrepp inom datavetenskapen, se avsnitt 2.1
8
till det uppkomna felet.
M˚alet ¨ar att ta fram ett nytt fels¨okningsverktyg. Fels¨okningsverktyget ska m¨ojligg¨ora s¨okning samt indexering baserad p˚a datum, loggdatatyp etc. Loggdata som kan t¨ankas inneh˚alla felet ska presenteras p˚a ett enkelt och hanterbart s¨att f¨or per- sonen som genomf¨or fels¨okningen.
1.4 Omv¨arldsanalys
Volvo IT s¨oker idag manuellt i PDMLinks loggfiler efter fel. En typisk s¨okning kan g˚a till p˚a f¨oljande s¨att:
− Supporten f˚ar in ett ¨arende fr˚an kund om vad som kan t¨ankas vara fel. I b¨asta fall f˚ar man ett felmeddelande men mer vanligt ¨ar en beskrivning om vad som gjordes precis innan felet uppstod.
− Med informationen man har f˚att f¨ors¨oker man ˚aterskapa felet alternativt leta direkt i loggfilerna efter det ursprungliga felet. Vanligt f¨orekommande hj¨alpmedel ¨ar kommandoradsverktygen5“grep” och “tail” f¨or UNIX.
− Om man lyckas lokalisera felet, och beroende typ av fel, v¨aljer man att
˚atg¨arda felet internt alternativt skickar vidare det till leverant¨oren.
D˚a informationen ofta ¨ar kort fr˚an kunden som upplevde felet lyckas man inte alltid hitta eller ˚aterskapa felet.
1.4.1 Anv¨andarstudie
Baserat p˚a en anv¨andarstudie6, framkommer det att supporten upplever fels¨okningsarbetet sv˚arhanterligt och alltf¨or manuellt. Studien unders¨oker ¨overgripande supportav-
delningens dagliga fels¨okningsrutiner samt f¨orslag p˚a f¨orb¨attring.
Det ¨ar en resurskr¨avande process som tar mycket tid och ¨ar komplicerad att utf¨ora.
2 Bakgrund
Rapporten r¨or till stor del informationsutvinning d¨ar fokus ligger p˚a fels¨okning.
Detta till¨ampas ¨overgripande i hela l¨osningen. Data som i det h¨ar fallet ska be- handlas ¨ar loggfiler genererade av ett versionshanteringssystem f¨or CAD-modeller, PDMLink.
5“grep” utf¨or texts¨okningar i en eller flera filer och “tail” skriver ut de sista raderna i en fil [11] [13]
6Se “Bilaga 1: Anv¨andarstudie”, sida 23.
2.1 Datamining
“Datamining” ¨ar ett begrepp inom datavetenskapen som beskriver metoder att leta, hitta och extrahera data efter ett visst f¨ordefinierat m¨onster.[7]
2.1.1 Regulj¨aruttryck
Regulj¨aruttryck beskriver ett m¨onster som i detta fall anv¨ands vid extrahering av loggdata. Om en given str¨ang st¨ammer ¨overens med m¨onstret ¨ar det en kor- rekt matchning.
Det finns programvaror och webbtj¨anster som kan hj¨alpa till att konstruera regulj¨aruttryck.
Hj¨alpmedel som anv¨andes 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¨aruttryck som anv¨ands 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 ¨ar en form av versionshanteringssystem f¨or CAD- konstruktionspro- grammet PRO Engineer. PDMLink hanterar ¨aven lagring av CAD-modeller som konstrueras i PRO Engineer. Varje enskild installation av PDMLink ¨ar tillika ett enskilt versionshanteringssystem med sitt egna lagringsutrymme och databas.[4]
PDMLink best˚ar av tre delar:
− Webbserver som tar hand om gr¨anssnittspresentationen
− Filvalv d¨ar 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 av den lokala PDMLink installationen.
10
Den loggdata som genereras fr˚an PDMLink sker per installation och hamnar i underkataloger p˚a den nod som h˚aller installationen, i dagsl¨aget ¨ar detta fyra noder. Som tidigare n¨amnts kan loggdata se olika ut trotts att den kommer fr˚an ett och samma system, PDMLink. Detta beror p˚a att PDMLink k¨or flera olika processer parallellt.
3 Metod
Det manuella fels¨okningsarbetet ska ers¨attas av ett fels¨okningsverktyg som au- tomatiserar processen. Detta verktyg, kallat Log Search, ska utvecklas som en separat applikation, skild fr˚an den nuvarande produktionsmilj¨on. Log Search ska best˚a av tv˚a delar, anv¨andargr¨anssnitt och serverapplikation.
Anv¨andargr¨anssnittet kommer att hantera presentationen av data, i vilken sup- portavdelningen g¨or s¨okningar f¨or lokalisering av fel.
Serverapplikationen ska centralisera samt extrahera loggdata fr˚an PDMLinks samtliga loggfiler. En gemensam databas kommer skapas i syftet att fr¨amst lag- ra extraherad loggdata men ocks˚a s˚adant som tillh¨or anv¨andargr¨anssnittet, t.ex.
s¨okningshistorik, systemstatus etc.
3.1 Krav
I stora organisationer, som Volvo IT, ¨ar det viktigt att framtidss¨akra nyut- veckling av programvaror. Vid val av likv¨al programmeringsspr˚ak som databas m˚aste det finnas intern erfarenhet inom organisationen f¨or att st¨odja support samt vidareutveckling.
Volvo IT har tagit fram s¨arskilda best¨ammelser och krav f¨or vad som g¨aller vid nyutveckling.
3.1.1 Java
Log Search kommer att implementeras i Java f¨or att g¨ora systemet generiskt
¨over flera olika operativsystem men ocks˚a f¨or att uppfylla Volvo IT:s krav p˚a nyutveckling.
Det finns stora f¨ordelar med Java genom att det finns tydlig dokumentation samt stort st¨od f¨or API:er som kan underl¨atta och effektivisera programmerandet.[6, 3]
Volvo IT har l˚ang erfarenhet av Javautveckling och det kommer d¨arf¨or finnas goda resurser att underh˚alla systemet i framtiden. Ett t¨ankbart alternativ till Java f¨or implementeringen av servern var Python. Detta var dock aldrig aktuellt d˚a framtida support av systemet inte kunde s¨akras.
3.1.2 Oracle databas
Systemet Log Search ska anv¨anda sig av en Oracledatabas f¨or lagring av data.
Detta enligt Volvo IT:s krav p˚a nyutveckling. [8, 5]
3.2 Apache Tomcat
Apache Tomcat ¨ar en serverapplikation fr˚an Sun Microsystems, numera ¨agt av Oracle, som m¨ojligg¨or k¨orning av program implementerade i Java via HTTP som en s˚a kallad “web service”. Efter att ha startat sitt Javaprogram i Apache Tomcat kan detta n˚as via webbl¨asaren, lokalt eller ¨over n¨atverk. Genom att implementera klientdelen av Log Search som en “web service” m¨ojligg¨or detta snabb och effektiv ˚atkomst f¨or Volvo IT:s supportavdelningen. [9]
3.3 Vaadin
Vaadin tidigare IT Mill Toolkit ¨ar ett gr¨anssnittsramverk f¨or Java som m¨ojligg¨or k¨orning av “web service” p˚a Apache Tomcat. Ramverket erbjuder ett stort bib- liotek av grafiska komponenter och kan likst¨allas med Swing och dess MVC7 struktur. Det g˚ar snabbt att s¨atta sig in i hur ramverket fungerar med den do- kumentation som Vaadin tillhandah˚aller p˚a sin hemsida, inklusive exempel och guider.
Vaadin ¨ar ett utm¨arkt s¨att att snabbt och enkelt skapa gr¨anssnittsprototyper.
F¨or att l¨agga mer tid och fokus p˚a serverapplikationen kommer klientdelen av Log Search anv¨anda sig av Vaadin. Vid en demonstration av Log Search kan anv¨andaren skapa sig en uppfattning om hur systemet ¨ar t¨ankt att se ut, sam- tidigt som Vaadin ¨ar l¨att att ers¨atta med Volvo IT:s eget ramverk JVS vid framtida implementering i produktionsmilj¨on. [1, 2]
Alternativ till Vaadin ¨ar 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¨alp av Log Search. Samtlig testdata tas fr˚an den befintliga produktionsmilj¨on. Genom manuella j¨amf¨orelser mellan Log Search databasen och ursprungsfilerna kontrol- leras om extraheringen har utf¨orts korrekt.
Eftersom det genereras 2 GB loggdata per timme, m˚aste Log Search hinna hantera minst 1 GB loggdata under 30 minuter f¨or att inte riskera alltf¨or stora f¨ordr¨ojningar.
7MVC ¨ar en f¨orkortning av Model-View-Controller, en designstruktur som anv¨ands vid mjukvaruutveckling. [12]
12
3.4.2 Anv¨andartest
En demonstration av anv¨andargr¨anssnittet f¨or de t¨ankta anv¨andarna kommer utv¨ardera systemets anv¨andarv¨anlighet och om systemet ¨ar till¨ampbart i ett verkligt scenario.
4 Resultat
4.1 Design
Nedan f¨oljer ett fl¨odesschema som beskriver Log Search samt en skiss ¨over anv¨andargr¨anssnittet. Fl¨odesschemat g˚ar stegvis igenom hur loggfiler proces- sar, fr˚an att en ny loggfil uppt¨acks av systemet till dess data ¨ar extraherad och lagra i databasen.
4.1.1 Systemfl¨ode
ORACLE DB
EXTRACTED_DATA
LOGFILES Unresolved
Watcher
Log file Log file
Log file Log file
Consume supervisor
Consumer Watch
Archive
Watcher says hello!
Processing logfile...
Client
1. 3.
4.
5.
6.
6.
3.
2.
7.
Figur 1: Beskrivning av systemfl¨odet, fr˚an uppt¨ackandet av en ny loggfil till lagring av dess loggdata i databasen.
1. Loggfiler genererade av PDMLink exporteras till en gemensam mappstruk- tur som bevakas av Log Search.
3. “Consume supervisor” ber antingen “Watcher” skicka vidare filen f¨or 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¨att.
4. “Consume supervisor” startar en extraheringsprocess av loggdata och v¨antar p˚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¨andargr¨anssnitt
+
- + Log Search Web Client
Search :
10 10 From : To:
keyworkd Field :
Show all Saved search File Edit Tools Help
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
agdsgsdgsdgnnvdn kdsnlnsdlnkv sdngl afsafsag dskjfnd
123
54 kabsfs
File: dngkjsdngkjnsd ID: dosingdsong Ref.: odsngjnsdgjnSd Checksum: 90327598732u
Figur 2: Skiss ¨over anv¨andargr¨anssnittet, s¨okning och presentation av loggdatan.
Anv¨andargr¨anssnittet best˚ar av en enkel listvy som presenterar samtlig loggda- ta fr˚an databasen. Till h¨oger ˚aterfinns en s¨okpanel med tillh¨orande s¨okhistorik,
14
manuellt sparad av anv¨andaren. Vid markering av en rad i listvyn visas detal- jerad information (k¨alla, k¨allans plats p˚a disk, ¨ovriga referenser m.m.) f¨or den markerade raden l¨angst ner i v¨anstra h¨ornet.
4.1.3 Databas ER-diagram
ER-diagram “Entity-Relationships”-diagram ¨ar en generell metod som anv¨ands vid databasdesign. ER-diagram kan ¨overs¨attas till en relationsmodell som re- presenteras direkt¨oversatt i databasen. [8, 5]
Log files has
ID
Source file
Extracted data File size
Parent
Last line
Checksum
Row number
Date
Type
Log info (Stack trace)
Exec code
Figur 3: Databasen representerad av ett ER-diagram.
Relationsmodell Log files
ID Source file Parent Last line Checksum File size
1 V081259version listener.log C:\WatchDir 313 a554d... 495693 2 BackgroundMethodServ... C:\WatchDir 206 dff44... 21378
Extracted data
File ID Row number Date Type Exec code Log info
1 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¨or Log Search.
16
4.2 Implementation
4.2.1 Klient
Figur 4: Sk¨armdump av webbklienten.
Log Search Web Client ¨ar gr¨anssnittet som anv¨andaren m¨oter vid s¨okningen bland f¨ardiganalyserad loggdata p˚a servern. Klienten k¨ors som en “web service”
p˚a Apache Tomcat. Det kr¨avs ingen installation och man kan n˚a klienten fr˚an en webbl¨asare.
terat fr˚an databasen. Uppdateringen av data fr˚an databasen sker kontinuerligt i bakgrunden, vilket anv¨andaren allts˚a inte beh¨over bry sig om.
Log Search Web Client presenterar samtliga extraherade data fr˚an analyserade loggfiler samt referenser till dessa fysiskt p˚a disk.
Klienten har ett hj¨alpavsnitt som f¨orklarar dess funktioner samt ger exem- pel p˚a giltiga s¨okningar. Log Search Web Client kan n˚as fr˚an ett flertal olika webbl¨asare.
Anv¨andarprofil
Eftersom Log Search endast presenterar redan befintlig loggdata p˚a nytt och i ett mer anv¨andarv¨anligt gr¨anssnitt b¨or anv¨andaren ha tidigare erfarenheter av PDMLink. Log Search ¨ar allts˚a t¨ankt att agera hj¨alpverktyg f¨or de anv¨andare som redan genomf¨or s˚adan fels¨okning som Log Search avser, med andra ord fels¨okning i PDMLink.
4.2.2 Server
Serverapplikation Log Search Helper ¨ar skriven som en terminalapplikation som anv¨ander sig av Oracle JDBC biblioteket f¨or koppling mot databasen.
Log Search Helper som representerar serverdelen av Log Search ansvarar f¨or analysering och extrahering av loggdata. Log Search Helper bevakar kontinuer- ligt en f¨ordefinierad s¨okv¨ag p˚a disk efter nya eller ¨andrade loggfiler. Vid ny eller
¨andrad loggfil triggas en “supervisor” som i sin tur analyserar och extraherar relevant data till databasen.
Om filen redan finns i databasen letar “supervisorn” efter ¨andringar och skriver endast ej redan befintlig data till databasen.
Log Search Helper kan extrahera samt analysera data fr˚an PDMLinks logg- filer. Anv¨andaren kan utf¨ora s¨okningar, spara s¨okningar samt exportera valfritt antal loggfiler som ett Zip-arkiv. Log Search Helper saknar funktionalitet att utf¨ora rensning i databasen vilket tas upp som ett f¨orslag p˚a vidareutveckling i slutet av denna rapport.
Beskrivning av loggdata
Befintliga loggfiler har anv¨ants f¨or att observera vilken typ av loggdata som Log Search ska extrahera, det vill s¨aga vilka loggdata som ¨ar relevanta i ett fels¨oknings¨arende.
Nedan f¨oljer exempel p˚a tv˚a olika loggfiler som har observerats. Man kan se att bland annat datumformatet skiljer sig beroende p˚a vilken process i PDMLink som har genererat loggfilen. Notera ¨aven att positionen av loggmeddelandets typ 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¨andes under testet f¨or att ¨overvaka hur Log Search hanterade minnet samt skrivning till databasen.
Systemet lyckades analysera och extrahera data fr˚an loggfiler st¨orre ¨an 1 GB under 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 tidigare n¨amnt (se Figur 1.), i en “Unresolved”-mappstruktur f¨or manuell hantering.
Anledning till att en del loggdata inte f˚angas av systemet beror p˚a antalet fall av regulj¨aruttryck som f¨ordefinieras. Allt eftersom man skapar f¨orst˚aelse f¨or nya fall kan dessa l¨aggas till i en s¨arskild “parser”-Javaklass.
4.4 Optimering
Systemet utg¨or en plattform att bygga vidare fr˚an. Det finns delar i systemet som beh¨over optimeras eftersom viss loggdata, enligt de test som har utf¨orts, sorteras bort och aldrig extraheras till databasen, med andra ord indexerar inte system samtliga fel i loggarna. ¨Aven de regulj¨aruttryck som anv¨ands vid m¨onstermatchning p˚a servern kan konstrueras om f¨or att ge b¨attre matchning mot loggfilerna.
5 Slutsats
Utvecklandet av Log Search ¨ar ett tydligt exempel p˚a hur man kan automatisera manuellt arbete och d¨armed underl¨atta f¨or t.ex. supportavdelning p˚a Volvo IT.
Jag har f˚att b¨attre kunskaper i Java och har skaffat mig nya erfarenheter i ut- veckling av “web service” - applikationer. Jag fick en bra inblick i hur det ¨ar att utveckla i en stor organisation. Man m˚aste t¨anka l˚angsiktigt och se till att det finns resurser som kan underh˚alla det man har utvecklat.
Log Search kommer implementeras i praktiken efter ytterligare tester och an- passningar mot Volvo IT.
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
Watcher says hello!
Processing logfile...
Client
Analyser Please analyze some new data!
Stop consuming 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¨odet, likt Figur 1. med f¨orslag p˚a vidareutveck- ling.
Log Search ¨ar ett komplett och fungerande fels¨okningsverktyg men det finns delar som kan vidareutvecklas, delvis n¨amnt i avsnitt 4.4, “Optimering”.
F¨orslag p˚a vidareutveckling av Log Search:
− Rensningsprocess som givet ett datumintervall ser till att databasen inte v¨axer sig f¨or stor.
− Ytterligare niv˚a i databasen, d¨ar man separerar extraherad r˚adata och analyserad data. R˚adata extraheras p˚a en mer generell niv˚a f¨or att in- te “missa” n˚agot fr˚an loggfilerna. Analyserad data genereras med j¨amna mellanrum, alternativt p˚a beg¨aran av anv¨andaren, och representerar d˚a en “f¨orfinad” databas.
− Log Search h˚aller reda p˚a redundans av loggdata. Vad redundans inneb¨ar i det h¨ar sammanhanget beror p˚a vad anv¨andaren definierar som redundans,
20
t.ex. loggdata med liknande “stack trace”, loggdata som exekverats fr˚an samma process runt ett givet klockslag, etc.
− Definiera fler “loggdatafall” i form av regulj¨aruttryck i “parser”-Javaklassen.
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 pdmlinkR ,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¨odermark Simon Westerberg. Data mining. Technical report, CS - Ume˚a University, 2006.
[8] Tore Risch Thomas Padron-McCarthy. Databasteknik. Studentlitteratur AB, 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¨ andarstudie
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.
Bilaga 2: Ordlista
Volvo IT, Volvo Information Technology ¨ar ett globalt f¨oretag och ing˚ar i Vol- vokoncernen.
CAD, f¨orkortning av Computer-aided design, digital framst¨allning av ritningar inom konstruktion samt arkitektur.
PDMLink, ett versionshanteringssystem f¨or CAD-modeller, se avsnitt 2.2.
MVC, f¨orkortning av Model-View-Controller, en designstruktur som anv¨ands vid mjukvaruutveckling.
Informationsutvinning (“datamining”), ett begrepp inom datavetenska- pen, se avsnitt 2.1.
24