Yunit 3 / 11

Pagsusuri ng Log at Pagsusuri sa Root Cause: Paghahanap ng Signal sa Ingay

Mga nadagdag:

  • Mabilis na makahanap ng signal sa ingay sa pamamagitan ng paggamit ng AI upang buod, pangkatin at mga tala ng timeline
  • Kakayahang paghiwalayin ang ugnayan at sanhi at ituring ang mga mungkahi sa ugat ng artificial intelligence bilang mga hypotheses na kailangang ma-verify
  • Kakayahang makarating sa tunay na dahilan sa pamamagitan ng pagpapatakbo ng '5 Bakit' na pamamaraan na may artipisyal na katalinuhan at pagsuporta sa bawat hakbang na may totoong ebidensya

Pagsusuri ng Log at Pagsusuri sa Root Cause: Paghahanap ng Signal sa Ingay gamit ang AI

Kapag nag-crash ang isang system, ang unang titingnan mo ay ang mga log. Ang log ay isang text stream na nagpapanatili ng time-stamped record ng "kung ano ang ginawa ko, kung ano ang nangyari, kung ano ang sinira" ng isang system o application. Ngunit ang isang modernong imprastraktura ay gumagawa ng milyun-milyong linya ng mga log kada oras; ito ay hindi isang dagat ng impormasyon, ngunit madalas na isang karagatan ng ingay. Ang pagtatasa ng log ay ang sining ng paghahanap ng mahalagang signal (error, abnormality, pattern) sa ingay na ito. Ang proseso ng pagsagot sa tanong na "ano ang tunay na dahilan" pagkatapos ng isang kaganapan ay tinatawag na root cause analysis (RCA - Root Cause Analysis). Dito, napakalakas ng AI sa pagbubuod ng libu-libong linya bawat segundo, pagkuha ng mga pattern, pagtatatag ng mga timeline at paglilista ng mga posibleng dahilan. Ngunit isang salita ng pag-iingat: AI ay bumubuo ng mga posibleng dahilan; Ikaw ang nagbe-verify sa system kung alin ang totoo at gumagawa ng desisyon.

Sa unit na ito matututunan mo kung paano kumpiyansa na magbubuod ng mga log gamit ang AI, kung paano magtatag ng timeline ng isang kaganapan, kung paano mag-iba sa pagitan ng ugnayan (magkasamang pagbabago) at sanhi (isang sanhi ng isa pa), at kung paano magpatakbo ng isang RCA na paraan tulad ng "5 Bakit" sa AI.

Bakit ang ugnayan ay hindi sanhi?

Ito ang pinaka kritikal na konsepto ng yunit na ito. Dahil lamang sa dalawang kaganapan ang nangyari sa parehong oras, ang isa ay hindi nagiging sanhi ng isa pa. Maaaring tumaas nang sabay ang CPU at trapiko ng network ng server; ngunit ang isa ay hindi resulta ng isa, pareho ay maaaring resulta ng isang pangatlong kaganapan (halimbawa, ang pagsisimula ng isang batch na trabaho). Kapag nakita ng AI na nagbabago ang mga sukatan nang magkasama, ini-hypothesize nito ang "marahil X ang sanhi ng Y." Ito ay isang panimulang punto, hindi isang konklusyon. Upang ma-verify ang sanhi, kailangan mong ihiwalay ang variable (mag-trigger ng X sa kapaligiran ng pagsubok at tingnan kung mangyayari ang Y) o patunayan ang mekanismo (ipakita ang mga teknikal na paraan kung saan ang X ay gumagawa ng Y).

Babala: Kunin ang pangungusap ng AI na "malamang na sanhi nito" bilang isang hypothesis, hindi isang paghahanap. Sa RCA, ang maling dahilan ay humahantong sa maling pagwawasto at pag-ulit ng kaganapan. Nahanap mo na ang unang suspek, hindi ang dahilan; Doon magsisimula ang trabaho.

Hakbang-hakbang: Pagsusuri ng log gamit ang AI

  1. Paliitin ang saklaw. Ibigay ang window ng kaganapan, hindi ang buong log: "nagsimula ang kaganapan sa 14:05, kritikal mula 14:00–14:20". Sabihin sa AI ang nauugnay na puwang ng oras at serbisyo.
  2. maskara. Ang mga log ay naglalaman ng panloob na IP, pangalan ng host, user at token. I-mask sila (10.x.x.x, host-A, user1, REDACTED) pagkatapos ay i-export.
  3. Humiling ng buod at pagpapangkat. "Igrupo ang log na ito ayon sa kalubhaan, bilangin ang mga umuulit na error, hanapin ang timestamp ng unang error." Hilingin ang istraktura, hindi ang hilaw na log.
  4. Mag-set up ng timeline. "Ayusin ang mga kaganapang ito sa pagkakasunud-sunod ng oras at ipakita kung ano ang sumusunod kung ano." Ang paghahanap ng unang domino ay ang landas patungo sa ugat.
  5. Humingi ng hypothesis, hindi ebidensya. "Ilista ang mga posibleng ugat sa pagkakasunud-sunod ng posibilidad at bigyan ako ng utos sa pag-verify upang tumakbo sa system para sa bawat isa." Hilingin ang diagnosis, hindi ang resulta.
  6. I-verify sa system. Subukan ang bawat hypothesis gamit ang read-only diagnostic commands (log grep, status query, metric). Tanggalin hanggang mayroon lamang isang kumpirmadong ugat na sanhi.

5 Bakit paraan

Ang klasiko at makapangyarihang tool ng RCA ay ang "5 Bakit": nagsisimula sa isang sintomas at nagtatanong ng "bakit?" limang beses. Sa pamamagitan ng pagtatanong, malalaman mo ang ugat na sanhi sa ilalim ng sintomas sa ibabaw. Halimbawa: "Nag-crash ang site. Bakit? Namatay ang application dahil naubusan ito ng memory. Bakit? Kinain ng query ang lahat ng memorya. Bakit? Hindi gumamit ng index ang query. Bakit? Ang index ay tinanggal sa huling release. Bakit? Hindi ito napansin sa pagsusuri ng pagbabago." Ang pangunahing dahilan ay hindi ang ibabaw na "nag-crash ang site" ngunit "mahinang proseso ng pagsusuri sa pagbabago." Magiging mabuting kasosyo ang AI sa pagbuo ng chain na ito — ngunit dapat mong i-back up ang bawat hakbang na "bakit" na may tunay na ebidensya, o maaaring makabuo ang AI ng isang makatotohanan ngunit maling chain.

tatlong mini case

Case 1 — 40,000 linya, 3 minuto. Sinimulan ng isang administrator ang manu-manong pag-scan ng 40,000 linya ng mga log ng aplikasyon sa isang magdamag na outage. Ibinigay niya ang may-katuturang 20-minutong bahagi ng naka-mask na log sa AI at humingi ng buod at pagpapangkat. Na-flag ng AI ang unang OutOfMemory bug sa 02:14, pagkatapos ng tumaas na mga timeout na bug. Natanggap ng engineer ang time sheet sa loob ng 3 minuto; nakumpirma ang orihinal na diagnosis sa sarili nitong metric panel.

Kaso 2 — Pagbabalik mula sa maling dahilan. Naisip ng isang team na tama ang unang hypothesis ng AI ("mga log ang nagpuno sa disk") at na-clear ang mga log. Ngunit naulit ang pangyayari kinabukasan. Sa ikalawang round, ipinatupad nila ang "5 Whys" nang may disiplina: ang tunay na dahilan ay ang isang error sa aplikasyon ay nagsusulat ng daan-daang core dumps bawat segundo. Ang unang hypothesis ay ugnayan; Iba ang totoong dahilan. Ang pagtanggap nang walang pag-verify ay nagbigay lamang ng isang araw na pagbawi.

Case 3 — Nakita ng Timeline ang salarin. Mayroong mga log ng dose-dosenang mga device sa panahon ng pasulput-sulpot na pagkawala ng network. Ibinigay ng inhinyero ang mga naka-mask na log sa AI at ginawa itong isang pinag-isang timeline. Ipinakita ng chart na ang bawat outage ay nagsimula nang eksaktong 30 segundo pagkatapos ng redundancy switch na mensahe ng pagsusuri sa kalusugan. Ang ugnayang ito ay isang malakas na bakas; Na-verify ng team ang error sa firmware ng susi sa device at pinalitan ito.

Apat na maaaring kopyahin na mga template

1) Buod ng log at pagpapangkat:

Nasa ibaba ang naka-mask na log para sa [serbisyo] mula 14:00-14:20. Sabihin sa akin: (1) pangkatin at bilangin ang mga linya ayon sa kalubhaan (ERROR/WARN/INFO), (2) ilista ang nangungunang 5 umuulit na pattern ng error, (3) hanapin ang timestamp ng unang ERROR. Huwag muling isulat ang raw log, magbigay lang ng structured na buod. Pagdaragdag ng isang ginawang linya. Log: [masked log]

2) Pag-set up ng timeline:

Inayos namin ang mga sumusunod na naka-mask na record ng kaganapan sa iisang timeline (timestamp + source + event). Ipakita kung ano ang sumusunod kung ano at markahan ang kaganapan na tila ang unang trigger. Tandaan na isa itong HYPOTHESIS at kailangang ma-verify ang causality. Mga pag-record: [mga naka-mask na pag-record]

3) 5 Dahilan RCA partner:

Ang iyong tungkulin: RCA facilitator. Sintomas: [sintomas].Gawin sa akin ang "5 Bakit": isang "bakit?" sa bawat hakbang. Magtanong, sasagutin ko ang ebidensya na mayroon ako, tanong mo sa susunod. Kung mahina ang ebidensya ko, balaan ako at sabihin sa akin kung anong data ang kailangan kong kolektahin. Huwag magdeklara ng ugat nang walang ebidensya.

4) Hypothesis + verification command:

Ilista ang mga posibleng ugat ng sintomas na ito [symptom] ayon sa posibilidad. Para sa bawat dahilan: (a) ano ang pinaghihinalaan mo, (b) bigyan ako ng READ-ONLY na utos sa pag-verify upang tumakbo sa aking system (walang tanggalin/baguhin). Ipaliwanag kung aling resulta ang nagpapatunay o nagpapabulaan sa hypothesis.

Mahinang prompt / Malakas na prompt

Mahinang prompt:

Ano ang mali sa log na ito? [10,000 linya ng raw log]

Ang prompt na ito ay parehong naglalabas ng sensitibong data na walang maskara at iniiwan ang AI nang walang konteksto. Maaaring madapa ang AI sa isang random na linya at magbigay ng mababaw o gawa-gawang dahilan.

Napakahusay na prompt:

Ang iyong tungkulin: senior SRE. Kaganapan: nagbigay ng 50% error ang serbisyo sa pagbabayad sa pagitan ng 02:10-02:25. Nasa ibaba ang nakamaskara na log ng window na iyon. Ibigay sa akin (1) ang buod na nakapangkat ayon sa kalubhaan, (2) ang timestamp ng unang error, (3) ang mga posibleng ugat na sanhi sa pagkakasunud-sunod ng posibilidad, at isang read-only na utos sa pag-verify para sa bawat isa. Markahan ang causality claims bilang hypotheses. Log: [masked log]

hakbang

Layunin

Papel ng AI

tungkulin ng tao

Buod/pagpapangkat

bawasan ang ingay

Pag-configure ng libu-libong mga hilera

Tukuyin ang saklaw at maskara

timeline

Paghahanap ng unang domino

pag-uuri ng mga kaganapan

Patunayan ang mga selyo

pagbuo ng hypothesis

pag-aayos ng mga suspek

ilista ang mga posibilidad

i-filter ayon sa konteksto

pagpapatunay

hanapin ang totoong dahilan

Magmungkahi ng diagnostic command

Patakbuhin ang utos at ikomento ito

desisyon

Pagpili upang ayusin

mga pagpipilian sa alok

Gumawa ng desisyon at kumpirmahin

Mga karaniwang pagkakamali

  • Nagkakamali sa ugnayan para sa sanhi. Ang pagtanggap ng dalawang sukatan na sabay na nagbabago bilang "isang sanhi ng isa pa" ay nagbubunga ng maling pagwawasto.
  • Pagdidikit ng hilaw na log nang walang maskara. Ang pagbibigay ng log na naglalaman ng IP, token at user sa isang bukas na tool ay isang paglabag sa seguridad.
  • Ang pagdedeklara ng unang hypothesis bilang ugat na sanhi. Ang pagtanggap sa unang mungkahi ng AI nang hindi ito bini-verify ay isang imbitasyon para sa pag-ulit ng kaganapan.
  • Ini-export ang buong log. Ang malaking log na walang konteksto ay nag-plug sa AI sa isang random na linya; I-collapse sa window ng kaganapan.
  • 5 Dahilan na Walang Ebidensya. Kung hindi mo i-back up ang bawat hakbang na "bakit" gamit ang totoong data, mapupunta ka sa isang kapani-paniwala ngunit gawa-gawang chain.
Tip: Bago tapusin ang isang RCA, tanungin ang "kung talagang naayos na ang ugat na ito, hindi na ba ito mauulit?" Itanong ang tanong. Kung ang sagot ay "siguro," hindi mo pa nakukuha ang ugat; Magtanong ng isa pang "bakit".

Sa buod

Ang pagtatasa ng log ay tungkol sa paghahanap ng signal sa karagatan ng ingay; Binubuod at binubuo ng AI ang karagatang ito sa loob ng ilang segundo, nagtatatag ng timeline at bumubuo ng mga hypotheses. Ngunit ang ugnayan ay hindi sanhi: ang dahilan na iminungkahi ng AI ay isang paunang hinala, hindi isang paghahanap hanggang sa makumpirma. I-collapse ang log sa window ng kaganapan, i-mask ito, humingi ng istraktura, humukay nang malalim gamit ang "5 Whys" at subukan ang bawat hypothesis sa system gamit ang mga read-only na command. Ikaw ang nakakahanap ng ugat at kinukumpirma ang pag-aayos; AI ang iyong kasama.

Gawain ng aplikasyon

Kunin ang mga log ng isang nakaraang kaganapan (o isang pagsubok na kaganapan), i-collapse ito sa window ng kaganapan, at i-mask ang anumang mga sensitibong lugar. Humiling ng buod at iskedyul mula sa AI na may mga template na "Buod ng log" at "Timeline" sa itaas. Pagkatapos ay lumipat mula sa sintomas patungo sa ugat na sanhi gamit ang template na "5 Reasons RCA partner"; Sumulat ng sarili mong ebidensya para sa bawat hakbang. Panghuli, subukan ang paunang hypothesis ng AI gamit ang isang verification command at itala kung ito ay nakumpirma o hindi napatunayan. Ibuod ang proseso sa 6 na aytem.

checklist

  • [ ] Nai-collapse ko ba ang log sa window ng kaganapan at na-maskara ang mga sensitibong lugar?
  • [ ] Humingi ba ako sa AI ng isang structured na buod at timeline, hindi isang raw log?
  • [ ] Minarkahan ko ba ang mga claim ng causality ng AI bilang mga hypotheses?
  • [ ] Nasubukan ko na ba ang bawat hypothesis sa system gamit ang isang read-only verification command?
  • [ ] Na-back up ko ba ang bawat hakbang ng "5 Bakit" na may totoong ebidensya?
  • [ ] Nagtanong ba ako at nagpasya kung ang ugat ay talagang mapipigilan ang kaganapan?