نظارتمشاهده پذیریزیرساخت ابریتوسعهدهندگانورود به سیستممعیارها
نظارت مبتنی بر گزارش در مقابل نظارت مبتنی بر معیارها
نظارت مبتنی بر لاگ، سوابق دقیق رویدادها را برای عیبیابی عمیق ثبت میکند، در حالی که نظارت مبتنی بر معیارها، نقاط داده عددی را در طول زمان برای بینشهای عملکرد در زمان واقعی ردیابی میکند. هر دو رویکرد در پشتههای مشاهدهپذیری مدرن، اهداف متمایزی را دنبال میکنند و اکثر تیمها از استفاده همزمان آنها به جای انتخاب یکی بر دیگری سود میبرند.
برجستهها
لاگها زمینه رویداد را برای تحقیقات پزشکی قانونی حفظ میکنند، در حالی که معیارها وضعیت سیستم را برای پرسوجوهای سریع خلاصه میکنند.
معیارها امکان هشداردهی تقریباً فوری مبتنی بر آستانه را فراهم میکنند، در حالی که هشداردهی لاگ نیاز به تجزیه و تطبیق الگو دارد.
هزینههای ذخیرهسازی لاگ با حجم رویدادها و جزئیات آنها افزایش مییابد، در حالی که ذخیرهسازی متریک فشرده و قابل پیشبینی باقی میماند.
ترکیب هر دو رویکرد، تصویر کاملی از قابلیت مشاهده را که سیستمهای توزیعشده مدرن به آن نیاز دارند، ارائه میدهد.
نظارت مبتنی بر لاگ چیست؟
رویدادهای گسسته را با جزئیات زمینهای ثبت میکند و امکان تجزیه و تحلیل قانونی و بررسی ریشهای علت را در سیستمهای توزیعشده فراهم میکند.
لاگها، رکوردهای ساختاریافته یا بدون ساختار با مهر زمانی از رویدادهای تولید شده توسط برنامهها، سرورها و اجزای زیرساخت هستند.
هر ورودی لاگ معمولاً شامل یک مهر زمانی، سطح شدت، شناسه منبع و یک پیام توصیفی در مورد آنچه اتفاق افتاده است، میباشد.
ابزارهایی مانند ELK Stack (Elasticsearch، Logstash، Kibana)، Splunk و Loki معمولاً برای جمعآوری و جستجوی دادههای لاگ استفاده میشوند.
نظارت مبتنی بر گزارش در پاسخ به «چرا این اتفاق افتاد» عالی عمل میکند، زیرا متن کامل رویدادهای منفرد را حفظ میکند.
هزینههای ذخیرهسازی برای لاگها معمولاً بیشتر از معیارها است، زیرا هر رویداد میتواند شامل صدها بایت اطلاعات دقیق باشد.
نظارت مبتنی بر معیارها چیست؟
نقاط داده سری زمانی عددی را برای ردیابی سلامت سیستم، روند عملکرد و میزان استفاده از منابع در زمان واقعی جمعآوری میکند.
معیارها، اندازهگیریهای عددی هستند که در فواصل منظم نمونهبرداری میشوند، مانند درصد استفاده از CPU، تأخیر درخواست یا مصرف حافظه.
پایگاههای داده سری زمانی مانند Prometheus، InfluxDB و Graphite به طور خاص برای ذخیره و جستجوی کارآمد دادههای متریک ساخته شدهاند.
نظارت مبتنی بر معیارها از طریق داشبوردها، هشدارها و اعلانهای مبتنی بر آستانه، به «آنچه در حال حاضر اتفاق میافتد» پاسخ میدهد.
یک نقطه داده متریک واحد معمولاً بسیار کوچکتر از یک ورودی لاگ است، اغلب فقط شامل یک نام، مهر زمانی و مقدار است.
ابزارهای مصورسازی محبوب شامل Grafana، داشبوردهای Datadog و نماهای معیارهای CloudWatch هستند.
جدول مقایسه
ویژگی
نظارت مبتنی بر لاگ
نظارت مبتنی بر معیارها
نوع داده
سوابق رویداد با زمینه غنی
نقاط داده سری زمانی عددی
مورد استفاده اصلی
تحلیل ریشهای و اشکالزدایی
هشداردهی و تحلیل روند در لحظه
فضای ذخیرهسازی
حجم بیشتر برای هر ورودی، هزینههای ذخیرهسازی بالاتر
نقاط داده فشرده، هزینههای ذخیرهسازی کمتر
روش پرس و جو
جستجوی متن کامل و فیلتر کردن
تجمیع، توابع ریاضی، پرسوجوهای پنجره زمانی
زمان پاسخ
برای کوئریهای بزرگ کندتر است
تقریباً آنی برای پرسوجوهای داشبورد
بهترین برای پاسخگویی
چرا این رویداد خاص رخ داد؟
وضعیت فعلی سیستم چیست؟
ابزارهای رایج
استک ELK، اسپلانک، لوکی، فلوئنت
Prometheus، Grafana، Datadog، CloudWatch
قابلیت هشدار
محدود، اغلب به قوانین تجزیه لاگ نیاز دارد
هشدارهای مبتنی بر آستانه و ناهنجاری بومی
مقایسه دقیق
جزئیات و بافت دادهها
نظارت مبتنی بر لاگ، هر رویداد گسسته را به همراه اطلاعات زمینهای اطراف آن، از جمله شناسههای کاربری، بارهای درخواست، ردگیریهای پشته خطا و متغیرهای محیطی، ثبت میکند. این امر، لاگها را در مواقعی که نیاز به بازسازی دقیق آنچه در طول یک حادثه خاص رخ داده است، دارید، بسیار ارزشمند میکند. در مقابل، نظارت مبتنی بر معیارها، رفتار سیستم را در مقادیر عددی خلاصه میکند و جزئیات رویداد منفرد را فدای یک قالب فشرده و قابل پرسوجو میکند که در افقهای زمانی طولانی به خوبی کار میکند.
عملکرد و مقیاسپذیری
پایگاههای داده معیار برای توان عملیاتی بالا در نوشتن و تجمیع سریع بهینه شدهاند، به همین دلیل است که پلتفرمهایی مانند Prometheus میتوانند هزاران هدف را هر چند ثانیه بدون هیچ زحمتی بررسی کنند. سیستمهای لاگ به سربار محاسباتی بیشتری نیاز دارند زیرا متنهای آزاد را فهرستبندی میکنند و از پرسوجوهای جستجوی پیچیده پشتیبانی میکنند. با افزایش حجم لاگها به ترابایت در روز، تیمها اغلب برای مدیریت هزینهها نیاز به سرمایهگذاری در ذخیرهسازی لایهای، استراتژیهای نمونهگیری یا سیاستهای نگهداری دارند.
هشدار و قابلیت مشاهده در لحظه
معیارها وقتی صحبت از هشداردهی بلادرنگ میشود، میدرخشند، زیرا ارزیابی یک آستانه عددی در برابر یک سری زمانی از نظر محاسباتی بسیار ساده است. میتوانید هشدارهایی مانند «پردازنده بالای ۹۰٪ به مدت ۵ دقیقه» را با حداقل سربار تنظیم کنید. هشداردهی مبتنی بر گزارش امکانپذیر است، اما معمولاً برای تشخیص الگوها به قوانین تجزیه یا موتورهای جستجوی گزارش نیاز دارد که باعث افزایش تأخیر و پیچیدگی میشود. برای اعلانهای فوری در مورد سلامت سیستم، معیارها معمولاً مسیر سریعتری هستند.
اشکالزدایی و تحلیل پزشکی قانونی
وقتی چیزی خراب میشود، مهندسان اغلب اولین جایی که به آن نگاه میکنند، لاگها هستند زیرا روایت آنچه رخ داده را حفظ میکنند. یک ورودی لاگ میتواند پیام خطای دقیق، کاربر آسیبدیده و مسیر کدی که باعث خرابی شده است را آشکار کند. معیارها میتوانند به شما بگویند که میزان خطا در ساعت 2:34 بعد از ظهر به شدت افزایش یافته است، اما به ندرت دلیل آن را توضیح میدهند. به همین دلیل است که تیمهای مهندسی بالغ، لاگها را به عنوان ابزار تحقیق و معیارها را به عنوان سیستم هشدار اولیه خود در نظر میگیرند.
ملاحظات هزینه و ذخیرهسازی
ذخیره لاگها عموماً گرانتر از ذخیره معیارها است، زیرا هر ورودی دادههای بیشتری را در خود جای میدهد و دورههای نگهداری اغلب به دلایل انطباق یا حسابرسی طولانیتر هستند. یک برنامه متوسط ممکن است روزانه میلیونها خط لاگ تولید کند، در حالی که تنها چند صد سری معیار منحصر به فرد تولید میکند. بسیاری از سازمانها نمونهگیری لاگ، فیلتر کردن در منبع یا ذخیرهسازی لایهای را برای کنترل هزینهها پیادهسازی میکنند، در حالی که نگهداری معیارها معمولاً میتواند با هزینهای کم تا ماهها یا سالها ادامه یابد.
ادغام در مشاهدهپذیری مدرن
سه رکن مشاهدهپذیری، لاگها، معیارها و ردیابیها هستند و اکثر سیستمهای در سطح تولید به هر سه متکی هستند. معیارها، نمای کلی سلامت را در سطح بالا ارائه میدهند، لاگها جزئیات تشخیصی عمیق را ارائه میدهند و ردیابیهای توزیعشده با نشان دادن جریان درخواستها در سراسر سرویسها، این دو را به هم متصل میکنند. انتخاب بین نظارت مبتنی بر لاگ و مبتنی بر معیارها به ندرت یک تصمیم یا یکی از این دو است. در عوض، تیمها تصمیم میگیرند که چگونه سرمایهگذاری در هر یک را بر اساس نیازهای عملیاتی و بودجه خود متعادل کنند.
مزایا و معایب
نظارت مبتنی بر لاگ
مزایا
+جزئیات غنی زمینهای
+عالی برای اشکال زدایی
+پشتیبانی از جستجوی متن کامل
+ثبت وقایع نادر
مصرف شده
−هزینههای ذخیرهسازی بالاتر
−عملکرد کندتر پرس و جو
−تنظیمات هشدار پیچیده
−نیاز به قوانین تجزیه دارد
نظارت مبتنی بر معیارها
مزایا
+هشدار سریع و بلادرنگ
+سربار ذخیرهسازی کم
+داشبوردسازی آسان
+تجمیع کارآمد
مصرف شده
−زمینه رویداد محدود
−ناهنجاریهای نادر را نادیده میگیرد
−نیاز به معیارهای از پیش تعریف شده
−جزئیات پزشکی قانونی کمتر
تصورات نادرست رایج
افسانه
برای اجرای یک سیستم قابل اعتماد، فقط به یک نوع نظارت نیاز دارید.
واقعیت
اکثر سیستمهای تولیدی از هر دو رویکرد سود میبرند. معیارها مشکلات را از طریق هشدارها در مراحل اولیه شناسایی میکنند، در حالی که گزارشها به مهندسان کمک میکنند تا پس از شناسایی یک مشکل، علت اصلی آن را درک کنند. تکیه بر تنها یکی از این رویکردها، نقاط کوری را ایجاد میکند که میتواند باعث طولانی شدن قطعیها شود.
افسانه
چوبها همیشه برای نگهداری طولانی مدت خیلی گران هستند.
واقعیت
اگرچه ذخیرهسازی لاگ خام میتواند پرهزینه باشد، اما استراتژیهای ذخیرهسازی لایهای، فشردهسازی و نمونهبرداری هوشمند، نگهداری طولانیمدت را امکانپذیر میکند. بسیاری از چارچوبهای انطباق در واقع نیاز به نگهداری لاگهای خاص برای ماهها یا سالها دارند، بنابراین مدیریت هزینه بیشتر مربوط به استراتژی است تا اجتناب از آن.
افسانه
معیارها میتوانند جایگزین گزارشها برای اشکالزدایی شوند.
واقعیت
معیارها به شما میگویند که چیزی تغییر کرده است، اما به ندرت دلیل آن را توضیح میدهند. هنگام بررسی شکایت یک کاربر خاص یا یک خطای نادر، گزارشها معمولاً تنها راه برای یافتن علت واقعی هستند. معیارها و گزارشها نقشهای مکملی در پاسخ به حادثه ایفا میکنند.
افسانه
دادههای لاگ بیشتر همیشه به معنای نظارت بهتر است.
واقعیت
ثبت بیش از حد وقایع باعث ایجاد نویز، افزایش هزینهها و در واقع کند شدن روند عیبیابی میشود. نظارت مؤثر مبتنی بر وقایع، به جای ارائه تمام جزئیات ممکن در قالب متن بدون ساختار، بر ثبت رویدادهای معنادار با فیلدهای ساختاریافته تمرکز دارد.
افسانه
نظارت مبتنی بر معیارها، هر ناهنجاری را به طور خودکار ثبت میکند.
واقعیت
معیارها فقط آنچه را که شما به صراحت اندازهگیری میکنید، تشخیص میدهند. اگر یک حالت خرابی جدید ظاهر شود که هیچکس به فکر ردیابی آن نبوده است، معیارها آن را به طور کامل از دست خواهند داد. در مقابل، گزارشها، رویدادهای غیرمنتظره را تا زمانی که برنامه در حال نوشتن آنهاست، ثبت میکنند.
سوالات متداول
تفاوت اصلی بین نظارت مبتنی بر لاگ و نظارت مبتنی بر معیارها چیست؟
نظارت مبتنی بر گزارش، رویدادهای منفرد را با جزئیات ثبت میکند و آن را برای اشکالزدایی و تحلیلهای قانونی ایدهآل میسازد. نظارت مبتنی بر معیارها، نقاط داده عددی را در طول زمان جمعآوری میکند و آن را برای هشداردهی در لحظه و تجسم روند ایدهآل میسازد. گزارشها به «چرا» پاسخ میدهند در حالی که معیارها به «چه» و «چه مقدار» پاسخ میدهند.
کدام ارزانتر است، نظارت بر لاگ یا نظارت بر معیارها؟
نظارت بر معیارها عموماً ارزانتر است زیرا هر نقطه داده کوچک و فشرده است. نظارت بر لاگ به دلیل حجم و طولانی بودن ورودیهای لاگ، به خصوص در مقیاس بزرگ، هزینه بیشتری دارد. با این حال، هزینهها به شدت به سیاستهای نگهداری، نرخ مصرف و مدل قیمتگذاری خاص فروشنده بستگی دارد.
آیا میتوانید با نظارت مبتنی بر گزارش، هشداردهی انجام دهید؟
بله، اما پیچیدهتر از هشداردهی مبتنی بر معیار است. ابزارهایی مانند Elasticsearch، Splunk و Loki از قوانین هشداری پشتیبانی میکنند که هنگام ظاهر شدن الگوهای خاص لاگ فعال میشوند. در مقایسه با ارزیابی یک آستانه عددی ساده، این روش تأخیر بالاتر و سربار پردازشی بیشتری دارد.
چه ابزارهایی برای نظارت مبتنی بر لاگ بهترین هستند؟
گزینههای محبوب شامل ELK Stack (Elasticsearch، Logstash، Kibana)، Splunk، Grafana Loki و Fluentd برای جمعآوری هستند. ارائهدهندگان خدمات ابری همچنین سرویسهای مدیریتشدهای مانند AWS CloudWatch Logs، Google Cloud Logging و Azure Monitor Logs را برای تیمهایی که ترجیح میدهند زیرساخت خود را اجرا نکنند، ارائه میدهند.
چه ابزارهایی برای نظارت مبتنی بر معیارها بهترین هستند؟
پرومتئوس پرکاربردترین گزینه متنباز است که اغلب برای مصورسازی با گرافانا جفت میشود. پلتفرمهای تجاری مانند Datadog، New Relic و Dynatrace جمعآوری معیارهای مدیریتشده را با هشدار داخلی ارائه میدهند. گزینههای بومی ابر شامل AWS CloudWatch Metrics و Google Cloud Monitoring هستند.
آیا برای اشکالزدایی در محیط عملیاتی باید از لاگها استفاده کنم یا از معیارها؟
ابتدا از معیارها برای تشخیص وجود مشکل استفاده کنید، سپس برای بررسی علت به گزارشها مراجعه کنید. معیارها، بازه زمانی و سیستمهای تحت تأثیر را محدود میکنند، در حالی که گزارشها، روایت دقیقی از رویداد مورد نیاز برای شناسایی علت اصلی را ارائه میدهند. این رویکرد دو مرحلهای، روش استاندارد در تیمهای SRE و DevOps است.
چگونه گزارشها و معیارها در مشاهدهپذیری با هم کار میکنند؟
آنها در کنار ردیابیهای توزیعشده، دو مورد از سه ستون قابلیت مشاهده را تشکیل میدهند. معیارها تصویر سلامت سطح بالایی را به شما میدهند، گزارشها جزئیات تشخیصی عمیقی را ارائه میدهند و ردیابیها درخواستهای فردی را در سراسر سرویسها به هم متصل میکنند. اکثر پلتفرمهای مدرن مانند Datadog، Honeycomb و Grafana stack هر سه را ادغام میکنند.
چه مدت باید گزارشها را در مقابل معیارها نگه دارم؟
رویه رایج این است که معیارها را به مدت ۱۳ ماه یا بیشتر نگه میدارند، زیرا ذخیرهسازی آنها ارزان و برای برنامهریزی ظرفیت مفید است. گزارشها اغلب به مدت ۳۰ تا ۹۰ روز در ذخیرهسازی گرم نگهداری میشوند و گزارشهای قدیمیتر در ذخیرهسازی سرد یا ذخیرهسازی شیء مانند S3 برای انطباق یا نیازهای بررسی گاه به گاه بایگانی میشوند.
آیا ثبت وقایع ساختاریافته برای نظارت بهتر از ثبت وقایع بدون ساختار است؟
گزارشگیری ساختاریافته (معمولاً با فرمت JSON) برای نظارت به طور قابل توجهی بهتر است زیرا امکان تجزیه، فیلتر و تجمیع قابل اعتماد را فراهم میکند. گزارشهای بدون ساختار نیاز به الگوهای regex یا بررسی دستی دارند که هم هشدار و هم اشکالزدایی را کند میکند. اکثر برنامههای مدرن به طور پیشفرض گزارشهای ساختاریافته منتشر میکنند.
آیا نظارت مبتنی بر معیارها میتواند مشکلاتی را که لاگها از قلم میاندازند، تشخیص دهد؟
بله، مخصوصاً برای افت تدریجی عملکرد یا اشباع منابع. یک نشت حافظه آهسته ممکن است هرگز ورودی لاگ ایجاد نکند، اما به مرور زمان به وضوح در معیارهای استفاده از حافظه نشان داده میشود. معیارها همچنین در تشخیص الگوهای کلی در هزاران درخواست که در آنها ورودیهای لاگ جداگانه برای تجزیه و تحلیل بسیار پر سر و صدا هستند، بهتر عمل میکنند.
حکم
زمانی که نیاز اصلی شما اشکالزدایی عمیق، ردیابی ممیزی یا درک زمینه پشت رویدادهای خاص است، مانیتورینگ مبتنی بر لاگ را انتخاب کنید. زمانی که به داشبوردهای بلادرنگ، هشدار سریع و تحلیل روند بلندمدت در مقیاس بزرگ نیاز دارید، مانیتورینگ مبتنی بر معیارها را انتخاب کنید. در عمل، قویترین استراتژیهای مشاهدهپذیری هر دو را با هم ترکیب میکنند، از معیارها برای تشخیص زودهنگام و لاگها برای بررسی کامل استفاده میکنند.