Kärntruppen bakom Kambis byte till öppen mjukvara för logghanteringen. Mindre licenstrassel och mer anpassningsmöjligheter var de viktigaste skälen till skiftet. Lezgin Bakircioglu, Kris Saw och Matteo Ridolfi.
Kambi har hundratals servrar utspridda över hela världen, och måste ständigt ha örnkoll på vad som händer i deras it-miljö. Eftersom företaget levererar speltjänster har de mängder av krav på sig, åtminstone fem länders tillsynsmyndigheter ställer villkor för hur serverdriften ska skötas.
Spårbarheten är A och O för att få tillhandahålla sådana här tjänster. Det är alltså enormt viktigt för Kambi att logga allt som händer – inloggningar, varenda klick kunderna gör i webbläsarna, uppdateringar i databaserna och mycket mer. För att få överblick över den här enorma mängden information, ja för att alls kunna dra nytta av den, använder Kambi loggningsservern Logstash, databasen Elasticsearch och sökverktyget Kibana – alla tre är öppen mjukvara.
Vill analysera svarstider
Loggningssystemet som Kambi har byggt upp samlar information från alla Linuxservrar, alltså operativsystemets vanliga syslog, loggar från brandväggar, webcache-servrar, Apache, backupsystem och framför allt Kambis egenutvecklade applikationer som körs på Javaplattformen. Det viktigaste syftet för Kambi är att analysera svarstider, så att teknikerna kan upptäcka eventuella prestandaproblem.
Det är inte lite information som loggas – hela 100 gigabyte per dygn! Siffran ökar dessutom stadigt i takt med att fler datakällor kopplas mot Logstash. Därför tvingades Kambi att skrota sin gamla loggserver, trots att de i stort sett var nöjda med den kommersiella produkten Splunk.
– Informationen för att spåra prestanda var så omfattande att vi aldrig fick in den i Splunk, berättar it-driftchefen Kris Saw.
– Kostnaden för Splunk-licenser beror nämligen på hur mycket information som man vill ha sökbar. Efter att först ha haft licens för 20 gigabyte, och sedan ha uppgraderat till 30, överskred Kambi ändå ibland licensen när applikationer krånglade och systemen loggade extremt mycket, särskilt om det inträffade på helger.
Splunks mjukvara svarade då med att låsa ute användarna. Det gick att begära en upplåsningskod från leverantören, men efter några sådana vändor med upplåsta licensnycklar ansåg Splunk att Kambi behövde uppgradera licensen till 50 gigabyte. Kostnaden skulle bli brutalt hög, och Kambi ansåg att det inte gick att motivera den sett till fördelarna.
– I medeltal var vi ändå långt under 30 gigabyte, det var bara enstaka toppar som överskred licensen på grund av buggar, berättar Kris Saw.
I stället arrangerade Kambi ett internt ”hackathon” i höstas, där utvecklare och tekniker samlades för att testa nya idéer. De hade redan tittat på Logstash och Elasticsearch som ett alternativ, och nu utvecklades en konfiguration så att Kambi kunde låta loggarna samlas in och sparas lokalt i varje datacenter men ändå söka igenom dem som en helhet.
(Klicka för större bild)
På varje server finns Logstash-agenter, av Kambi kallade shippers. De läser av lokala loggfiler och sänder uppdateringarna till indexservern.
1. Köhanteraren Redis fungerar som en buffert om Logstash inte skulle hinna med under en belastningstopp. 2. Logstash har filter som tar
bort skräp, räknar ut tidsskillnad eller slår samman flera rader som hör till samma händelse. 3. Logstash konverterar varje loggad händelse till json-format och sparar det som ett ”dokument” i Elasticsearchs databas Lucene. 4. Kibana gör sökningar i alla tre Lucene-databaserna och
sammanställer resultaten. 5. Kibana-användarna autentiseras i en Apache httpd-server innan de kan göra sökningar. 6. Logstash matar även en del av loggarna till övervakningssystemet Zabbix, som larmar om något gränsvärde överskrids. 7. Alla tre indexservrarna samt sökservern kör Linux och är virtuella maskiner på hypervisorn KVM.
Kambi kör servrar från Supermicro. Deras bladchassin är lite enklare än de från vissa konkurrenter, men priset är lägre och prestanda minst lika bra.
Kambi har också börjat använda disklagring från företaget 45 Drives, som arbetar med "öppen hårdvara" – precis som med öppen käll-kod är ritningarna tillgängliga för vem som helst.
Företaget bakom Elasticsearch deltar även i utvecklingen av Logstash och Kibana. De tre projekten kallas ibland för ”ELK-stacken”: www.elasticsearch.org/overview
Ett annat bra verktyg för att visualisera loggarna: grafana.org