واحد 3 / 11

تجزیه و تحلیل لاگ و تجزیه و تحلیل علت ریشه: یافتن سیگنال در نویز

سود:

  • با استفاده از هوش مصنوعی برای جمع‌بندی، گروه‌بندی و گزارش‌های جدول زمانی، به سرعت سیگنال را در نویز پیدا کنید
  • توانایی تفکیک همبستگی و علیت و درمان پیشنهادات علت ریشه ای هوش مصنوعی به عنوان فرضیه هایی که نیاز به تأیید دارند.
  • توانایی دستیابی به علت اصلی با استفاده از روش "5 چرا" با هوش مصنوعی و پشتیبانی از هر مرحله با شواهد واقعی

تجزیه و تحلیل لاگ و تجزیه و تحلیل علت ریشه: یافتن سیگنال در نویز با هوش مصنوعی

هنگامی که یک سیستم از کار می افتد، اولین جایی که شما به آن نگاه می کنید گزارش ها هستند. Log یک جریان متنی است که یک رکورد با مهر زمانی از "آنچه من انجام دادم، چه اتفاقی افتاد، چه چیزی خراب شد" یک سیستم یا برنامه را نگه می دارد. اما یک زیرساخت مدرن میلیون ها خط سیاهههای مربوط را در ساعت تولید می کند. این دریای اطلاعات نیست، بلکه اغلب اقیانوسی از سر و صدا است. تجزیه و تحلیل لاگ هنر یافتن سیگنال مهم (خطا، ناهنجاری، الگو) در این نویز است. فرآیند پاسخ دادن به این سوال که "علت واقعی چه بود" پس از یک رویداد، تحلیل علت ریشه ای (RCA - Root Cause Analysis) نامیده می شود. در اینجا، هوش مصنوعی در خلاصه کردن هزاران خط در ثانیه، استخراج الگوها، تعیین جدول زمانی و فهرست کردن علل احتمالی بسیار قدرتمند است. اما یک کلمه احتیاط: هوش مصنوعی علل احتمالی را ایجاد می کند. شما هستید که در سیستم بررسی می کنید که کدام یک واقعی است و تصمیم می گیرید.

در این بخش شما یاد خواهید گرفت که چگونه با اطمینان گزارش ها را با هوش مصنوعی خلاصه کنید، چگونه یک جدول زمانی یک رویداد ایجاد کنید، چگونه بین همبستگی (تغییر با هم) و علیت (یکی باعث دیگری می شود)، و چگونه یک روش RCA مانند "5 چرا" را با هوش مصنوعی اجرا کنید.

چرا همبستگی علیت نیست؟

این مهم ترین مفهوم این واحد است. فقط به این دلیل که دو رویداد همزمان رخ می دهند، یکی باعث دیگری نمی شود. CPU سرور و ترافیک شبکه ممکن است همزمان افزایش یابد. اما یکی نتیجه دیگری نیست، هر دو می توانند نتیجه یک رویداد سوم باشند (به عنوان مثال، شروع یک کار دسته ای). وقتی هوش مصنوعی معیارها را با هم تغییر می‌دهد، فرضیه‌ای را مطرح می‌کند که «احتمالاً X باعث Y شده است». این یک نقطه شروع است نه یک نتیجه. برای تأیید علیت، یا باید متغیر را جدا کنید (X را در محیط آزمایش فعال کنید و ببینید Y اتفاق می افتد یا خیر) یا مکانیسم را اثبات کنید (نمایش ابزار فنی که X توسط آن Y تولید می کند).

احتیاط: جمله هوش مصنوعی "این احتمالا باعث این شده است" را به عنوان یک فرضیه و نه یک یافته در نظر بگیرید. در RCA، علت ریشه ای نادرست منجر به اصلاح نادرست و عود رویداد می شود. شما مظنون اول را پیدا کرده اید، نه علت را. کار از آنجا شروع می شود.

گام به گام: تجزیه و تحلیل گزارش با هوش مصنوعی

  1. دامنه را محدود کنید. پنجره رویداد را ارائه دهید، نه کل گزارش را: "رویداد در ساعت 14:05 شروع شد، از ساعت 14:00 تا 14:20 حساس است". زمان و سرویس مربوطه را به هوش مصنوعی بگویید.
  2. ماسک. لاگ ها حاوی IP داخلی، نام میزبان، کاربر و رمز هستند. آنها را ماسک کنید (10.x.x.x، میزبان-A، user1، REDACTED) سپس صادر کنید.
  3. درخواست جمع بندی و گروه بندی. "این گزارش را بر اساس شدت گروه بندی کنید، خطاهای تکرار شونده را بشمارید، مهر زمانی اولین خطا را پیدا کنید." ساختار را بپرسید، نه لاگ خام.
  4. یک جدول زمانی تنظیم کنید. "این رویدادها را به ترتیب زمانی ترتیب دهید و آنچه را که در پی آن اتفاق می افتد نشان دهید." یافتن اولین دومینو راهی به سوی علت اصلی است.
  5. فرضیه بخواهید نه مدرک. «دلایل ریشه‌ای احتمالی را به ترتیب احتمال فهرست کنید و برای هر کدام یک فرمان تأیید به من بدهید تا در سیستم اجرا شود.» تشخیص را بخواهید نه نتیجه را.
  6. در سیستم تایید کنید. هر فرضیه را با دستورات تشخیصی فقط خواندنی (log grep، پرسش وضعیت، متریک) آزمایش کنید. تا زمانی که تنها یک علت ریشه ای تایید شده وجود داشته باشد حذف کنید.

5 روش چرا

ابزار کلاسیک و قدرتمند RCA "5 چرا" است: با یک علامت شروع کنید و بپرسید "چرا؟" پنج بار با پرسیدن، به علت اصلی در زیر علامت سطحی می رسید. به عنوان مثال: "سایت خراب شد. چرا؟ برنامه از بین رفت زیرا حافظه آن تمام شد. چرا؟ یک پرس و جو تمام حافظه را مصرف کرد. چرا؟ جستجو از یک نمایه استفاده نکرد. چرا؟ ایندکس در آخرین نسخه حذف شد. چرا؟ این مورد در بررسی تغییرات مورد توجه قرار نگرفت." علت اصلی سطح "سقوط سایت" نیست، بلکه "ضعیف فرآیند بررسی تغییرات" است. هوش مصنوعی شریک خوبی در ساختن این زنجیره خواهد بود – اما باید از هر مرحله «چرا» با شواهد واقعی پشتیبان تهیه کنید، در غیر این صورت ممکن است هوش مصنوعی یک زنجیره قابل قبول اما نادرست ارائه دهد.

سه کیف کوچک

مورد 1 - 40000 خط، 3 دقیقه. یک مدیر شروع به اسکن دستی 40000 خط گزارش برنامه در طول یک شبه قطعی کرده بود. او بخش 20 دقیقه ای مربوطه از گزارش نقاب دار را به هوش مصنوعی داد و خواستار جمع بندی و گروه بندی شد. هوش مصنوعی اولین باگ OutOfMemory را در ساعت 02:14، درست پس از افزایش باگ‌های زمان‌بندی، پرچم‌گذاری کرد. مهندس برگه زمان را در 3 دقیقه دریافت کرد. تشخیص اصلی را در پانل متریک خودش تایید کرد.

مورد 2 - بازگشت از علت اصلی اشتباه. گروهی فکر کردند که اولین فرضیه هوش مصنوعی ("لاگ ها دیسک را پر کردند") درست است و سیاهه ها را پاک کردند. اما این حادثه روز بعد تکرار شد. در دور دوم، آنها "5 چرا" را با نظم و انضباط اجرا کردند: دلیل واقعی این بود که یک خطای برنامه نوشتن صدها هسته dump در ثانیه بود. فرضیه اول همبستگی بود. دلیل واقعی چیز دیگری بود. پذیرش بدون تأیید فقط یک مهلت یک روزه فراهم کرده بود.

مورد 3 - جدول زمانی مقصر را پیدا کرد. گزارش ده ها دستگاه در طول یک قطع شبکه متناوب وجود داشت. مهندس گزارش‌های نقاب‌دار را به هوش مصنوعی داد و از آن خواست تا یک جدول زمانی یکپارچه ایجاد کند. نمودار نشان داد که هر خاموشی دقیقاً 30 ثانیه پس از پیام بررسی سلامت سوئیچ افزونگی شروع می شود. این همبستگی یک سرنخ قوی بود. تیم خطای سفت‌افزار کلید را در دستگاه تأیید کرد و آن را جایگزین کرد.

چهار قالب قابل کپی

1) خلاصه گزارش و گروه بندی:

در زیر گزارش ماسک شده برای [سرویس] از ساعت 14:00 تا 14:20 است. به من بگویید: (1) خطوط را بر اساس شدت گروه بندی و شمارش کنید (ERROR/WARN/INFO)، (2) لیست 5 الگوی خطای تکرار شونده برتر، (3) مهر زمانی اولین ERROR را پیدا کنید. گزارش خام را بازنویسی نکنید، فقط یک خلاصه ساختار یافته ارائه دهید. افزودن یک خط ساخته شده. Log: [log masked]

2) تنظیم جدول زمانی:

ما رکوردهای رویداد پوشانده شده زیر را در یک جدول زمانی (مهر زمان + منبع + رویداد) مرتب کردیم. آنچه را که به دنبال آن اتفاق می‌افتد نشان دهید و رویدادی را که به نظر می‌رسد اولین محرک است علامت بزنید. توجه داشته باشید که این یک فرضیه است و علیت باید تأیید شود. موارد ضبط شده: [ضبط های نقاب دار]

3) 5 دلیل شریک RCA:

نقش شما: تسهیل کننده RCA. علامت: [علامت]. "5 چرا" را با من انجام دهید: یک "چرا؟" در هر مرحله بپرس با مدرکی که دارم جواب میدم شما سوال بعدی رو بپرس. اگر شواهد من ضعیف است، به من هشدار دهید و به من بگویید چه داده هایی را باید جمع آوری کنم. بدون دلیل علت اصلی را اعلام نکنید.

4) فرضیه + دستور تأیید:

علل اصلی احتمالی این علامت [علامت] را به ترتیب احتمال فهرست کنید. به هر دلیل: (الف) به چه چیزی مشکوک هستید، (ب) به من یک دستور تأیید READ-ONLY بدهید تا روی سیستم من اجرا شود (بدون حذف/تغییر). توضیح دهید که کدام نتیجه فرضیه را تأیید یا رد می کند.

اعلان ضعیف / اعلان قوی

اعلان ضعیف:

این لاگ چه مشکلی دارد؟ [10000 خط چوب خام]

این امر باعث می‌شود که هم داده‌های حساس را بدون نقاب درز کند و هم هوش مصنوعی را بدون زمینه باقی می‌گذارد. هوش مصنوعی ممکن است به یک خط تصادفی برخورد کند و دلیلی سطحی یا حتی ساختگی ارائه دهد.

اعلان قدرتمند:

نقش شما: ارشد SRE. رویداد: سرویس پرداخت بین ساعت 02:10-02:25 50% خطا داد. در زیر گزارش ماسک شده آن پنجره است. (1) خلاصه گروه بندی شده بر اساس شدت، (2) مهر زمانی اولین خطا، (3) علل احتمالی احتمالی به ترتیب احتمال، و یک دستور تأیید صحت فقط خواندنی برای هر کدام را به من بدهید. ادعاهای علیت را به عنوان فرضیه علامت گذاری کنید. گزارش: [log masked]

گام

هدف

نقش هوش مصنوعی

نقش مرد

خلاصه / گروه بندی

کاهش نویز

پیکربندی هزاران ردیف

محدوده و ماسک را تعیین کنید

جدول زمانی

پیدا کردن اولین دومینو

مرتب سازی رویدادها

اعتبار سنجی تمبرها

ایجاد فرضیه

دسته بندی مظنونین

احتمالات را لیست کنید

فیلتر بر اساس زمینه

تایید

دلیل واقعی را پیدا کنید

دستور تشخیص را پیشنهاد کنید

دستور را اجرا کنید و نظر دهید

تصمیم گیری

انتخاب برای رفع

گزینه ها را ارائه دهید

تصمیم بگیرید و تایید کنید

اشتباهات رایج

  • اشتباه همبستگی برای علیت پذیرش دو معیار که با هم تغییر می کنند به عنوان "یکی باعث دیگری شد" تصحیح نادرست ایجاد می کند.
  • چسباندن چوب خام بدون ماسک. دادن گزارش حاوی IP، توکن و کاربر به ابزار باز یک نقض امنیتی است.
  • اعلام فرضیه اول به عنوان علت اصلی. پذیرش اولین پیشنهاد هوش مصنوعی بدون تأیید آن، دعوتی برای تکرار رویداد است.
  • صادرات کل گزارش گزارش عظیم بدون زمینه، هوش مصنوعی را به یک خط تصادفی متصل می کند. جمع کردن به پنجره رویداد.
  • 5 دلیل بدون مدرک اگر از هر مرحله «چرا» با داده های واقعی نسخه پشتیبان تهیه نکنید، در نهایت با یک زنجیره معقول اما ساختگی مواجه خواهید شد.
نکته: قبل از پایان دادن به RCA، بپرسید "اگر این علت اصلی واقعاً برطرف شود، آیا دوباره اتفاق نمی افتد؟" سوال را بپرسید. اگر پاسخ «شاید» است، هنوز به علت اصلی آن نرسیده‌اید. "چرا" دیگری را بپرسید.

به طور خلاصه

تجزیه و تحلیل گزارش در مورد یافتن سیگنال در اقیانوسی از نویز است. هوش مصنوعی این اقیانوس را در چند ثانیه خلاصه و ساختار می دهد، یک جدول زمانی ایجاد می کند و فرضیه هایی را ایجاد می کند. اما همبستگی علت نیست: علت پیشنهاد شده توسط هوش مصنوعی یک سوء ظن اولیه است، نه یک یافته تا زمانی که تایید شود. گزارش را در پنجره رویداد جمع کنید، آن را پنهان کنید، ساختار را بخواهید، با "5 چرا" عمیقاً حفاری کنید و هر فرضیه را در سیستم با دستورات فقط خواندنی آزمایش کنید. شما هستید که علت اصلی را پیدا می کنید و راه حل را تأیید می کنید. هوش مصنوعی همراه شماست.

وظیفه کاربردی

گزارش‌های یک رویداد گذشته (یا یک رویداد آزمایشی) را بگیرید، آن را در پنجره رویداد جمع کنید و هر قسمت حساس را بپوشانید. با الگوهای «خلاصه گزارش» و «خط زمان» در بالا، یک خلاصه و زمان‌بندی از هوش مصنوعی درخواست کنید. سپس با الگوی "5 Reasons RCA partner" از علامت به علت اصلی بروید. برای هر مرحله شواهد خود را بنویسید. در نهایت، فرضیه اولیه هوش مصنوعی را با یک دستور تایید آزمایش کنید و تایید یا رد آن را ثبت کنید. فرآیند را در 6 مورد خلاصه کنید.

چک لیست

  • [ ] آیا من گزارش را در پنجره رویداد جمع کرده ام و مناطق حساس را پوشانده ام؟
  • [ ] آیا من از هوش مصنوعی یک خلاصه ساختار یافته و جدول زمانی درخواست کردم، نه یک گزارش خام؟
  • [ ] آیا من ادعاهای علیت هوش مصنوعی را به عنوان فرضیه علامت گذاری کرده ام؟
  • [ ] آیا من هر فرضیه را در سیستم با یک فرمان تأیید صحت فقط خواندنی آزمایش کرده ام؟
  • [ ] آیا من از هر مرحله از "5 چرا" با شواهد واقعی پشتیبانی کرده ام؟
  • [ ] آیا من سؤال کردم و تصمیم گرفتم که آیا علت اصلی واقعاً از این رویداد جلوگیری می کند؟