Kibana چیست؟
کیبانا (Kibana) یک ابزار بصریسازی متنباز و مبتنی بر مرورگر است که اصولاً برای تحلیل حجم بزرگی از لاگها در قالب انواع نمودارها و نقشهها استفاده میشود. بصریسازی پیشبینی و دیدن تغییرات در ترندهای خطاها یا دیگر رخدادهای مهم را آسانتر میسازد.
Kibana به همراه Elasticsearch و Logstash با هم مجموعهای بهنام ELK را تشکیل میدهند.
ELK Stack چیست؟
ELK مخفف Elasticsearch، Logstash و Kibana است. ELK یکی از پلتفرمهای محبوب مدیریت لاگ است که در سراسر جهان برای تجزیه و تحلیل لاگ استفاده میشود. در استک ELK، لاگاستش اطلاعات لاگینگ یا رویدادهای دیگر را از منابع مختلف استخراج میکند. سپس این ورودی ها را پردازش کرده و در Elasticsearch ذخیره میکند.
Kibana به عنوان یک ابزار بصریسازی، از طریق Elasticsearch به لاگها دسترسی دارد و میتواند لاگها را بهصورت نمودارهای مختلف مثل نمودار خطی، میلهای، دایرهای و غیره به کاربران نمایش دهد.
جریان اصلی مجموعه ELK به صورت تصویری در تصویر زیر نشان داده شده است:
Logstash مسئول جمعآوری دادهها از تمام منابع ریموت است که لاگها در آنجا ثبت شدهاند و این دادهها را به Elasticsearch ارسال میکند. Elasticsearch به عنوان یک پایگاه داده عمل میکند که در آن دادهها جمع آوری میشوند و Kibana از دادههای Elasticsearch برای نمایش دادن اطلاعات به کاربر در قالب نمودارهای مختلف استفاده میکند که در زیر نشان داده شده است.
این ابزار اطلاعات را به صورت لحظهای نمایش میدهد، به عنوان مثال، به کاربر نمایش میدهد که اطلاعات را به تفکیک روز یا ساعت دریافت کرده است. رابط کاربری Kibana بسیار کاربرپسند و درک آن برای مبتدیان بسیار آسان است.
چرا تجزیهوتحلیل لاگ اهمیت پیدا کرده است؟
در جهان رقابتی امروزی، حتی یکثانیه دانتایم و سرعت پایین عملکرد پایین اپلیکیشنها برای کسبوکارها پذیرفتنی نیست؛ چرا که مشکلات عملکردی میتواند به برند آسیب برساند و در برخی موارد، منجر به از دست دادن درآمد مستقیم شود. ازسوی دیگر رعایت نکردن استانداردهای کنترلی و نظارتی نیز میتواند بههمان میزان برای کسبوکارها خطرساز و زیانآور باشد و در برخی از مواقع حتی برای سازمانها میتواند جریمههای سنگین در پی داشته باشد.
برای اطمینان از در دسترس بودن، عملکرد مناسب و امنیت، مهندسان به دادههای متنوعی متکی هستند که اپلیکیشنها و زیرساختهای مربوط به این اپلیکشنها تولید میکنند. از این دادهها، لاگهای رخدادها یا متریکها و یا هردو. میتوان برای مانیتورینگ سیستمها و شناسایی و رفع باگها در زمان بروز مشکلات استفاده کرد.
لاگها در دنیای میکروسرویسها و کانتینرها
لاگها و ابزارهای تحلیلی مربوط به آنها چیزی جدیدی در دنیای نرمافزار نیستند و از قبل وجود داشتهاند. اما تغییری که در حال حاضر رخ داده است، تغییر معماری زیرساختهایی است که لاگها را تولید میکنند.
معماری نرمافزار به سمت میکروسرویسها، کانتینرها و ابزارهای ارکستراسیون زیرساختی رفته است که بر روی کلود قرار دارند. علاوه بر این، حجم عظیم دادههای تولید شده توسط این محیطها به طور مداوم در حال رشد است و این مساله در حد خود چالش محسوب میشود.
حالا روزگاری که یک مهندس میتوانست به سادگی SSH بزند و فایل لاگ را با دستور grep جستوجو کند، گذشته است. این کار در محیطهایی که شامل صدها کانتینر است و هر روز ترابایتها از دادههای لاگ تولید میشوند، تقریبا غیر ممکن است.
اینجاست که راه حلهای مدیریت و تجزیه و تحلیل متمرکز لاگ، مانند پکیج ELK، اهمیت پیدا میکنند. این راهحلها به مهندسان، از جمله DevOps، IT Operations یا SRE، امکان مشاهده دادههای مورد نیاز را میدهند و تضمین میکنند که برنامهها همیشه در دسترس هستند و عملکرد مناسبی دارند.
راهحلهای مدیریت و تجزیهوتحلیل لاگ مدرن، شامل قابلیتهای کلیدی زیر است:
- جمعآوری : قابلیت جمعآوری و ارسال لاگها از منابع دادهای مختلف.
- پردازش : قابلیت تبدیل پیامهای لاگ به دادههای معنادار برای تحلیل آسانتر.
- ذخیرهسازی : قابلیت ذخیرهسازی داده برای مدت زمان طولانی بهمنظور نظارت، تحلیل روند و استفاده در موارد موارد موردنیاز.
- تحلیل : قابلیت تجزیهوتحلیل داده با استفاده از کوئری زدن و بصریسازی و داشبورد بر روی آن.
ویژگیهای کیبانا
کیبانا امکانات زیر را به کاربران خود ارائه میدهد:
بصریسازی
کیبانا میتواند به روش های مختلف و متنوع، دادههای بسیاری را بهصورت ساده بصری کند. برخی از روشهای معمول شامل نمودار میلهای عمودی، نمودار میلهای افقی، نمودار دایرهای، نمودار خطی، نقشه حرارتی و غیره هستند.
داشبورد
بعد از اتمام فرایند بصریسازی،میتوان همه آنها را در یک صفحه، به نام داشبورد، قرار داد. مشاهده بخشهای مختلف بهصورت همزمان به شما ایدهای کلی و واضح از آنچه هست را میدهد.
ابزارهای توسعه (Dev Tools)
شما میتوانید با استفاده از ابزارهای توسعه با ایندکسها کار کنید. مبتدیان میتوانند با استفاده از ابزارهای توسعه، ایندکسهای دستی اضافه کنند و همچنین اطلاعات را اضافه، بهروزرسانی و حذف کنند و از ایندکسها برای بصریسازی استفاده کنند.
گزارشگیری
تمام دادههای نمایش داده شده در قالب داشبورد قابل تبدیل به گزارش در قالب CSV هستند. این گزارشها میتوانند در کد جاسازی شوند یا به اشتراک گذاشته شوند.
فیلترها و کوئریهای جستوجو
شما میتوانید از فیلترها و کوئریهای جستوجو برای دریافت جزئیات موردنیاز برای ورودی خاصی از داشبورد یا ابزار بصریسازی استفاده کنید.
افزونهها (پلاگینها)
توسعهدهندگان میتوانند از افزونههای طرف سوم استفاده کنند تا برخی آپشنهای جدید یا دیگر امکانات UI را در Kibana اضافه کنند.
نقشههای مختصاتی و منطقهای
برای آنکه فهمی نزدیک به واقعیت از دادهها داشته باشید، نقشههای مختصاتی و منطقهای در کیبانا این امکان را فراهم میکنند تا فرایند بصریسازی بر روی نقشه جغرافیایی انجام شود.
Timelion
تایملاین که با نام خط زمانی هم شناخته میشود، یک ابزار دیگر برای بصری سازی است که در اصل برای تحلیل دادههای مبتنی بر زمان استفاده میشود. برای کار با تایم لاین، باید از زبان اکسپرشن استفاده کنیم که به ما در اتصال به ایندکس کمک میکند . همچنین تایم لاین برای انجام محاسبات مختلف روی دادهها هم استفاده میشود تا نتایج مورد نیاز را به دست آوریم.
تایملاین بیشتر در مقایسه دادهها با دورههای قبلی، مانند هفتهها، ماهها و دورههای گذشته دیگر مفید است.
Canvas
canvas، یکی دیگر از ویژگیهای مهم کیباناست. این ویژگی در Kibana به کاربران این امکان را میدهد که دادههای خود را بهصورت مختلفی با ترکیبهای رنگ، شکل، متن، صفحات چندگانه و به صورت workpad نمایش دهند. به عبارت دیگر، Canvas در Kibana به کاربران اجازه میدهد تا فرایند بصریسازی دادههای خود را بهصورت سفارشیتر انجام دهند.
برای آشنایی بیشتر با ویژگیهای کیبانا میتوانید به سایت رسمی این ابزار مراجعه کنید.
چند مطالعه موردی
NetFlix
نتفلیکس بهطور گسترده از مجموعه ELK استفاده میکند. این شرکت از مجموعه ELK برای نظارت و تجزیه و تحلیل لاگهای امنیتی عملیات خدمات مشتری استفاده میکند. این ابزار به آنها این امکان را میدهد تا اسناد را از بیش از پانزده خوشه (cluster) که تقریباً ۸۰۰ نود (node) را تشکیل میدهند، فهرستبندی، ذخیره و جستوجو کنند.
LinkedIn از مجموعه ELK برای نظارت بر عملکرد و امنیت استفاده میکند. تیم IT این شرکت ELK را با Kafka یکپارچهسازی کرده است تا بتواند بهصورت بلادرنگ از لود خود پشتیبانی کند.
Tripwire
Tripwire شرکتی جهانی است که در حوزه امنیت اطلاعات در دنیای کامپیوتر کار میکند. این شرکت از مجموعه ELK برای پشتیبانی از تحلیل لاگهای بسته اطلاعاتی استفاده میکند.
Medium
مدیوم یک پلتفرم معروف برای انتشار بلاگ است. آنها از مجموعه ELK برای رفع مشکلات خود در سطح پروداکشن استفاده میکنند. این شرکت همچنین از ELK برای تشخیص هاتاسپاتهای DynamoDB استفاده میکند. علاوه بر این، با استفاده از این مجموعه، شرکت قادر است تا ۲۵ میلیون خواننده منحصر به فرد و هزاران پست منتشر شده در هر هفته را پشتیبانی کند.