همبستگی رویدادها جایگزین نیاز به خواندن گزارشهای تکی میشود.
همبستگی شما را به ورودی صحیح لاگ هدایت میکند، اما مهندسان هنوز باید محتوای واقعی لاگ را بخوانند تا علت خرابی را درک کنند. این دو رویکرد مکمل یکدیگر هستند، نه اینکه یکی جایگزین دیگری شود.
همبستگی رویداد، لاگها و معیارها را در سیستمها به هم متصل میکند تا علل ریشهای را آشکار کند، در حالی که تجزیه و تحلیل لاگ جداگانه، هر منبع لاگ را جداگانه بررسی میکند. محیطهای ابری مدرن، همبستگی را برای حل سریعتر حادثه ترجیح میدهند، اگرچه تجزیه و تحلیل جداگانه هنوز در اشکالزدایی هدفمند نقش دارد.
تکنیکی که رویدادهای مرتبط را در منابع متعدد پیوند میدهد تا الگوها و علل ریشهای را شناسایی کند.
رویکرد سنتی بررسی لاگهای یک سیستم یا سرویس واحد بدون ارجاع متقابل به منابع دیگر.
| ویژگی | همبستگی رویداد | تحلیل لاگهای ایزوله |
|---|---|---|
| رویکرد اولیه | رویدادها را در چندین منبع پیوند میدهد | یک منبع لاگ را در یک زمان بررسی میکند |
| تشخیص علت ریشهای | سریع، اغلب خودکار | تحقیقات دستی و کند |
| مقیاسپذیری | سیستمهای توزیعشده را به خوبی مدیریت میکند | در مقیاس بزرگ غیرعملی میشود |
| پیچیدگی ابزار | به SIEM یا پلتفرم رصدپذیری نیاز دارد | ابزارهای اولیه CLI یا نمایشگرهای لاگ |
| الزامات مهارتی | آشنایی با قوانین و کوئریهای همبستگی | آشنایی با قالبهای گزارش و نحو جستجو |
| هزینه | به دلیل مجوز پلتفرم، بالاتر است | کم هزینه یا بدون هزینه |
| بهترین مورد استفاده | حوادث ابری چند سرویسه | اشکالزدایی تکبرنامهای |
| کنترل نویز | سیگنالها را فیلتر و اولویتبندی میکند | اپراتور باید به صورت دستی فیلتر کند |
همبستگی رویدادها با دریافت همزمان لاگها، معیارها و ردپاها از منابع مختلف و سپس اعمال قوانین یا یادگیری ماشینی برای یافتن روابط عمل میکند. به عنوان مثال، یک پرداخت ناموفق ممکن است به یک وقفه زمانی در پایگاه داده، یک اختلال در شبکه و یک رویداد استقرار، همه به طور همزمان مرتبط باشد. در مقابل، تجزیه و تحلیل لاگهای جداگانه به معنای باز کردن یک فایل لاگ یا داشبورد و جستجوی سرنخها بدون آن زمینه گستردهتر است. هر روش به سؤالات مختلفی پاسخ میدهد، اما همبستگی به سؤالات سختتر در مورد دلیل عدم موفقیت یک سیستم پاسخ میدهد.
وقتی چیزی در معماری میکروسرویسها دچار مشکل میشود، ابزارهای همبستگی میتوانند سرویس مبدا را در عرض چند دقیقه به جای چند ساعت مشخص کنند. مهندسان دیگر مجبور نیستند به صورت دستی بین پنج جریان لاگ مختلف جابجا شوند و سعی کنند آنچه اتفاق افتاده را بازسازی کنند. تجزیه و تحلیل جداگانه، بازسازی دستی را مجبور میکند، که برای یک اسکریپت خراب خوب کار میکند اما وقتی دهها سرویس با هم تعامل دارند، دردناک میشود. اکثر تیمهای SRE مدرن پس از اتخاذ پلتفرمهای همبستگی، بهبودهای قابل توجهی در MTTR گزارش میدهند.
اجرای یک موتور همبستگی نیاز به سرمایهگذاری در ذخیرهسازی، نمایهسازی و اغلب ابزارهای تجاری دارد. پلتفرمهایی مانند Datadog، Splunk و New Relic بر اساس حجم مصرف هزینه دریافت میکنند که میتواند در محیطهای پر از گفتگو به سرعت رشد کند. تجزیه و تحلیل لاگهای جداگانه تقریباً هیچ هزینهای فراتر از زمانی که مهندس صرف خواندن لاگها میکند، ندارد. برای تیمهای کوچک یا برنامههای ساده، این تفاوت هزینه میتواند تعیینکننده باشد، حتی اگر به معنای اشکالزدایی کندتر باشد.
پلتفرمهای همبستگی نیازمند آشنایی با زبانهای پرسوجو مانند SPL، KQL یا Lucene، به علاوه درک چگونگی نوشتن قوانین همبستگی مؤثر هستند. مهندسان جدید اغلب با انتزاع برخورد با لاگها به عنوان یک مجموعه داده یکپارچه مشکل دارند. تحلیل ایزوله منحنی یادگیری ملایمتری دارد زیرا اکثر توسعهدهندگان از قبل میدانند چگونه یک فایل را grep کنند یا یک رد پشته را بخوانند. نکته منفی این است که تحلیل ایزوله به ندرت فراتر از تعداد انگشتشماری از سرویسها گسترش مییابد.
همبستگی رویداد، برندهی قطعی برای محیطهای ابری عملیاتی، سیستمهای توزیعشده و مراکز عملیات امنیتی است که در آنها زمینهی منابع اهمیت دارد. تحلیل لاگهای مجزا هنوز هم جایگاه خود را در طول توسعهی محلی، اشکالزدایی تکسرویسی یا هنگام بررسی یک مشکل شناختهشده با امضای لاگ واضح، حفظ میکند. بسیاری از تیمهای بالغ از هر دو استفاده میکنند: همبستگی برای تصویر کلی و تحلیل مجزا برای بررسی عمیق یک جزء خاص.
همبستگی رویدادها جایگزین نیاز به خواندن گزارشهای تکی میشود.
همبستگی شما را به ورودی صحیح لاگ هدایت میکند، اما مهندسان هنوز باید محتوای واقعی لاگ را بخوانند تا علت خرابی را درک کنند. این دو رویکرد مکمل یکدیگر هستند، نه اینکه یکی جایگزین دیگری شود.
تحلیل لاگهای جداگانه در محیطهای ابری مدرن منسوخ شده است.
حتی تیمهایی که از پلتفرمهای پیشرفتهی رصدپذیری استفاده میکنند، هنوز برای بررسی عمیق اجزای خاص، به بازرسی لاگهای جداگانه متکی هستند. این یک مهارت اساسی برای هر توسعهدهنده یا SRE باقی میماند.
ابزارهای همبستگی به طور خودکار و بدون نیاز به پیکربندی کار میکنند.
همبستگی مؤثر نیازمند لاگهای ساختاریافته، مهرهای زمانی منسجم و اغلب قوانین سفارشی یا مدلهای آموزشدیده است. صرف نظر از اینکه پلتفرم چقدر پیچیده باشد، ورودی بیارزش همچنان به معنای خروجی بیارزش است.
تعداد بیشتر لاگها همیشه به معنای همبستگی بهتر است.
قطع بیش از حد درختان میتواند با ایجاد نویز و افزایش هزینهها، به همبستگی آسیب برساند. کیفیت و ثبات ساختار درختان بسیار مهمتر از حجم صرف آنهاست.
همبستگی رویداد فقط برای تیمهای امنیتی مفید است.
در حالی که پلتفرمهای SIEM پیشگام همبستگی بودند، اکنون همین تکنیکها، نظارت بر عملکرد برنامهها، گردشهای کاری SRE و حتی تجزیه و تحلیل کسبوکار را در بسیاری از صنایع هدایت میکنند.
وقتی از سیستمهای ابری توزیعشده استفاده میکنید که در آنها حوادث شامل چندین سرویس هستند و سرعت حل مسئله اهمیت دارد، همبستگی رویداد را انتخاب کنید. برای پروژههای کوچک، توسعه محلی یا هنگام بررسی یک جزء واحد با امضای شناختهشده، به تجزیه و تحلیل لاگهای جداگانه پایبند باشید. اکثر تیمهای در حال رشد در نهایت هر دو را اتخاذ میکنند، از همبستگی برای اولویتبندی و از تجزیه و تحلیل جداگانه برای کار ریشهای دقیق استفاده میکنند.
این مقایسه به بررسی خدمات وب آمازون و گوگل کلود میپردازد و با تحلیل پیشنهادات خدماتی، مدلهای قیمتگذاری، زیرساخت جهانی، عملکرد، تجربه توسعهدهندگان و موارد استفاده ایدهآل، به سازمانها کمک میکند تا پلتفرم ابری را انتخاب کنند که بهترین تطابق را با نیازهای فنی و تجاری آنها داشته باشد.
محاسبات لبهای یادگیری ماشینی (ML) استنتاج را مستقیماً روی دستگاههای محلی اجرا میکند و تأخیر و استفاده از پهنای باند را کاهش میدهد، در حالی که آموزش یادگیری ماشینی مبتنی بر ابر، از سرورهای قدرتمند از راه دور برای ساخت و اصلاح مدلهای عظیم استفاده میکند. هر رویکرد متناسب با مراحل مختلف چرخه عمر یادگیری ماشینی و تقاضاهای عملیاتی مختلف است.
استراتژیهای ذخیرهسازی در سیستمهای یادگیری ماشین، خروجیهای مدل از پیش محاسبهشده یا دادههای میانی را برای تسریع پرسوجوهای مکرر ذخیره میکنند، در حالی که محاسبات بر اساس تقاضا، هر بار نتایج تازهای تولید میکنند و سرعت را فدای سادگی و سربار ذخیرهسازی کمتر میکنند.
اشکالزدایی سیستمهای توزیعشده، به بررسی خرابیها در چندین ماشین و سرویس شبکهای میپردازد، در حالی که اشکالزدایی سیستم محلی بر مشکلات درون یک ماشین یا برنامه واحد تمرکز دارد. هر رویکرد، ابزارها، مدلهای ذهنی و استراتژیهای متفاوتی را برای جداسازی و حل مؤثر مشکلات میطلبد.
برنامهریزی زیرساخت بلاکچین بر طراحی شبکههای غیرمتمرکز و توزیعشده با دفترکلهای تغییرناپذیر و سازوکارهای اجماع تمرکز دارد، در حالی که برنامهریزی زیرساخت ابری بر ساخت منابع محاسباتی مقیاسپذیر و بر اساس تقاضا از طریق ارائهدهندگان متمرکز مانند AWS، Azure و Google Cloud متمرکز است.