Jednostka 7 / 12

Analiza logów i obserwowalność

Zyski:

  • Możliwość podsumowywania dużych zrzutów dziennika poprzez maskowanie i filtrowanie ich do AI oraz tworzenie osi czasu
  • Umiejętność oceny relacji czasowych ustalonych przez sztuczną inteligencję jako hipotez, a nie przyczynowości
  • Umiejętność zweryfikowania hipotezy o pierwotnej przyczynie za pomocą wskaźników i kodu oraz przygotowania szkicu pośmiertnego

Gdy oprogramowanie działa w środowisku produkcyjnym (w środowisku aktywnym), jedynie ślady, metryki i dzienniki (wiersze dziennika ze znacznikami czasu tworzone przez aplikację podczas jej działania) informują o tym, co robi. Wyciągnięcie znaczącego sygnału z tysięcy, a czasem milionów linii dziennika podczas awarii jest najbardziej stresującym i krytycznym pod względem czasowym momentem reakcji na incydent. Tutaj sztuczna inteligencja może być pomocna, podsumowując ogromny tekst, wydobywając wzorce i generując hipotezy – pod warunkiem, że respektujesz ograniczenia prywatności i weryfikacji.

W tej części uczymy się wykorzystywać sztuczną inteligencję w kontekście obserwowalności – umiejętności zrozumienia wewnętrznego stanu systemu poprzez przyjrzenie się jego zewnętrznym wynikom: wydobywanie znaczenia z szumu dziennika, ustalanie harmonogramu wystąpienia błędu, znajdowanie powtarzających się wzorców i sporządzanie sekcji zwłok. Krytyczne ostrzeżenie z góry: surowe dzienniki produkcyjne często zawierają dane osobowe i tajemnice; przypadkowe umieszczenie ich w narzędziu AI stanowi poważne naruszenie.

Dlaczego dzienniki są trudne, dlaczego sztuczna inteligencja jest pomocna?

Dzienniki są trudne z trzech powodów: objętości (jest ich zbyt wiele), hałasu (wiele linii jest nieistotnych) i bałaganu (zdarzenie jest rozproszone w dziennikach różnych usług). Ludzkie oko męczy się w tym stosie i pomija ważną linię.

Sztuczna inteligencja jest dobra w podsumowywaniu dużych bloków tekstu, liczeniu powtarzających się wzorców i zadawaniu pytań „co się zmieniło tuż przed tą serią błędów?” Jest potężny w ustalaniu relacji czasowych, takich jak Istnieją jednak dwa ograniczenia. Pierwsze to okno kontekstowe: ilość dzienników, które można zmieścić w modelu, jest ograniczona, dlatego należy najpierw przefiltrować i pobrać próbkę. Po drugie, walidacja: stwierdzenie sztucznej inteligencji „tutaj jest pierwotna przyczyna” jest hipotezą; Nie podejmuj decyzji bez potwierdzenia jej metrykami i kodem.

Uwaga: Surowe dzienniki produkcyjne mogą zawierać adres IP, adres e-mail, token, identyfikator sesji, a czasami tajne informacje. Zamaskuj je przed przekazaniem ich sztucznej inteligencji lub korzystaj wyłącznie z narzędzi zatwierdzonych przez przedsiębiorstwo i zapewniających bezpieczeństwo danych. Pogłębiamy ten temat w części 10.

Krok po kroku: od dziennika do przyczyny źródłowej

  1. Zawęź okno czasowe. Określ minuty rozpoczęcia wydarzenia; Sprawdzaj to okno, a nie cały dzień.
  2. Odfiltruj hałas. Wyeliminuj znane, powtarzające się, nieszkodliwe linie; Skoncentruj się na błędzie (ERROR), ostrzeżeniu (WARN) i pierwszym momencie odchylenia.
  3. Maskuj wrażliwe dane. Oczyść dane osobowe i tajemnice przed przekazaniem ich AI.
  4. Utwórz podsumowanie i oś czasu. Poproś sztuczną inteligencję o podsumowanie wydarzenia w chronologii („najpierw to, potem tamto”).
  5. Zweryfikuj hipotezę za pomocą metryk i kodu. Powód wskazany przez AI; Potwierdź za pomocą pulpitu nawigacyjnego, odpowiedniego kodu i harmonogramu wdrożenia, jeśli ma to zastosowanie.
  6. Zapisz zdobytą wiedzę na piśmie. Zrób szkic pośmiertny i wypisz działania zapobiegawcze.

Trzy mini etui

Przypadek 1 — 40 000 linii podsumowanych w 5 minut. Usługa płatnicza zgłosiła sporadyczny błąd trwający 12 minut. Zespół przekazał AI odpowiednie 20-minutowe okno zamaskowanych dzienników (około 40 000 pobranych linii) do sztucznej inteligencji i wygenerował oś czasu. Model pokazał, że wybuch błędu zbiegł się z momentem, w którym czas odpowiedzi usługi zależności wzrósł z 200 ms do 8 sekund. Zespół potwierdził to na desce rozdzielczej i w ciągu 10 minut zawęził przyczynę.

Przypadek 2 – Wprowadzająca w błąd korelacja. W innym incydencie sztuczna inteligencja obwiniła to, twierdząc, że błędy wystąpiły „w tym samym czasie” podczas uruchamiania cron (zaplanowanego zadania). Kiedy zespół sprawdził wskaźniki, stwierdził, że cron faktycznie zakończył działanie przed wydarzeniem; Korelacja była zbiegiem okoliczności. Prawdziwą przyczyną był wyciek pamięci. Lekcja: Korelacja czasowa ustalona przez sztuczną inteligencję jest wskazówką, a nie dowodem.

Przypadek 3 – Przyspieszona sekcja zwłok. Po awarii zespół przesłał (zamaskowany) transkrypcję wiadomości i oś czasu z kanału zdarzeń do sztucznej inteligencji i zlecił jej sporządzenie szkicu pośmiertnego: podsumowanie, wpływ, oś czasu, pierwotna przyczyna, działania. Redaktor ludzki poprawił fakty i wyznaczył właścicieli akcji. Dokument, który zwykle zajmuje 2 godziny, został ukończony w około 40 minut przy bardziej spójnej strukturze.

Cztery szablony do kopiowania

Podsumowanie dziennika i oś czasu (z zamaskowanym dziennikiem):

Poniżej znajduje się okno zdarzeń zamaskowanego dziennika produkcji.1) Przedstaw zdarzenie na chronologicznej osi czasu (zaznacz moment pierwszego odchylenia).2) Policz i pogrupuj najczęściej powtarzające się typy błędów/ostrzeżeń.3) „Co zmieniło się tuż przedtem?” Lista wydarzeń kandydujących do pytania. To są hipotezy; Oznacz jako „należy zweryfikować”. {{logi}}

Wyodrębnianie wzorców błędów:

Znajdź powtarzające się wzorce błędów w tych wierszach dziennika. Dla każdego wzoru: linia próbna (zamaskowana), szacunkowe źródło i możliwe znaczenie. Zbieraj rzadkie, ale krytyczne pojedyncze błędy na osobnej liście „uwagi”.{{logs}}

Ustrukturyzowane generowanie zapytań/filtrów:

Dla {{log Tool: grep/jq/Kibana KQL/CloudWatch Insights}} napisz zapytanie spełniające następujący warunek: {{np. 5xx błędów w ciągu ostatnich 15 minut, z wyłączeniem użytkownika X}}. Wyjaśnij zapytanie; Upewnij się, że nie wymyślasz nazw domen, zapytaj, jeśli nie jesteś pewien.

Szkic pośmiertny:

Napisz szkic pośmiertny na podstawie następującej (zamaskowanej) osi czasu zdarzenia: Podsumowanie / Wpływ (czas trwania, wpływ na użytkownika) / Oś czasu / Główna przyczyna / Co poszło dobrze / Działania (pozostaw pole właściciela puste dla każdego). NIE używaj oskarżycielskiego języka; Bądź rzeczowy i proaktywny.{{timeline}}

Słaba zachęta/silna zachęta

Słaby: „Spójrz na te logi, co jest nie tak?” (Surowy dziennik całego dnia, z danymi osobowymi, nieukierunkowany.)
Strong: „Poniżej znajduje się zamaskowany dziennik produkcji z godzin 14:02–14:20 (przefiltrowany do 5xxs). W tym oknie znajdź moment rozpoczęcia serii błędów, policz najczęstszy typ błędu i wypisz odchylenia, które pojawiły się w ciągu 60 sekund bezpośrednio przed eksplozją; oznacz je wszystkie jako „hipotezę do sprawdzenia”.

Potężna wersja; Zawęża okno czasowe, filtruje i maskuje log, zadaje jasne pytanie i od początku ustala, że ​​wynik jest hipotezą.

Zadanie

Sztuczna inteligencja jest silna

Limit / weryfikacja

Duże podsumowanie dziennika

Tak, szybko

Może wystąpić utrata próbki

Ustalenie relacji czasowej

generuje podpowiedzi

Korelacja ≠ przyczynowość

Generowanie zapytań/filtrów

dobry projekt

Czy nazwy domen są prawdziwe?

Szkic pośmiertny

Struktura i język

Przypadki są potwierdzone u ludzi

Korelacja nie jest przyczyną

Najczęstszą pułapką w analizie logów jest błąd „stało się to w tym samym czasie, więc dlatego”. Sztuczna inteligencja wpada w tę pułapkę równie łatwo, jeśli nie łatwiej, niż ludzie; ponieważ uważa, że ​​jednoczesność w tekście jest silnym sygnałem. Aby móc powiedzieć, że jedno wydarzenie faktycznie prowadzi do drugiego; wymagane są czas, mechanizm i, jeśli to możliwe, powtarzalność. W przypadku każdego twierdzenia o przyczynowości postawionego przez sztuczną inteligencję zadajemy pytanie: „Jakie inne dowody to potwierdzają?” Przetestuj to za pomocą pytania.

Wskazówka: logując się do AI, zamiast zrzutu tekstu, jeśli to możliwe, wydrukuj najpierw zapytanie/filtr i uruchom go w swoim pojeździe; W ten sposób redukujesz wrażliwe dane i dzielisz okno kontekstowe modelu na naprawdę ważne wiersze.

Typowe błędy

  • Wklejam surowy, niezamaskowany dziennik. Ujawnienie danych osobowych i tajemnic; poważne naruszenie prywatności.
  • Oddanie całego dnia na raz. Wykracza poza okno kontekstowe, sygnał tonie w szumie.
  • Mylenie korelacji z przyczynowością. Relacja czasowa ustalona przez sztuczną inteligencję jest wskazówką, a nie dowodem.
  • Poleganie na zapytaniu z wymyśloną nazwą domeny. Model może sugerować nazwę pola dziennika, która nie istnieje; sprawdź na schemacie.
  • Publikacja sekcji zwłok bez jej weryfikacji. Fakty i liczby dotyczące wpływu muszą zostać potwierdzone przez ludzi.

Podsumowując

Sztuczna inteligencja to potężne narzędzie pozwalające pokonać głośność i szum w analizie logów: podsumowując duże transkrypcje, ustalając ramy czasowe, wyodrębniając wzorce i przygotowując szkice pośmiertne. Pamiętaj jednak o trzech ograniczeniach: nie eksportuj wrażliwych danych bez ich maskowania, filtruj i próbkuj je, aby dopasować je do okna kontekstu, oraz sprawdzaj każde twierdzenie o związku przyczynowym za pomocą metryk i kodu. Korelacja nie jest przyczynowością; Sztuczna inteligencja daje wskazówki, decyzję podejmujesz na podstawie dowodów.

Zadanie aplikacji

Wybierz 15–20-minutowe okno z posiadanego dziennika zdarzeń lub środowiska testowego. Najpierw zamaskuj dane osobowe i tajemnice (lub utwórz syntetyczny dziennik). Następnie wyodrębnij chronologię i najczęstsze typy błędów z AI za pomocą szablonu „podsumowanie dziennika i oś czasu”. Spróbuj zweryfikować hipotezę dotyczącą pierwotnej przyczyny wysuniętą przez sztuczną inteligencję za pomocą posiadanego wskaźnika lub fragmentu kodu: czy hipoteza się potwierdziła, czy też była to myląca korelacja? Zapisz swoje odkrycie w jednym zdaniu.

lista kontrolna

  • [ ] Maskuję dane osobowe i tajemnice przed przekazaniem logu AI.
  • [ ] Ograniczam analizę do wąskiego okna czasowego i filtruję.
  • [ ] Powiązania czasowe ustalone przez sztuczną inteligencję postrzegam jako hipotezy, a nie przyczynowość.
  • [ ] Weryfikuję roszczenie dotyczące pierwotnej przyczyny za pomocą metryk i kodu.
  • [ ] Potwierdzam, że nazwy domen generowanych przeze mnie zapytań/filtrów są prawdziwe.
  • [ ] Po ludzku potwierdzam fakty i liczby zawarte w szkicu pośmiertnym.