آشنایی با LLD در Zabbix و ساخت خودکار آیتم‌ها

فرض کنید یه سرور داریم که روی اون چندین دیسک، پارتیشن، کارت شبکه یا سرویس مختلف وجود داره و می‌خوایم همه‌ی اون‌ها رو با Zabbix مانیتور کنیم.

یک راه اینه که برای تک‌تک‌شون دستی Item و Trigger بسازیم.

ولی خب اگه ۵ تا سرور داشته باشیم شاید بشه تحملش کرد، وقتی تعداد سرورها بشه ۵۰۰ تا، دیگه خیلی ایده‌ی جذابی نیست!

اینجاست که LLD در Zabbix به کارمون میاد.

توی این ویدیو درباره‌ی LLD صحبت می‌کنیم و می‌بینیم چطور میشه باهاش بخش زیادی از فرآیند ساخت Itemها و Triggerها رو خودکار کرد.

LLD چیه؟

LLD مخفف Low-Level Discovery هست.

ایده‌ی اصلیش خیلی ساده است: به جای اینکه از قبل به Zabbix بگیم دقیقاً چه چیزهایی رو باید مانیتور کنه، اجازه میدیم خودش اول اون‌ها رو پیدا کنه.

مثلاً Zabbix می‌تونه فایل‌سیستم‌های یک سرور رو پیدا کنه و بعد برای هر کدوم به‌صورت خودکار Item موردنیاز رو بسازه.

اگر فردا یه فایل‌سیستم جدید هم اضافه بشه، لازم نیست دوباره بریم سراغ تنظیمات Zabbix و همه‌چیز رو دستی بسازیم.

Discovery Rule

اولین بخش مهم در LLD، چیزی به اسم Discovery Rule هست.

وظیفه‌ی Discovery Rule اینه که مواردی که قصد مانیتور کردنشون رو داریم پیدا کنه.

خروجی Discovery معمولاً شامل اطلاعاتیه که بعداً می‌تونیم از اون‌ها برای ساخت Itemها، Triggerها و بخش‌های دیگه استفاده کنیم.

برای دسترسی به این اطلاعات هم از LLD Macroها استفاده می‌کنیم.

مثلاً ممکنه Macroای مثل این داشته باشیم:

{#FSNAME}

این Macro می‌تونه نام فایل‌سیستمی باشه که Zabbix پیدا کرده.

Item Prototype

حالا که موارد موردنظر رو پیدا کردیم، باید مشخص کنیم برای هر کدوم چه Itemهایی ساخته بشه.

اینجا Item Prototype وارد ماجرا میشه.

به جای اینکه برای هر فایل‌سیستم یک Item جدا بسازیم، یک Prototype تعریف می‌کنیم و Zabbix با استفاده از اطلاعات Discovery، Itemهای واقعی رو خودش ایجاد می‌کنه.

یعنی ما یک بار الگو رو می‌سازیم و Zabbix بقیه‌ی کار رو انجام میده.

هم کار کمتر، هم احتمال اشتباه کمتر؛ ترکیب خوبیه!

Trigger Prototype

همین داستان برای Triggerها هم وجود داره.

با Trigger Prototype می‌تونیم مشخص کنیم برای چیزهایی که Discovery پیدا کرده چه Triggerهایی ساخته بشن.

مثلاً اگر چند فایل‌سیستم روی سرور داریم، لازم نیست برای فضای خالی هر کدوم جداگانه Trigger بسازیم.

یک Trigger Prototype تعریف می‌کنیم و Zabbix برای فایل‌سیستم‌های کشف‌شده Triggerهای موردنیاز رو ایجاد می‌کنه.

LLD کجا به دردمون می‌خوره؟

LLD تقریباً هر جایی کاربرد داره که تعداد یا اسم چیزهایی که می‌خوایم مانیتور کنیم از قبل ثابت نیست.

دیسک‌ها و فایل‌سیستم‌ها، کارت‌های شبکه، سرویس‌ها، پایگاه‌های داده و خیلی از منابع دیگه می‌تونن نمونه‌های خوبی باشن.

نکته‌ی مهم اینه که با LLD به جای ساختن تعداد زیادی Item و Trigger به‌صورت دستی، قانون ساخت اون‌ها رو تعریف می‌کنیم و اجازه میدیم Zabbix بقیه‌ی کار رو انجام بده.

توی این ویدیو با ساختار Low-Level Discovery در Zabbix آشنا میشیم و درباره‌ی Discovery Rule، LLD Macro، Item Prototype و Trigger Prototype صحبت می‌کنیم تا ببینیم Zabbix چطور می‌تونه منابع مختلف رو پیدا کنه و مانیتورینگ اون‌ها رو به‌صورت خودکار ایجاد کنه.