Grafana یک پلتفرم مشاهدهپذیری است که از طریق تصویرسازیهای فوقالعاده به کاربران کمک میکند اطلاعات بیشتری از عملکرد و سلامت سیستم به دست آورند. Grafana یک پلتفرم تصویرسازی داده و مشاهدهپذیری مبتنی بر وب و Open Source است. این پلتفرم معروف است به اینکه میتواند تصویرسازی دادهی بسیار خوبی انجام دهد. Grafana به منابع یا ذخایر دادهی مختلفی ازجمله Elasticsearch ،Prometheus ،InfluxDB و بسیاری دیگر متصل میشود. دادههایی ازجمله معیارهای سنجش، Logها و Traceها را جمعآوری میکند و تصویرسازیها را انجام میدهد. ممکن است این نرمافزار از یک Agent استفاده کند تا با استفاده از خدماتی مثل Graphite، دادههایی را خارج یا Query کند.
با Grafana میتوان از دادههای جمعآوریشده، داشبوردهایی عملیاتی، نمودارها و گرافهایی را با قابلیت سفارشیسازی بالا ایجاد کرد. این داشبوردها میتوانند برای تجزیهوتحلیل و مانیتورینگ یا اشتراکگذاری با تیم مورداستفاده قرار بگیرند. Grafanaهمچنین یک سیستم مدیریت هشدار قدرتمند را فراهم میکند تا هشدارها ایجاد و تجمیع شوند.
Grafana چگونه کار میکند؟
نرمافزار Grafana از یک معماری سادهی Client/Server استفاده میکند، Client دادههایی را جمعآوری کرده و با استفاده از تکنولوژی مبتنی بر Agent، به سمت Grafana Cloud میفرستد. Grafana Cloud همچنین ممکن است دادهها را Query ،Pull و ذخیره نماید و در نهایت تصویرسازیهایی را انجام می دهد.
دادههای Time-Series یعنی معیارهای سنجش، Logها، Traceها از برنامههای کاربردی یا زیرساختهایی مثل Docker، Podهای Kubernetes، سرور Jenkins CI، Raspberry PI، VMها، دستگاههای IoT و غیره ایجاد میشوند. ممکن است Grafana از Agentهای Grafana استفاده کند که مستقیماً روی هدف مانیتورشده نصب میشوند تا دادههایی را جمعآوری و ارسال کنند. همچنین ممکن است Grafana بدون Agentها با منابع دادهی Third-Party دیگر مثل Prometheus و Graphite، Grafana Logs با Loki و Grafana Traces با Tempo یکپارچهسازی شود.
برای یکپارچهسازی با منبع دادهی موجود، میتوان از افزونههای Grafana استفاده کرد. این منابع داده شامل هر چیزی از PostGre ،Azureb ،Datadog ،Splunk ،Zabbix و غیره از طریق Grafana API میباشند.
Grafana Server /Grafana Cloud
سرور Grafana Backend داده را جمعآوری کرده و سپس آن را تجمیع، Query یا ذخیره میکند. Grafana Frontend تصویرسازیهایی را از دادههای پردازش شده تولید میکند. در Grafana Cloud، میتوان طوری داشبوردهای Grafana را ایجاد و تنظیم کرد که مناسب نیازهای مانیتورینگ باشند. در اینجا همچنین میتوان هشدارها و قواعدی را تنظیم کرد تا هرگونه خرابی یا Bottleneck در عملکرد اطلاعرسانی شود.
انواع دادهی تحت پشتیبانی Grafana
Grafana میتواند انواع داده را جمع آوری بر اساس معیارهای سنجش Logها یا Traceها، Query یا ذخیره نماید. معیارهای سنجش میتوانند هر چیزی از استفادهی CPU، دما، پهنای باند، Storage و غیره باشند. دادهی Log معمولاً از یک فرمت استاندارد استفاده میکند، مثلاً فرمت پیام Syslog. Traceها، دادههای Captureشدهای هستند که نشان میدهند اجزای یک سیستم چگونه عملیات میکنند، اجرا میشوند و کار میکنند. در ادامه مثالی از نحوهی نمایش Traceها توسط Grafana نمایش داده شده است.
بررسی کامل ویژگیهای Grafana
- افزونههای Grafana – Grafana فهرست گستردهای از افزونهها را فراهم میکند. این فهرست منابع دادهی منظمشده شامل ورود داده از سیستمهای خارجی، برنامههای کاربردی lمانیتورینگ سفارشی و آمادهبهکار و پنلها برای اضافه کردن تصویرسازیهای جدید می باشد.
- مانیتورینگ مبتنی بر Agent – Grafana با یک گردآورنده Telemetry Agent عرضه میشود که برای ارسال معیارهای سنجش، Logها و Traceها به پلتفرم مشاهدهپذیری Grafana مبتنی بر کلود طراحی شده است.
- هشدارهای Grafana – Grafana برای ایجاد و مدیریت تمام هشدارهای جمعشده یک رابط کاربری واحد را فراهم میکند. Alerts Manager به کاربران این امکان را میدهد که قواعد هشداردهی بسازند، قواعد را ارزیابی کنند و خروجیها را یکپارچهسازی نمایند.
- گزارشها – Grafana بهطور خودکار از داشبوردها گزارشهای مبتنی بر PDF را تولید میکند. میتوان گزارشها را طوری پیکربندی کرد که به ایمیلهای بهخصوصی ارسال شوند. این ویژگی فقط در برنامههای Grafana Pro، Advanced و Enterprise قابلدسترسی است.
- داشبوردها با قابلیت سفارشیسازی – میتوان داشبوردهای شخصیسازیشدهای را با Queryهای کارآمد و ویژگیهایی مناسب برای صفحه ایجاد کرد. همچنین میتوان داشبوردها و پنلها را با کاربران دیگر به اشتراک گذاشت یا آنها را روی وب منتشر کرد.
- میزان استفاده – میتوان به درک بهتری از نحوهی استفاده از سیستم و افرادی که از آن استفاده میکنند رسید. این ویژگی دادههای پیش از پردازش را جمعآوری میکند و آنها را در داشبورد به نمایش میگذارد. این ویژگی فقط در Grafana Advanced قابلدسترسی است.
- امنیت و نظارت – Grafana Cloud تمام برنامهها ویژگیهایی امنیتی مثل رابط کاربری مدیریتی، تطبیقپذیری SOC2 ،ISO 27001 ،PCI ،GDPR ،CSA و HIPAA و مدیریت کاربران و اجازهها را فراهم می نماید. Grafana Pro و Enterprise ویژگیهای امنیتی قدرتمندتری را ارائه میدهند.
بیشتر بخوانید: مجموعه ویدیوی آموزش ضوابط SOC 2: تاثیر الزامات قراردادی روی اطلاعات محرمانه – قسمت پنجاهودوم
ویدیوهای بیشتر درباره SOC 2
- تصویرسازیهای پیشرفت و قدرتمند – Grafana تصویرسازیهای بسیاری را فراهم میکند تا از کاربردهای مختلف پشتیبانی نماید. این راهکار از ابتدا با داشبوردها و افزونههای مختلفی عرضه میشود تا تصویرسازیها و مانیتورهای مدنظر افراد ایجاد گردد.
- Load testing با Grafana K6 – Load testing به کاربران دادههایی با کیفیت بالا از میزان استفاده میدهد تا قبل از پخش زنده مشاهده شوند. این قابلیت شبیهسازی میکند که رفتارهای واقعی چه تأثیری روی سیستم میگذارند تا بتوان آن را بهبود بخشید.
- یادگیری ماشینی Grafana – نظارت روی وضعیت کنونی یا پیشبینی وضعیت آیندهی تمام سیستمها را انجام میدهد. Grafana ML به کاربران این توانایی را میدهد که هشدارهایی تطبیقپذیر بسازند و برای ظرفیت برنامهریزی کنند – Grafana ML فقط در برنامههای Pro و Advanced قابلدسترسی است.
- Grafana On-Call یک ابزار مدیریت On-Call جدید. این راهکار جریانهای کاری و رابطهای کاربری سادهای را فراهم میکند تا کار سخت در مدیریت On-Call کاهش پیدا کند.
بررسی رابط کاربری Grafana Cloud
در زمان شروع، Grafana فهرستی از یکپارچهسازیها را فراهم میکند، همانطور که در اسکرینشات زیر نمایش داده شده است. اگر کاربر یک منبع دادهی موجود داشته باشد، میتواند آن را انتخاب کند. اما همچنین میتوان از این مرحله گذشت و در آینده پیکربندیاش را انجام داد. وقتی که کاربران با Grafana آشنا شوند، میتوانند برگردند و داشبورد خود را پیکربندی کنند. نکته مورد توجه این است که استفاده از رابط کاربری Grafana Cloud بسیار ساده می باشد.
- منوی بالا دسترسی به گزینههای مدیریتی را فراهم میکند، ازجمله Stackها، کاربران، API Keyها، داشبورد Billing/کاربرد، مدیریت اشتراک یا داشبورد پیشفرض.
- منوی سمت راست به کاربر امکان ساخت، مدیریت و سفارشیسازی داشبوردها و همچنین ساخت هشدارها و گزارشها را میدهد. همچنین میتوان از این منو به Grafana ML ،On-Call، مانیتورینگ مصنوعی یا تنظیمات اولیه دسترسی پیدا کرد.
بررسی نسخهی کنونی Grafana .Grafana Cloud در حال حاضر روی نسخهی v8.3.5 است. برای بررسی نسخه میتوان روی آیکون «?» و «Help» در پایین منوی سمت چپ کلیک کرد.
یکپارچهسازی یک منبع معیارهای سنجی داده
اولین قدم برای شروع کار با Grafana، اتصال یک منبع داده مثل دیتابیس Prometheus با Grafana است. برای انجام این کار، باید منبع دادهی خارجی Grafana و روش Query را پیکربندی کرد.
- باید روی آیکون configuration در پایین منوی سمت راست رفته روی گزینه Add data source کلیک کرد.
- سپس باید منبع داده را انتخاب کرد.
- اگر کاربر نتواند منبع دادهی بهخصوص خود را پیدا کند، میتواند روی وبسایت Third-Party به دنبال افزونهها بگردد.
- در این مورد، ما Prometheus را اضافه میکنیم. وقتی که پنجرهی زیر نمایان شد، باید جزئیات سرور شامل URL، احراز هویت و غیره را پیکربندی کرد.
- وقتی که منبع دادهی یک معیار سنجش با موفقیت اضافه شود، باید به آیکون Explore برویم.
- گزینهی Explore تمام معیارهای سنجش را نشان میدهد. از این منو، میتوان Queryهای خود را پیکربندی کرده و شروع کرد به تصویرسازی معیارهای سنجش خود.
- وقتی که داشبورد شخصیسازی شد، میتوان معیارهای سنجش را بهصورت Real-Time مشاهده کرد، همانطور که در Live Grafana Demo نمایش داده میشوند.
مزایا و معایب Grafana
با اینکه Grafana میتواند مثل هر پلتفرم مشاهدهپذیری دیگری معیارهای سنجش را جمعآوری و ذخیره کند، نقاط قوت آن در داشبوردهای شخصیسازی و تصویرسازی آن هستند.
مزایا:
- بهسادگی با منابع دادهی Prometheus و Graphite یکپارچهسازی میگردند.
- افزونههای زیادی برای تقریباً هر Storage Array یا سیستمعاملی قابلدسترسی هستند.
- رایگان و متنباز است. اگر کاربر به امکانات بیشتری نیاز داشته باشد، میتواند از برنامهی Pro یا Advanced استفاده کند.
- نرمافزار با سفارشیسازی بالا. هشدارها، منابع داده، داشبوردها، اطلاعرسانیها و غیره با قابلیت سفارشیسازی.
- Grafana پادشاه تصویرسازی داده است. معیارهایی را که از هر منبع دادهای میرسند، تبدیل به نمودار میکند
- و هشدارها و اطلاعرسانیها را به کانالهای همکاری میفرستد.
معایب:
- ویژگیهای Grafana با قابلیت سفارشیسازی بالا باعث میشوند در ابتدا بسیار چالشبرانگیز و زمانبر باشد.
- بدون ذخیرهی داده. اگر کاربر بخواهد دادههای پیشین خود را ردیابی کند، به یک راهکار Storage که Third-Party باشد نیاز پیدا میکند.
- کاربر باید در زبانهای برنامهنویسی مثل JSON و SQL ماهر باشد تا بیشترین استفاده را از Grafana ببرد.