Övervakningen sa att allt var grönt. Nätet var långsamt ändå.
Det är den situationen som avslöjar vad klassisk övervakning faktiskt gör. Den svarar på en enda fråga — är den uppe? — och den svarar bra på den. Problemet är att när något känns fel har man nästan aldrig den frågan.
Frågorna man faktiskt har
Skriv ner vad du undrar nästa gång en användare säger att ”internet är segt”. Min lista såg ut så här:
- Är länken långsam — och sedan när?
- Vem äter bandbredden just nu?
- Har någon ändrat i konfigurationen sedan i förra veckan?
- Hur mycket får jag faktiskt igenom mellan platserna om jag mäter i stället för att hoppas?
- Är det här normalt för en tisdag, eller är det avvikande?
Inte en enda av dem besvaras av en grön prick. Så jag byggde ett verktyg per fråga.
Ett verktyg per fråga
”Är den långsam, och sedan när?” — SmokePing mäter latens, jitter och paketförlust kontinuerligt mot varje länk och varje VPN-tunnel, och ritar det som ett band snarare än en linje. Man ser inte bara medelvärdet utan spridningen, och spridningen är det som gör ett samtal hackigt medan grafen ser fin ut.
”Vem äter bandbredden?” — Akvorado tar emot flödesdata från routrarna och kan svara på vilka adresser, portar och protokoll som stod för trafiken. Skillnaden mot en bandbreddsgraf är avgörande: grafen säger att länken var full, flödena säger vem som fyllde den. Utan det andra svaret blir felsökningen gissningar.
”Har någon ändrat något?” — Oxidized hämtar konfigurationen från varje nätverksenhet, oavsett tillverkare, och sparar den i versionshantering. Ändras något postas en diff i chatten. Inte en notis om att något ändrats — de faktiska raderna.
”Hur mycket får jag igenom?” — schemalagda genomströmningsmätningar mellan platserna, med larm när resultatet försämras jämfört med tidigare mätningar.
”Är det normalt?” — tidsserier med larmregler, och ovanpå det en liten agent som väger samman händelser från de andra verktygen och skriver en sammanfattning i chatten. Faller modellen bort skickas rådata i stället — sammanfattningen får aldrig vara det enda som når fram.
Den mätning som hade sparat ett dygn
Genomströmningsmätningen förtjänar en egen anmärkning, för den bygger på ett verkligt misslyckande.
Jag har tidigare skrivit om ett kluster som hängde sig, där jag uteslöt fem mjukvaruorsaker innan jag upptäckte att en länk förhandlat fram en tiondel av förväntad hastighet på grund av en kabel med två fungerande trådpar.
En schemalagd mätning som körts varje natt hade visat det på första försöket. Inte som en teori att utreda — som en siffra som var tio gånger för låg. Det är hela poängen med att mäta genomströmning i stället för att bara kontrollera att något svarar: en länk som fungerar dåligt fungerar, och rapporterar därför inget fel.
Konfigurationsdrift är den tysta sorten
Av allt i högen är konfigurationsdiffen det jag skulle installera först om jag bara fick välja ett.
Ingen ändrar något. Alla är överens om att ingen ändrar något. Ändå ser konfigurationen annorlunda ut än förra månaden — en tillfällig regel som blev permanent, ett fält någon justerade under en incident, en inställning som en firmwareuppdatering skrev om åt en.
Ingen av de ändringarna larmar. Alla dyker upp senare, i skepnad av ett problem som verkar omöjligt. En daglig diff gör dem synliga medan man fortfarande minns vad man gjorde i tisdags, vilket är den enda tidpunkt då de går att förstå.
Vad det kostar
Nio verktyg blev sjutton containrar på en maskin med rejält tilltaget minne. Det är, om man ska vara ärlig, absurt mycket maskineri för ett hemmanät.
Två saker gör det försvarbart. Det ena är att det är ett labb som speglar det jag möter hos kunder — verktyg man aldrig kört själv är verktyg man inte kan rekommendera. Det andra är att varje del svarar på en fråga de andra inte kan svara på; det finns ingen överlappning som hade gått att rationalisera bort.
Men kostnaden ska sägas rakt ut: sjutton containrar är sjutton saker som kan gå sönder, och insamling är inte gratis. Varje verktyg kräver att enheterna samarbetar — flödesexport ska slås på, avfrågningsuppgifter ska in per enhet, mätservrar ska stå på plats. Den delen är fortfarande manuell hos mig, och den är den verkliga tröskeln. Att starta containrarna tog en kväll. Att få nätverksutrustningen att berätta något tar längre tid än så.
Fällorna vid driftsättningen
Tre som är värda att spara.
Portkrock med något man glömt. Ett av verktygen ville ha en port som redan användes av ett gammalt experiment på samma maskin. Trivialt att flytta, men en påminnelse om att en maskin som samlat på sig tjänster i flera år har en portkarta ingen har i huvudet.
Svenska tecken. Konfigurationsinsamlaren kraschade på åäö tills teckenkodningen sattes explicit i containern. Standardvärdet i en slimmad basavbild är sällan UTF-8, och den som skriver verktyget har sällan en enhet med svenska kommentarer i konfigurationen.
Minimala basavbilder som saknar det andra förutsätter. Databasens hälsokontroll misslyckades eftersom den avskalade varianten hade en nedbantad version av ett verktyg som saknade den flagga kontrollen använde. Bytet till den fylligare avbilden löste det. ”Mindre avbild” är inte gratis — det är en avvägning som ibland faller ut åt fel håll.
Så vet du att det funkar
Provocera fram en försämring. Begränsa en länk medvetet och se om något larmar. Övervakning som aldrig utlöst ett larm har inte bevisat någonting.
Ändra en rad i en konfiguration och kontrollera att diffen dyker upp där du väntar dig. Gärna en fredagseftermiddag, så att du vet att den fungerar den dag det inte var du som ändrade.
Ställ en fråga du inte kunde besvara förut. ”Vilken adress stod för mest trafik i går kväll?” Får du ett svar på tio sekunder var bygget värt det. Får du inte det saknas en bit i insamlingen — och då är det den biten som är arbetet, inte fler verktyg.
Vad jag tar med mig
Övervakning och observerbarhet är inte samma sak, och skillnaden är inte akademisk. Övervakning svarar på frågor du bestämt i förväg. Observerbarhet låter dig ställa frågor du inte tänkt på ännu — och det är alltid de frågorna man har klockan elva på kvällen.
Och den obekväma insikten, som gäller lika mycket här som i allt annat jag byggt det här året: det roliga var att sätta upp verktygen, och det tog en kväll. Det som ger värdet är att få enheterna att berätta, och att sedan faktiskt titta. Ingen av de delarna går att installera.