شیوه استفاده از داشبوردها و بصری سازی های Kibana – به زبان ساده
Kibana در نسخه 4 خود به یک پلتفرم تحلیل و بصریسازی تبدیل شده است. کیبانا بر مبنای Elasticsearch ساخته شده تا درک بهتری از دادهها در اختیار شما قرار دهد. در این راهنما با نمایش شیوه استفاده از رابط وب کیبانا برای فیلتر کردن و بصریسازی پیامهای لاگی که توسط استک ELK گردآوری شده است، روش استفاده از آن را آموزش میدهیم. در این نوشته اجزای اصلی رابط وب را بررسی میکنیم و شیوه جستجو، ایجاد بصریسازی و خلق داشبوردهای جدید را نمایش میدهیم.
پیشنیازها
در این راهنما فرض ما بر این است که شما یک استک ELK را در اختیار دارید. در مثالهایی که در ادامه آمده است ما به گردآوری لاگهای سیستمی (logsys) و همچنین لاگهای دسترسی Nginx میپردازیم. اگر شما این نوع log ها را گردآوری نمیکنید، باید مثالها را طوری تغییر دهید که با کاربردهای شما هماهنگ باشند.
اگر میخواهید دقیقاً از مثالهای این راهنما استفاده کنید، باید موارد زیر را داشته باشید:
- یک استک ELK که لاگهای سیستمی را گردآوری میکند.
- لاگهای دسترسی Nginx و فیلتر کردن آنها
زمانی که این موارد آماده بودند، میتوانیم به بررسی رابط وب Kibana بپردازیم.
مروری بر رابط وب Kibana
رابط کیبانا به چهار بخش تقسیم میشود:
- کشف (Discover)
- بصریسازی (Visualize)
- داشبورد (Dashboard)
- تنظیمات (Settings)
در ابتدا مقدماتی از هر بخش را به ترتیبی که فهرست کردهایم، ارائه میکنیم و سپس شیوه استفاده از هر بخش را نشان میدهیم.
کشف کیبانا
زمانی که نخستین بار از Kibana 4 استفاده میکنید، به صفحه کشف (Discover) میروید. به طور پیشفرض این صفحه همه لاگهای دریافتی اخیر استک ELK را نمایش میدهد. در این صفحه میتوانید هر موردی که دوست دارید را فیلتر کنید و پیامهای مشخصی را بر مبنای کوئریهای جستجو (Search Queries) پیدا کنید. سپس میتوانید نتایج جستجوی را به دوره زمانی خاصی (Time Filter) محدود سازید.
در ادامه اجزای رابط کشف کیبانا را ارائه کردهایم:
- نوار جستجو (Search Bar) – دقیقاً زیر منوی ناوبری قرار دارد. از این گزینه برای جستجوی فیلدها و/یا پیامهای خاص میتوان استفاده کرد.
- فیلتر زمانی (Time Filter) – در بخش راست- بالای صفحه با آیکون ساعت قرار دارد. از این گزینه میتوان برای فیلتر کردن لاگها بر مبنای محدودههای زمانی نسبی و مطلق استفاده کرد.
- گزینشگر فیلد (Field Selector) – در سمت چپ و زیر نوار جستجو قرار دارد. با این گزینه میتوانیم فیلدهایی را که میخواهیم در صفحه Log View ببینیم تغییر دهیم.
- هیستوگرام داده (Date Histogram) – گراف ستونی است که زیر نوار جستجو قرار دارد. به طور پیشفرض تعداد همه لاگها را در برابر محور زمان نمایش میدهد که با فیلتر جستجو و زمان مطابقت دارد. میتوان روی ستونها کلیک کرد یا این که کلیک کرده و ماوس را کشید تا فیلتر زمانی محدودتر شود.
- نمایش لاگ (Log View) – در سمت راست – پایین قرار دارد. از این بخش میتوان برای بررسی پیامهای منفرد و نمایش دادههای لاگ فیلتر شده بر اساس فیلد استفاده کرد. اگر هیچ فیلتری انتخاب نشده باشد، کل پیامهای لاگ نمایش مییابند.
در انیمیشن زیر چند مورد از ویژگیهای صفحه کشف را میبینید:
در ادامه راهنمای گام به گام کارهایی که باید اجرا شوند آمده است:
- فیلد «type» که مواردی که باید برای هر رکورد لاگ نمایش یابند را محدود میسازد و در بخش راست –پایین صفحه قرار دارد. در این فیلد به طور پیشفرض همه پیامهای لاگ نمایش مییابند.
- با جستجوی "type: "nginx-access تنها لاگهای nginx نمایش مییابند.
- جدیدترین لاگهای دسترسی Nginx باز میشوند تا جزییات آنها بررسی شود.
توجه کنید که این نتایج به «15 دقیقه اخیر» محدود هستند. اگر هیچ نتیجهای نمیبینید، ابتدا مطمئن شوید که کلاً لاگی وجود دارد یا نه و سپس کوئری جستجو و یا دوره زمانی خاصی که انتخاب کردهاید را بررسی کنید.
پیامهای لاگی که گردآوری شدهاند به پیکربندی Logstash و فوروارد کننده Logstash بستگی دارند. در مثالی که ما بررسی میکنیم از لاگهای سیستمی و دسترسی Nginx استفاده شده است و آنها را بر اساس type فیلتر کردهایم. اگر شما پیامهای لاگ را گردآوری میکنید؛ اما آنها را بر اساس فیلدهای متمایز فیلتر نمیکنید، کوئری زدن به آنها ممکن است دشوار باشد و امکان انتخاب فیلدهای خاص وجود نخواهد داشت.
ساختار جستجو
گزینه search روشی آسان و قدرتمند برای انتخاب زیرمجموعهای از پیامهای لاگ است. ساختار جستجو کاملاً گویا است و امکان استفاده از عملگرهای بولی، وایلدکارد، و فیلترینگ فیلد وجود دارد. برای نمونه اگر میخواهید لاگهای دسترسی Nginx را که توسط کاربران گوگل کروم ایجاد شدهاند، فیلتر کنید، میتوانید به دنبال "type: "nginx-access" AND agent: "chrome بگردید. همچنین میتوانید بر اساس میزبانهای خاص یا محدودههای آدرس IP مشخص یا هر داده دیگری که در لاگها وجود دارد، جستجو کنید. زمانی که یک کوئری جستجو ایجاد کردید، اگر میخواهید آن را ذخیره کنید، میتوانید با کلیک روی گزینه Save Search و سپس دکمه Save مانند انیمیشن زیر آن را ثبت کنید:
جستجوهای ذخیره شده را میتوان هر زمان با کلیک روی آیکون Load Saved Search بارگذاری کرد و آنها را در زمان ایجاد بصریسازی مورد استفاده قرار داد. ما جستجوی "type: "nginx-access را با نام «type nginx access» ذخیره میکنیم و از آن برای بصریسازی استفاده خواهیم کرد.
بصریسازی کیبانا
صفحه Kibana Visualize جایی است که میتوانید در آن بصریسازیهای خاص خود را ایجاد، ویرایش و مشاهده کنید. چند نوع مختلف از بصریسازیها وجود دارند که از نمودارهای ستون عمودی تا نمودار دایرهای (pie) یا نقشه و جدولهای داده متفاوت هستند. این بصریسازیها را میتوان با کاربران دیگری که به رابط کیبانا دسترسی دارند نیز به اشتراک گذاشت.
اگر نخستین باری است که از بصریسازیهای کیبانا استفاده میکنید، باید لیست فیلدها را پیش از ادامه مجدداً بارگذاری کنید. دستورالعملهای این کار در بخش Reload Field Data زیر عنوان تنظیمات کیبانا ارائه شدهاند.
ایجاد نمودار به صورت ستون عمودی
برای ایجاد بصریسازی باید از منوی Visualize استفاده کرد. در این مرحله نوع نموداری که قرار است ایجاد کنید را انتخاب کنید. در این مثال از یک نمودار Vertical bar chart استفاده میکنیم که نقطه شروع خوبی محسوب میشود. اینک باید یک منبع جستجو را انتخاب کنیم. یا باید یک جستجوی جدید انجام دهیم و یا از یک جستجوی ذخیره شده استفاده کنیم. از روش دوم استفاده میکنیم و جستجوی type nginx access که در مرحله قبل ذخیره کردیم را انتخاب میکنیم.
در ابتدا پیشنمایشی از گراف در سمت راست نشان داده میشود. این گراف در صورتی که در نتایج جستجوی شما پیامهای لاگ موجود باشند به صورت یک ستون منفرد خواهد بود، زیرا تنها تعداد یعنی محور Y را دارد. این بدان معنی است که این نمودار تنها تعداد لاگهای پیدا شده را نشان میدهد. برای این که این بصریسازی مفیدتر باشد، باید چند bucket به آن اضافه کنیم. ابتدا یک محور X اضافه میکنیم و سپس روی منوی بازشدنی Aggregation کلیک و گزینه «Date Histogram» را انتخاب میکنیم. اگر روی گزینه Apply کلیک کنید، ستون منفرد تبدیل به چند ستون روی محور X میشود. اینک تعداد به صورت ستونهای چندگانه نمایش مییابد که بر اساس زمان تقسیم شدهاند. این وضعیت شبیه همان است که در صفحه کشف مشاهده کردیم.
اگر بخواهید این نمودار را جذابتر بکنید، میتوانید روی دکمه Add Sub Aggregation کلیک کنید. نوع bucket را به صورت Split Bars انتخاب کنید. روی منوی بازشدنی Sub Aggregation کلیک کنید و «Significant Terms» را انتخاب کنید، سپس منوی بازشدنی Field را انتخاب کرده و گزینه «clientip.raw» را انتخاب کنید. در ادامه فیلد Size را کلیک کنید و عدد 10 را انتخاب کنید. با کلیک روی دکمه Apply میتوانید نمودار جدید خود را ایجاد کنید. در تصویر زیر آنچه را که تاکنون ایجاد کردهایم میبینید:
اگر لاگهایی که تاکنون بصریسازی شدهاند از چندین آدرس IP ایجاد شده باشند، یعنی بیش از یک نفر به سایت دسترسی داشته باشد، خواهید دید که هر ستون به چند بخش رنگی تقسیم شده است. هر بخش رنگی نشان دهنده تعداد لاگهایی است که آدرس IP منفرد ایجاد کرده است. یعنی یک بازدیدکننده خاص از سایت شما بازدید کرده است و این ستون بر اساس آنچه تنظیم کردهایم تا نهایتاً به 10 بخش تقسیم میشود. شما میتوانید ماوس خود را روی نمودار ببرید و روی هر ستون در نمودار کلیک کنید تا جزییات پیامهای لاگ خاص را بررسی کنید.
زمانی که از بصریسازی خود راضی بودید و خواستید آن را ذخیره کنید، میتوانید از آیکون «Save Visualization» در نزدیکی بخش فوقانی صفحه استفاده کنید و سپس نامی برای آن تعیین کرده و دکمه Save را بزنید.
ایجاد بصریسازی دیگر
پیش از رفتن به صفحه بعدی که شیوه ایجاد یک داشبورد را نشان میدهد باید دستکم یک بصریسازی دیگر ایجاد کنید. میتوانید انواع مختلف بصریسازیها را بررسی کرده و هر کدام را که دوست داشتید ایجاد کنید.
برای نمونه میتوانید یک نمودار دایرهای از 5 لاگ برتر ایجاد کنید. بدین منظور روی Visualize کلیک و سپس گزینه Pie chart را انتخاب کنید. سپس از جستجوی جدید استفاده کنید و کادر جستجو را خالی بگذارید تا همه لاگها انتخاب شوند. سپس باکت *Split Slices** را انتخاب کنید. روی منوی بازشدنی Aggregation کلیک کنید و گزینه Significant Terms را انتخاب کنید. از فیلد بازشدنی Significant Terms گزینه type.raw را انتخاب کنید و در نهایت مقدار 5 را در فیلد Size وارد کنید. اینک میتوانید روی دکمه Apply کلیک کرده و این بصریسازی را با نام «Top 5» ذخیره کنید.
در تصویر زیر نمونهای از تنظیماتی که شرح دادیم را میبینید:
از آنجا که ما در مثال خودمان تنها لاگهای سیستمی و لاگهای دسترسی Nginx را گردآوری میکنیم بنابراین نمودار پای تنها دو بخش خواهد داشت. زمانی که ایجاد بصریسازی پایان یافت، میتوانیم به بخش داشبوردهای کیبانا بپردازیم.
داشبورد کیبانا
صفحه داشبورد کیبانا جایی است که میتوانید داشبوردهای خاص خود را ایجاد، ویرایش یا مشاهده کنید. با استفاده از یک داشبورد میتوان چند بصریسازی را در یک صفحه منفرد تجمیع کرد و سپس آنها را با ارائه کوئری جستجو یا با انتخاب فیلترهایی با کلیک روی اجزای بصریسازی به صورت سفارشی درآورد. داشبوردها زمانی که میخواهیم مروری بر لاگهای خود داشته باشیم و میان بصریسازیهای مختلف و لاگها همبستگی بیابیم، بسیار مفید هستند.
ایجاد داشبورد
برای ایجاد داشبورد در کیبانا ابتدا روی آیتم Dashboard در منو کلیک کنید. اگر تاکنون داشبوردی ایجاد نکردهاید در این بخش با یک صفحه خالی مواجه میشوید که عبارت «?Ready to get started» در آن دیده میشود. اگر این صفحه را نمیبینید، یعنی قبلاً داشبوردهایی ایجاد کردهاید. میتوانید روی آیکون New Dashboard در سمت راست نوار جستجو کلیک کنید. در انیمیشن زیر روش افزودن بصریسازی به داشبورد مشاهده میشود:
مراحل آن به صورت زیر است:
- کلیک روی آیکون Add Visualization
- افزودن نمودار پای «Log Counts» و هیستوگرام «Nginx: Top 10 client IP»
- بستن منوی Add Visualization
- بازآرایی و تغییر اندازه بصریسازیها روی داشبورد
- کلیک روی آیکون Save Dashboard
پیش از ذخیرهسازی، یک نام برای داشبورد خود انتخاب کنید. بدین ترتیب ایدهای کلی از شیوه ایجاد یک داشبورد مییابید. شما میتوانید داشبوردهایی که فکر میکنید مفید هستند را ایجاد کنید. روش استفاده از داشبوردها را در بخش بعد بررسی میکنیم.
استفاده از داشبورد
داشبوردها را میتوان با وارد کردن یک کوئری جستجو و تغییر دادن فیلتر زمانی یا کلیک بر روی اجزای درونِ بصریسازی نیز فیلتر کرد.
برای نمونه اگر روی بخش رنگی خاصی از یک نمودار هیستوگرام کلیک کنید، کیبانا به شما اجازه میدهد که عبارت خاصی که آن بخش ارائه میکند را فیلتر کنید. در ادامه نمونهای از روش استفاده از فیلتر در یک داشبورد را میبینید:
اطمینان حاصل کنید که برای فیلتر کردن نتایج روی دکمه Apply Now button کلیک کردهاید تا بصریسازیهای داشبورد از نو ترسیم شوند. فیلترها میتوانند بسته به نیاز اضافه یا حذف شوند.
فیلترهای جستجو و زمانی دقیقاً همان طور که در صفحه کشف توضیح دادیم، عمل میکنند؛ به جز این که تنها در مورد زیرمجموعههایی از داده کاربر دارند که اینک در داشبورد عرضه شدهاند.
تنظیمات کیبانا
صفحه تنظیمات کیبانا جایی است که میتوانید چیزهایی مانند مقادیر پیشفرض یا الگوهای اندیسگذاری را تغییر دهید. در این راهنما وارد جزییات پیچیده نمیشویم و تنها روی بخشهای Indices و Objects متمرکز خواهیم شد.
بارگذاری مجدد دادههای فیلد
زمانی که فیلدهای جدیدی به دادههای Logstash اضافه میکنید، اگر فیلتری برای نوع جدیدی از لاگها اضافه کنید، ممکن است لازم باشد لیست فیلد خود را مجدداً بارگذاری کنید. در این صورت اگر نتوانید فیلدهای فیلتر شده را بیابید، ضروری است که دادهها را مجدداً بارگذاری کنید، زیرا دادهها به صورت دورهای کَش میشوند. بدین منظور باید از منوی Settings روی گزینه *-logstash زیر Index Patterns کلیک کنید:
سپس دکمه زرد رنگ Reload Field List را کلیک کنید. در ادامه دکمه OK را بزنید تا تأیید شود.
ویرایش اشیای ذخیره شده
در بخش Objects میتوانید هر یک از داشبوردها، جستجوها و بصریسازیهایی که ایجاد کردهاید را ویرایش، مشاهده یا حذف کنید.
برای رفتن به این صفحه باید از منوی Settings گزینه Objects را انتخاب کنید. در این صفحه از میان برگههای شیئی را که میخواهید ویرایش، مشاهده یا حذف کنید انتخاب نمایید:
در تصویر فوق ما یک داشبورد تکراری را انتخاب کردهایم. این داشبورد را میتوان با کلیک روی دکمههای مربوطه ویرایش، مشاهده و یا حذف کرد.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- نصب مجموعه ELK روی سرور اوبونتو ۱۴.۰۴ — از صفر تا صد
- آموزش نمودارها و تکنیک های رسم آن در داشبوردهای مدیریتی اکسل
- مجموعه آموزشهای ابزارها و راهکارهای مدیریت وبسایتها
- نظارت (Monitoring) روی یک وب اپلیکیشن در محیط Production — راهنمای جامع
==