Pelnas:
- Greitai suraskite signalą triukšme naudodami dirbtinį intelektą apibendrinimui, grupavimui ir laiko juostos žurnalams
- Gebėjimas atskirti koreliaciją ir priežastinį ryšį ir dirbtinio intelekto pagrindines priežastis traktuoti kaip hipotezes, kurias reikia patikrinti
- Galimybė pasiekti tikrąją priežastį naudojant „5 Kodėl“ metodą dirbtiniu intelektu ir kiekvieną žingsnį palaikant tikrais įrodymais
Log Analysis and Root Cause Analysis: Finding the Signal in Noise with AI
Kai sistema užstringa, pirmiausia žiūrite į žurnalus. Žurnalas yra teksto srautas, kuriame laiko žyma saugoma sistemos ar programos „ką padariau, kas atsitiko, kas sugedo“ įrašas. Tačiau moderni infrastruktūra per valandą pagamina milijonus rąstų eilučių; tai ne informacijos jūra, o dažnai triukšmo vandenynas. Žurnalo analizė yra menas rasti svarbų signalą (klaidą, nenormalumą, modelį) šiame triukšme. Atsakymo į klausimą „kas buvo tikroji priežastis“ po įvykio procesas vadinamas pagrindinės priežasties analize (RCA – Root Cause Analysis). Čia AI yra labai galingas apibendrindamas tūkstančius eilučių per sekundę, išskirdamas šablonus, nustatydamas laiko juostas ir išvardydamas galimas priežastis. Tačiau atsargumo žodis: AI sukuria galimas priežastis; Jūs esate tas, kuris sistemoje patikrina, kuris iš jų yra tikras, ir priima sprendimą.
Šiame skyriuje sužinosite, kaip užtikrintai apibendrinti žurnalus naudojant AI, kaip nustatyti įvykio laiko juostą, kaip atskirti koreliaciją (kartu keičiasi) nuo priežastinio ryšio (vienas sukelia kitą) ir kaip paleisti RCA metodą, pvz., „5 Kodėl“ su AI.
Kodėl koreliacija nėra priežastinis ryšys?
Tai pati svarbiausia šio įrenginio koncepcija. Vien todėl, kad du įvykiai vyksta vienu metu, vienas nesukelia kito. Serverio procesoriaus ir tinklo srautas gali padidėti tuo pačiu metu; bet vienas nėra kito rezultatas, abu gali būti trečiojo įvykio (pavyzdžiui, paketinio darbo pradžios) rezultatas. Kai dirbtinis intelektas mato, kad metrikos keičiasi kartu, jis kelia hipotezę „tikriausiai X sukėlė Y“. Tai yra išeities taškas, o ne išvada. Norėdami patikrinti priežastinį ryšį, turite atskirti kintamąjį (bandymo aplinkoje suaktyvinkite X ir pažiūrėkite, ar įvyksta Y) arba įrodyti mechanizmą (parodyti technines priemones, kuriomis X sukuria Y).
Atsargiai: AI sakinį „tai tikriausiai tai sukėlė“ laikykite hipoteze, o ne atradimu. Esant RCA, neteisinga pagrindinė priežastis sukelia neteisingą korekciją ir įvykio pasikartojimą. Jūs radote pirmąjį įtariamąjį, o ne priežastį; Darbas prasideda ten.
Žingsnis po žingsnio: žurnalo analizė naudojant AI
- Susiaurinkite taikymo sritį. Pateikite įvykio langą, o ne visą žurnalą: „įvykis prasidėjo 14:05, kritinis nuo 14:00 iki 14:20“. Pasakykite AI atitinkamą laiko tarpą ir paslaugą.
- Kaukė. Žurnaluose yra vidinis IP, pagrindinio kompiuterio pavadinimas, vartotojas ir prieigos raktas. Užmaskuokite juos (10.x.x.x, host-A, user1, REDACTED), tada eksportuokite.
- Užklausos santrauka ir grupavimas. "Grupuokite šį žurnalą pagal sunkumą, suskaičiuokite pasikartojančias klaidas, suraskite pirmosios klaidos laiko žymą." Klauskite struktūros, o ne neapdoroto žurnalo.
- Nustatykite laiko juostą. „Sutvarkykite šiuos įvykius laiko tvarka ir parodykite, kas po to“. Pirmojo domino radimas yra kelias į pagrindinę priežastį.
- Prašykite hipotezės, o ne įrodymų. „Išvardykite galimas pagrindines priežastis pagal tikimybę ir suteikite man patvirtinimo komandą, kad kiekviena sistema būtų paleista. Klauskite diagnozės, o ne rezultato.
- Patikrinkite sistemoje. Patikrinkite kiekvieną hipotezę tik skaitomomis diagnostinėmis komandomis (log grep, būsenos užklausa, metrika). Pašalinkite, kol bus patvirtinta tik viena pagrindinė priežastis.
5 Kodėl metodas
Klasikinis ir galingas RCA įrankis yra „5 Kodėl“: pradedant vienu simptomu ir klausiant „kodėl? penkis kartus. Klausdami, jūs gaunate pagrindinę priežastį, esančią po paviršiaus simptomu. Pavyzdys: "Svetainė sudužo. Kodėl? Programa mirė, nes baigėsi atmintis. Kodėl? Užklausa sunaudojo visą atmintį. Kodėl? Užklausa nenaudojo indekso. Kodėl? Indeksas buvo ištrintas paskutiniame leidime. Kodėl? Tai nepastebėta pakeitimų apžvalgoje." Pagrindinė priežastis yra ne paviršinis „svetainė sudužo“, o „silpnas pakeitimų peržiūros procesas“. AI būtų geras partneris kuriant šią grandinę, tačiau kiekvieną „kodėl“ žingsnį turite pagrįsti tikrais įrodymais, nes kitaip AI gali pateikti tikėtiną, bet klaidingą grandinę.
trys mini dėklai
1 atvejis – 40 000 eilučių, 3 minutės. Administratorius pradėjo rankiniu būdu nuskaityti 40 000 programų žurnalų eilučių per nakties gedimą. Jis atidavė AI atitinkamą 20 minučių užmaskuoto žurnalo dalį ir paprašė apibendrinti bei sugrupuoti. AI pažymėjo pirmąją „OutOfMemory“ klaidą 02:14, iškart po padidėjusių skirtojo laiko klaidų. Inžinierius darbo laiko apskaitos žiniaraštį gavo per 3 minutes; patvirtino pradinę diagnozę savo metrinėje skydelyje.
2 atvejis – grįžimas dėl netinkamos pagrindinės priežasties. Komanda manė, kad pirmoji AI hipotezė („logai užpildė diską“) buvo teisinga, ir išvalė žurnalus. Tačiau įvykis pasikartojo kitą dieną. Antrajame ture jie disciplinuotai įgyvendino „5 Kodėl“: tikroji priežastis buvo ta, kad programos klaida buvo įrašyti šimtus pagrindinių sąvartynų per sekundę. Pirmoji hipotezė buvo koreliacija; Tikroji priežastis buvo kitokia. Priėmimas be patikrinimo suteikė tik vienos dienos atidėjimą.
3 atvejis – laiko juosta surado kaltininką. Per pertrūkį tinklo nutrūkimo metu buvo įrašyti dešimčių įrenginių žurnalai. Inžinierius atidavė užmaskuotus žurnalus AI ir pareikalavo sukurti vieningą laiko juostą. Diagrama parodė, kad kiekvienas gedimas prasidėjo lygiai 30 sekundžių po atleidimo jungiklio būklės patikrinimo pranešimo. Ši koreliacija buvo stiprus raktas; Komanda patikrino rakto programinės įrangos klaidą įrenginyje ir ją pakeitė.
Keturi kopijuojami šablonai
1) Žurnalo suvestinė ir grupavimas:
Below is the masked log for [service] from 14:00-14:20. Pasakykite man: (1) sugrupuokite ir suskaičiuokite eilutes pagal sunkumą (KLAIDA / ĮSPĖJIMAS / INFORMACIJA), (2) išvardykite 5 populiariausius pasikartojančius klaidų modelius, (3) suraskite pirmosios KLAIDOS laiko žymą. Don't rewrite the raw log, just give a structured summary. Sudarytos linijos pridėjimas.Žurnalas: [užmaskuotas žurnalas]
2) Laiko juostos nustatymas:
We arranged the following masked event records into a single timeline (timestamp + source + event). Show what follows what and mark the event that seems to be the first trigger. Note that this is a HYPOTHESIS and causality needs to be verified. Įrašai: [užmaskuoti įrašai]
3) 5 priežastys, kodėl RCA partneris:
Jūsų vaidmuo: RCA fasilitatorius. Symptom: [symptom].Do the “5 Whys” with me: a “why?” kiekviename žingsnyje. Ask, I will answer with the evidence I have, you ask the next question. If my evidence is weak, warn me and tell me what data I need to collect. Neskelbkite pagrindinės priežasties be įrodymų.
4) Hipotezė + patikrinimo komanda:
List possible root causes for this symptom [symptom] in order of probability. For each reason: (a) what do you suspect, (b) give me a READ-ONLY verification command to run on my system (no delete/change). Explain which outcome confirms or disproves the hypothesis.
Silpnas raginimas / Stiprus raginimas
Silpnas raginimas:
Kas negerai su šiuo žurnalu? [10 000 neapdoroto žurnalo eilučių]
This prompt both leaks sensitive data unmasked and leaves the AI without context. AI may stumble on a random line and give a superficial or even made-up reason.
Galingas raginimas:
Jūsų vaidmuo: vyresnysis SRE. Event: payment service gave 50% error between 02:10-02:25. Žemiau yra užmaskuotas to lango žurnalas. Pateikite man (1) santrauką, sugrupuotą pagal sunkumą, (2) pirmosios klaidos laiko žymą, (3) galimas pagrindines priežastis tikimybės tvarka ir tik skaitomą patvirtinimo komandą kiekvienai. Pažymėkite priežastingumo teiginius kaip hipotezes. Žurnalas: [užmaskuotas žurnalas]
žingsnis
Tikslas
AI vaidmuo
vyro vaidmuo
Santrauka/grupavimas
sumažinti triukšmą
Konfigūruojama tūkstančiai eilučių
Nustatykite taikymo sritį ir kaukę
laiko juosta
Pirmojo domino radimas
rūšiavimo renginius
Patvirtinti antspaudus
hipotezių generavimas
rūšiuojant įtariamuosius
išvardyti galimybes
filtruoti pagal kontekstą
patikrinimas
rasti tikrąją priežastį
Pasiūlykite diagnostikos komandą
Paleiskite komandą ir pakomentuokite
sprendimą
Pasirinkimas taisyti
pasiūlyti variantus
Priimkite sprendimą ir patvirtinkite
Dažnos klaidos
- Klaidinga koreliacija ir priežastinis ryšys. Priimant dvi metrikas, kurios kartu keičiasi kaip „viena sukėlė kitą“, gaunama klaidinga pataisa.
- Neapdoroto rąsto įklijavimas be kaukės. Žurnalo, kuriame yra IP, prieigos raktas ir vartotojas, suteikimas atviram įrankiui yra saugumo pažeidimas.
- Pirmosios hipotezės paskelbimas pagrindine priežastimi. Accepting the AI's first suggestion without verifying it is an invitation for a repeat of the event.
- Eksportuojamas visas žurnalas. Didžiulis žurnalas be konteksto įjungia AI į atsitiktinę eilutę; Sutraukti į įvykio langą.
- 5 priežastys be įrodymų. Jei kiekvieno „kodėl“ žingsnio atsarginės kopijos nepateiksite tikrais duomenimis, gausite tikėtiną, bet išgalvotą grandinę.
Tip: Before ending an RCA, ask "if this root cause is actually fixed, won't it happen again?" Užduokite klausimą. Jei atsakymas yra „galbūt“, jūs dar nepasiekėte pagrindinės priežasties; Paklauskite kito „kodėl“.
Apibendrinant
Žurnalo analizė yra apie signalo radimą triukšmo vandenyne; AI summarizes and structures this ocean in seconds, establishes a timeline and generates hypotheses. Tačiau koreliacija nėra priežastinis ryšys: AI pasiūlyta priežastis yra pradinis įtarimas, o ne radinys, kol nepatvirtinta. Sutraukite žurnalą į įvykio langą, užmaskuokite jį, paprašykite struktūros, įsigilinkite naudodami „5 Kodėl“ ir patikrinkite kiekvieną hipotezę sistemoje naudodami tik skaitymo komandas. Jūs esate tas, kuris suranda pagrindinę priežastį ir patvirtina taisymą; AI yra jūsų kompanionas.
Taikymo užduotis
Paimkite praeities įvykio (arba bandomojo įvykio) žurnalus, sutraukite juos į įvykio langą ir užmaskuokite visas jautrias sritis. Request a summary and schedule from AI with the “Log summary” and “Timeline” templates above. Tada pereikite nuo simptomo prie pagrindinės priežasties naudodami šabloną „5 priežastys RCA partneris“; Kiekvienam žingsniui parašykite savo įrodymus. Galiausiai patikrinkite pradinę AI hipotezę naudodami patikrinimo komandą ir užrašykite, ar ji patvirtinta, ar paneigta. Apibendrinkite procesą į 6 elementus.
kontrolinis sąrašas
- [ ] Ar sutraukiau žurnalą į įvykio langą ir užmaskavau jautrias sritis?
- [ ] Ar aš paprašiau AI struktūrinės santraukos ir laiko juostos, o ne neapdoroto žurnalo?
- [ ] Ar AI priežastinio ryšio teiginius pažymėjau kaip hipotezes?
- [ ] Ar aš išbandžiau kiekvieną hipotezę sistemoje naudodamas tik skaitomą patvirtinimo komandą?
- [ ] Ar kiekvieną „5 Kodėl“ žingsnį palaikiau tikrais įrodymais?
- [ ] Ar aš suabejojau ir priėmiau sprendimą, ar pagrindinė priežastis iš tikrųjų užkirs kelią įvykiui?