Vienība 3 / 11

Žurnāla analīze un pamatcēloņu analīze: signāla atrašana troksnī

Ieguvumi:

  • Ātri atrodiet signālu troksnī, izmantojot AI, lai apkopotu, grupētu un laika skalas žurnālus
  • Spēja nodalīt korelāciju un cēloņsakarību un uzskatīt mākslīgā intelekta pamatcēloņu ieteikumus kā hipotēzes, kuras ir jāpārbauda
  • Spēja tikt pie patiesā pamatcēloņa, izmantojot '5 Kāpēc' metodi ar mākslīgo intelektu un katru soli atbalstot ar reāliem pierādījumiem

Žurnālu analīze un pamatcēloņu analīze: signāla atrašana trokšņos, izmantojot AI

Kad sistēma avarē, pirmā vieta, kur skatāties, ir žurnāli. Žurnāls ir teksta straume, kurā tiek saglabāts laika zīmogs par sistēmas vai lietojumprogrammas "ko es izdarīju, kas notika, kas sabojājās". Taču moderna infrastruktūra stundā saražo miljoniem baļķu līniju; tā nav informācijas jūra, bet bieži vien trokšņu okeāns. Žurnāla analīze ir māksla atrast šajā troksnī svarīgo signālu (kļūdu, anomāliju, modeli). Procesu, kurā tiek atbildēts uz jautājumu "kas bija patiesais iemesls" pēc notikuma, sauc par pamatcēloņu analīzi (RCA — Root Cause Analysis). Šeit mākslīgais intelekts ir ļoti spēcīgs, apkopojot tūkstošiem līniju sekundē, izgūstot modeļus, nosakot laika grafikus un uzskaitot iespējamos cēloņus. Taču piesardzības vārds: AI rada iespējamos cēloņus; Jūs esat tas, kurš sistēmā pārbauda, ​​kurš no tiem ir īsts, un pieņem lēmumu.

Šajā nodaļā jūs uzzināsit, kā pārliecinoši apkopot žurnālus, izmantojot AI, kā izveidot notikuma laika grafiku, kā atšķirt korelāciju (kopā mainās) no cēloņsakarības (viena izraisa otru) un kā ar AI palaist RCA metodi, piemēram, “5 kāpēc”.

Kāpēc korelācija nav cēloņsakarība?

Šī ir šīs vienības vissvarīgākā koncepcija. Tikai tāpēc, ka divi notikumi notiek vienlaikus, viens neizraisa otru. Servera CPU un tīkla trafiks var palielināties vienlaicīgi; bet viens nav otra rezultāts, abi var būt trešā notikuma (piemēram, pakešdarba sākuma) rezultāts. Kad AI redz, ka metrika mainās kopā, tas izvirza hipotēzi: “iespējams, X izraisīja Y”. Tas ir sākumpunkts, nevis secinājums. Lai pārbaudītu cēloņsakarību, jums ir vai nu jāizolē mainīgais (testēšanas vidē aktivizējiet X un pārbaudiet, vai Y notiek) vai jāpierāda mehānisms (parāda tehniskos līdzekļus, ar kuriem X rada Y).

Uzmanību: AI teikumu “tas, iespējams, to izraisīja” uztveriet kā hipotēzi, nevis konstatējumu. RCA gadījumā nepareizs pamatcēlonis noved pie nepareizas korekcijas un notikuma atkārtošanās. Jūs esat atradis pirmo aizdomās turamo, nevis cēloni; Darbs sākas tur.

Soli pa solim: žurnāla analīze ar AI

  1. Sašauriniet darbības jomu. Norādiet notikuma logu, nevis visu žurnālu: "notikums sākās 14:05, kritisks no 14:00–14:20". Pastāstiet AI attiecīgo laika nišu un pakalpojumu.
  2. Maska. Žurnāli satur iekšējo IP, resursdatora nosaukumu, lietotāju un pilnvaru. Maskējiet tos (10.x.x.x, resursdators A, lietotājs1, REDACTED) un pēc tam eksportējiet.
  3. Pieprasīt kopsavilkumu un grupēšanu. "Grupējiet šo žurnālu pēc smaguma pakāpes, saskaitiet atkārtotās kļūdas, atrodiet pirmās kļūdas laikspiedolu." Lūdziet struktūru, nevis neapstrādātu žurnālu.
  4. Iestatiet laika skalu. "Sakārtojiet šos notikumus laika secībā un parādiet, kas pēc tam seko." Pirmā domino atrašana ir ceļš uz galveno cēloni.
  5. Lūdziet hipotēzi, nevis pierādījumus. "Uzskaitiet iespējamos pamatcēloņus iespējamības secībā un dodiet man verifikācijas komandu, lai katrai sistēmai palaistu." Lūdziet diagnozi, nevis rezultātu.
  6. Pārbaudiet sistēmā. Pārbaudiet katru hipotēzi ar tikai lasāmām diagnostikas komandām (log grep, statusa vaicājums, metrika). Likvidējiet, līdz ir tikai viens apstiprināts pamatcēlonis.

5 Kāpēc metode

RCA klasiskais un spēcīgais rīks ir "5 Kāpēc": sākot ar vienu simptomu un jautājot "kāpēc?" piecas reizes. Jautājot, jūs nonākat pie pamatcēloņa zem virsmas simptoma. Piemērs: "Vietne avarēja. Kāpēc? Lietojumprogramma nomira, jo tai pietrūka atmiņas. Kāpēc? Vaicājums patērēja visu atmiņu. Kāpēc? Vaicājumā netika izmantots indekss. Kāpēc? Indekss tika dzēsts pēdējā laidienā. Kāpēc? Tas netika pamanīts izmaiņu pārskatā." Galvenais iemesls ir nevis virsma "vietne avarēja", bet gan "vājš izmaiņu pārskatīšanas process". AI būtu labs partneris šīs ķēdes veidošanā, taču jums ir jāatbalsta katrs “kāpēc” solis ar reāliem pierādījumiem, pretējā gadījumā AI var nākt klajā ar ticamu, bet nepatiesu ķēdi.

trīs mini futrāļi

1. gadījums — 40 000 rindu, 3 minūtes. Administrators nakts pārtraukuma laikā bija sācis manuāli skenēt 40 000 lietojumprogrammu žurnālu rindas. Viņš iedeva attiecīgo 20 minūšu maskētā žurnāla daļu AI un lūdza kopsavilkumu un grupēšanu. AI atzīmēja pirmo OutOfMemory kļūdu plkst. 02:14, tieši pēc palielinātajām taimauta kļūdām. Inženieris laika uzskaiti saņēma 3 minūtēs; apstiprināja sākotnējo diagnozi savā metrikas panelī.

2. gadījums — atgriešanās no nepareiza pamatcēloņa. Komanda uzskatīja, ka AI pirmā hipotēze ("baļķi aizpildīja disku") ir pareiza, un notīrīja žurnālus. Bet incidents atkārtojās nākamajā dienā. Otrajā kārtā viņi disciplinēti īstenoja "5 Kāpēc": patiesais iemesls bija tas, ka lietojumprogrammas kļūda bija simtiem kodolu izgāztuvju ierakstīšana sekundē. Pirmā hipotēze bija korelācija; Patiesais iemesls bija cits. Pieņemšana bez pārbaudes nodrošināja tikai vienu dienu.

3. gadījums — laika skala atrada vainīgo. Neregulāra tīkla pārtraukuma laikā tika reģistrēti desmitiem ierīču žurnāli. Inženieris maskētos žurnālus nodeva AI un lika tam izveidot vienotu laika grafiku. Diagramma parādīja, ka katrs pārtraukums sākās tieši 30 sekundes pēc atlaišanas slēdža veselības pārbaudes ziņojuma. Šī korelācija bija spēcīgs pavediens; Komanda pārbaudīja atslēgas programmaparatūras kļūdu ierīcē un nomainīja to.

Četras kopējamas veidnes

1) Žurnāla kopsavilkums un grupēšana:

Zemāk ir maskēts žurnāls [pakalpojumam] no 14:00-14:20. Pastāstiet man: (1) sagrupējiet un saskaitiet rindas pēc smaguma pakāpes (KĻŪDA/BRĪDINĀJUMS/INFORMĀCIJA), (2) uzskaitiet 5 populārākos kļūdu modeļus, (3) atrodiet pirmās KĻŪDAS laikspiedolu. Nepārrakstiet neapstrādāto žurnālu, vienkārši sniedziet strukturētu kopsavilkumu. Tiek pievienota izveidota līnija. Žurnāls: [maskēts žurnāls]

2) Laika skalas iestatīšana:

Mēs sakārtojām tālāk norādītos maskētos notikumu ierakstus vienā laika skalā (laikspiedols + avots + notikums). Parādiet, kas tam seko, un atzīmējiet notikumu, kas šķiet pirmais izraisītājs. Ņemiet vērā, ka tā ir HIPOTĒZE un ir jāpārbauda cēloņsakarība. Ieraksti: [maskas ieraksti]

3) 5 iemesli, kāpēc RCA partneris:

Jūsu loma: RCA koordinators. Simptoms: [simptoms]. Vai "5 Kāpēc" ar mani: "kāpēc?" katrā solī. Jautājiet, es atbildēšu ar maniem pierādījumiem, jūs uzdodat nākamo jautājumu. Ja mani pierādījumi ir vāji, brīdiniet mani un pastāstiet, kādi dati man ir jāapkopo. Nepaziņojiet galveno cēloni bez pierādījumiem.

4) Hipotēze + pārbaudes komanda:

Uzskaitiet iespējamos šī simptoma cēloņus [simptoms] varbūtības secībā. Katra iemesla dēļ: (a) par ko jums ir aizdomas, (b) dodiet man TIKAI LASĪŠANAS verifikācijas komandu, lai tā darbotos manā sistēmā (nav dzēšanas/maiņu). Paskaidrojiet, kurš rezultāts apstiprina vai atspēko hipotēzi.

Vāja uzvedne / spēcīga uzvedne

Vāja uzvedne:

Kas vainas šim žurnālam? [10 000 rindu neapstrādāta žurnāla]

Šī uzvedne gan nopludina sensitīvus datus, gan atstāj AI bez konteksta. AI var paklupt uz nejaušas līnijas un norādīt virspusēju vai pat izdomātu iemeslu.

Spēcīga uzvedne:

Jūsu loma: vecākais SRE. Notikums: maksājumu pakalpojums sniedza 50% kļūdu laikā no 02:10-02:25. Zemāk ir šī loga maskētais žurnāls. Sniedziet man (1) kopsavilkumu, kas sagrupēts pēc smaguma pakāpes, (2) pirmās kļūdas laikspiedolu, (3) iespējamos pamatcēloņus varbūtības secībā un tikai lasāmu verifikācijas komandu katram. Atzīmējiet cēloņsakarības apgalvojumus kā hipotēzes. Žurnāls: [maskēts žurnāls]

solis

Mērķis

AI loma

vīrieša loma

Kopsavilkums/grupēšana

samazināt troksni

Tūkstošiem rindu konfigurēšana

Nosakiet darbības jomu un masku

laika skala

Pirmā domino atrašana

šķirošanas pasākumi

Apstiprināt zīmogus

hipotēžu ģenerēšana

aizdomās turamo personu šķirošana

uzskaitiet iespējas

filtrēt pēc konteksta

verifikācija

atrast īsto iemeslu

Ieteikt diagnostikas komandu

Palaidiet komandu un komentējiet to

lēmumu

Izvēloties labot

piedāvāt iespējas

Pieņemiet lēmumu un apstipriniet

Biežas kļūdas

  • Kļūdaina korelācija ar cēloņsakarību. Pieņemot divus rādītājus, kas mainās kopā kā “viens izraisa otru”, tiek iegūta nepatiesa korekcija.
  • Neapstrādāta baļķa ielīmēšana bez maskas. Žurnāla, kurā ir IP, marķieris un lietotājs, piešķiršana atvērtam rīkam ir drošības pārkāpums.
  • Pirmās hipotēzes pasludināšana par galveno cēloni. AI pirmā ieteikuma pieņemšana, to nepārbaudot, ir uzaicinājums atkārtot notikumu.
  • Visa žurnāla eksportēšana. Milzīgs žurnāls bez konteksta savieno AI nejaušā rindā; Sakļaut līdz notikuma logam.
  • 5 iemesli bez pierādījumiem. Ja nedublēsiet katru “kāpēc” soli ar reāliem datiem, jūs iegūsit ticamu, bet izdomātu ķēdi.
Padoms. Pirms RCA pārtraukšanas jautājiet: "ja šis galvenais iemesls tiešām ir novērsts, vai tas neatkārtosies?" Uzdodiet jautājumu. Ja atbilde ir "varbūt", jūs vēl neesat nonācis pie galvenā iemesla; Pajautājiet citam "kāpēc".

Rezumējot

Žurnāla analīze ir signāla atrašana trokšņu okeānā; AI apkopo un strukturē šo okeānu dažu sekunžu laikā, izveido laika grafiku un ģenerē hipotēzes. Bet korelācija nav cēloņsakarība: AI ierosinātais iemesls ir sākotnējās aizdomas, nevis konstatējums, kamēr tas nav apstiprināts. Sakļaujiet žurnālu notikuma logā, maskējiet to, jautājiet struktūrai, iedziļinieties ar “5 kāpēc” un pārbaudiet katru hipotēzi sistēmā ar tikai lasāmām komandām. Jūs esat tas, kurš atrod galveno cēloni un apstiprina labojumu; AI ir jūsu pavadonis.

Lietojumprogrammas uzdevums

Paņemiet pagātnes notikuma (vai testa notikuma) žurnālus, sakļaujiet to notikuma logā un maskējiet visas jutīgās zonas. Pieprasiet kopsavilkumu un grafiku no AI, izmantojot iepriekš redzamās veidnes “Žurnāla kopsavilkums” un “Laika skala”. Pēc tam pārejiet no simptoma uz galveno cēloni, izmantojot veidni “5 Reasons RCA partner”; Uzrakstiet savus pierādījumus katram solim. Visbeidzot, pārbaudiet AI sākotnējo hipotēzi ar pārbaudes komandu un pierakstiet, vai tā ir apstiprināta vai noraidīta. Apkopojiet procesu 6 vienībās.

kontrolsaraksts

  • [ ] Vai esmu sakļāvis žurnālu notikumu logā un maskējis jutīgās zonas?
  • [ ] Vai es prasīju AI strukturētu kopsavilkumu un laika grafiku, nevis neapstrādātu žurnālu?
  • [ ] Vai esmu atzīmējis AI apgalvojumus par cēloņsakarībām kā hipotēzes?
  • [ ] Vai esmu pārbaudījis katru hipotēzi sistēmā ar tikai lasāmu verifikācijas komandu?
  • [ ] Vai katru “5 kāpēc” soli esmu pamatojis ar reāliem pierādījumiem?
  • [ ] Vai es apšaubīju un pieņēmu lēmumu, vai galvenais iemesls patiešām novērsīs notikumu?