نظارت بر کارگزار MQTT با Prometheus و Grafana

ساخت وبلاگ

Monitoring MQTT broker with Prometheus and Grafana

EMQX مقیاس پذیرترین و محبوب ترین کارگزار منبع باز MQTT با عملکرد بالا است که 100 میلیون دستگاه اینترنت اشیا را در 1 خوشه با تأخیر 1 میلی ثانیه به هم متصل می کند. می تواند میلیون ها پیام MQTT را در ثانیه جابجا و پردازش کند. EMQX 5. 0 در سناریوهای آزمایشی برای مقیاس 100 میلیون اتصال همزمان دستگاه تأیید شده است و اولین محصولی است که QUIC را به MQTT معرفی می کند.

هنگام استفاده از EMQX، لازم است کاربران، اپراتورها و توسعه دهندگان به موقع وضعیت اجرا و معیارهای آن را برای یافتن مشکلات و مقابله با آنها رصد و مشاهده کنند. علاوه بر استفاده از داشبورد داخلی، EMQX همچنین APIهایی را برای ادغام داده های نظارتی در پلتفرم های نظارت شخص ثالث برای نظارت بر وضعیت در حال اجرا EMQX، از جمله وضعیت گره خوشه، اتصالات، اشتراک ها و موضوعات، توان عملیاتی پیام و سایر معیارهای مرتبط ارائه می کند..

استفاده از سیستم های نظارت شخص ثالث می تواند EMQX را راحت تر نظارت کند. مثلا:

  • ادغام داده های نظارتی EMQX با داده های نظارتی سایر سیستم ها برای تشکیل یک سیستم نظارتی کامل، مانند اطلاعات مربوط به میزبان سرور.
  • استفاده از نمودارهای نظارتی غنی تر برای نمایش شهودی داده های نظارت، مانند استفاده از Grafana.
  • استفاده از روش های هشدار غنی تر برای یافتن به موقع مشکلات، مانند استفاده از Alertmanager Prometheus.

در این مقاله نحوه ادغام داده های مانیتورینگ EMQX 5. 0 در Prometheus، استفاده از Grafana برای نمایش داده های مانیتورینگ EMQX و در نهایت ساخت یک سیستم مانیتورینگ ساده EMQX را معرفی می کنیم.

Prometheus یک راه حل نظارت و هشدار منبع باز است که توسط SoundCloud توسعه یافته است که از یک مدل داده چند بعدی، زبان جستجوی انعطاف پذیر، مدیریت هشدار قدرتمند و سایر ویژگی ها پشتیبانی می کند. Grafana یک ابزار تجسم داده منبع باز است که به چندین منبع داده از جمله Prometheus کمک می کند.

آماده سازی

قبل از شروع باید محیط اجرای زیر را آماده کنیم، EMQX 5. 0 را نصب و اجرا کنیم، بسته نصبی Prometheus را آماده کنیم و Grafana را نصب و راه اندازی کنیم. همچنین کاربران می توانند بسته نصبی یا باینری را با توجه به آدرس دانلود ارائه شده در مقاله دانلود کرده و خودشان آن را نصب کنند. در مثال از Docker برای نصب و فعال سازی استفاده می کنیم.

EMQX 5. 0 را نصب کنید

روش زیر برای نصب و راه اندازی سریع EMQX 5. 0 با استفاده از Docker آمده است:

docker ru n-d --name emq x-p 1883:188 3-p 8083:808 3-p 8883:888 3-p 8084:808 4-p 18083:18083 emqx/emqx:جدیدترین 

علاوه بر استفاده از Docker برای نصب EMQX ، می توانیم از بسته های RPM یا DEB برای نصب آن نیز استفاده کنیم. برای روش های خاص نصب ، لطفاً به راهنمای نصب EMQX 5. 0 مراجعه کنید.

پس از نصب ، می توانیم http: // localhost: 18083 را برای دسترسی به داشبورد EMQX باز کنیم تا وضعیت در حال اجرا را مشاهده کنیم. اگر بتوانید به آن دسترسی پیدا کنید ، معمولاً EMQX با موفقیت نصب شده است.

پرومتئوس را نصب کنید

به همین روش ، ما از Docker برای نصب سریع و استفاده از پرومتئوس در مثال استفاده خواهیم کرد زیرا هنوز شروع به پیکربندی پرومتئوس نکرده ایم تا بتوانیم یک تصویر داکر ارائه شده توسط پرومتئوس را بکشیم.

Docker Pull Prom/Prometheus 

زیرا پس از نصب ، ما باید یک فایل پیکربندی Prometheus را پیکربندی کنیم تا منبع داده پرومتئوس ، قوانین هشدار و سایر پیکربندی های قراضه مشخص شود. بنابراین ، در آموزش بعد از مقاله ، پس از اتمام پیکربندی ، پرونده پیکربندی Prometheus را پیکربندی خواهیم کرد و سپس با نصب فایل پیکربندی روی ظرف برای اجرای آن ، آن را شروع می کنیم.

کاربران همچنین می توانند برای بارگیری و استفاده از بسته باینری برای نصب و اجرای Prometheus به سند Prometheus مراجعه کنند.

گرافانا را نصب کنید

در زیر راه نصب و شروع سریع گرافانا با استفاده از Docker آورده شده است:

docker ru n-d -name grafan a-p 3000: 3000 grafana/grafan a-oss 

کاربران همچنین می توانند برای بارگیری و استفاده از بسته باینری برای نصب و اجرای Grafana به سند Grafana مراجعه کنند.

پس از نصب گرافانا ، می توانیم http: // localhost: 3000 را برای دسترسی به گرافانا باز کنیم. اگر معمولاً بتوانیم به صفحه ورود به سیستم گرافانا دسترسی پیدا کنیم ، این بدان معنی است که گرافانا با موفقیت شروع به کار کرد.

صادرکننده گره را نصب کنید

اگر کاربران بخواهند اطلاعات سیستم ماشین های فیزیکی یا VM را کنترل کنند ، صادر کننده گره را نصب کنید. صادرکننده گره داده های نظارت بر سرور ، مانند پردازنده ، حافظه ، دیسک ، شبکه و غیره را جمع آوری می کند.

توجه: صادرکننده گره فقط از سیستم های *nix پشتیبانی می کند

توصیه نمی شود از Docker برای نصب صادر کننده گره در این مقاله استفاده کنید. برای نصب و استفاده از صادر کننده گره ، لطفاً به سند رسمی Node Exporter مراجعه کنید. پس از نصب ، می توانیم از طریق http: // localhost: 9100/معیارها به داده های نظارت میزبان سیستم دسترسی پیدا کنیم. اگر بتوانیم به داده های مانیتورینگ میزبان سیستم دسترسی پیدا کنیم ، این بدان معنی است که صادر کننده گره با موفقیت نصب شده است.

پیکربندی پرومتئوس

هنگامی که کار آماده سازی را به پایان رساندیم ، نیاز به پیکربندی پرومتئوس داشتیم تا به طور کلی بتواند داده های مانیتورینگ EMQX را جمع آوری کند.

مجموعه داده های پرومتئوس را پیکربندی کنید

Prometheus از فایل پیکربندی برای مشخص کردن هدف جمع آوری داده ها استفاده می کند. مسیر فایل پیکربندی پیش فرض /etc/prometheus/prometheus. yml است که می تواند توسط پارامت ر-config. file تنظیم شود.

EMQX 5. 0 یک API HTTP را برای دریافت داده های نظارت بر فرمت Prometheus -/API/V5/Prometheus/آمار فراهم می کند ، که نیازی به اطلاعات تأیید اعتبار ندارد. ما فقط باید آن را در پرونده پیکربندی به Metrics_Path پیکربندی کنیم.

برای استفاده از صادرکننده گره برای به دست آوردن داده های مانیتورینگ میزبان ، ما همچنین باید آدرس سرویس صادرکننده گره را در پرونده پیکربندی به Static_configs پیکربندی کنیم.

در پرونده پیکربندی Prometheus ، هدف جمع آوری داده ها را از طریق scrape_configs مشخص کنید. در زیر مثال کامل پرونده پیکربندی Prometheus مثال:

توجه: هنگام استفاده از فایل پیکربندی ، باید آدرس IP را در اهداف هر سرویس با آدرس IP واقعی خدماتی که مستقر کرده اید جایگزین کنید. اگر از استقرار محلی استفاده می کنید ، می توانید این یادآوری را نادیده بگیرید.

# prometheus. yaml Global: scrape_interval: 10S # فاصله خراش پیش فرض هر 10 ثانیه است. realuation_interval: 10S # فاصله ارزیابی پیش فرض هر 10 ثانیه است.# در این دستگاه ، هر سری زمانی به طور پیش فرض صادر می شود. Exteal_Labels: مانیتور: 'EMQX-MONITOR' # بار یک بار و به صورت دوره ای آنها را با توجه به "ارزیابی_منتال" جهانی ارزیابی کنید. Rule_files: # - "first. rules" # - "second. rules" - "/etc/prometheus/rules/*. rules" # پیکربندی کشش داده scrape_configs: # emqx نظارت - job_name: 'emqx' metrics_path:/api/v55/prometheus/stats scrape_interval: 5s honor_labels: true static_configs: # emqx ip نقطه پایان - اهداف: [127. 0. 0. 1:18083] - job_name: 'nod e-exporter' scrape_interval: 5S static_configs: # node-exporter - end e-exporter. 127. 0. 0. 1:9100 '] برچسب ها: نمونه: داشبورد-محلی 

در پیکربندی فوق ، job_name نام کار جمع آوری داده ها است ، static_configs هدف جمع آوری داده ها است ، اهداف آدرس جمع آوری داده های هدف است و 127. 0. 1:18083 نقطه پایانی سرویس API EMQX 5. 0 است.

در نهایت ، ما محتوای پرونده پیکربندی فوق را به عنوان prometheus. yaml ذخیره می کنیم و آن را در/etc/prometheus/فهرست کپی می کنیم یا آن را در مسیر سفارشی که برای نگه داشتن پرونده لازم است ، ذخیره می کنیم. در این مرحله ، ما پیکربندی ساده پرومتئوس را تکمیل کرده ایم.

پرومتئوس را شروع کنید

پس از تکمیل پیکربندی پرومتئوس ، می توانیم با استفاده از پرونده ، سرویس پرومتئوس را شروع کنیم. اگر تصویر Prometheus را با استفاده از Docker بارگیری کرده اید ، می توانید Prometheus را با دستور زیر شروع کنید:

docker ru n-d -name prometheu s-p 9090: 909 0-v /path/to/your/prometheus. yaml:/etc/prometheus. yaml prom/prometheu s-config. file =/etc/prometheus/promethehus. yamllamll 

اگر پرومتئوس را بر اساس روش های دیگر نصب کنید ، می توانید هنگام اجرای پرومتئوس مسیر فایل پیکربندی را مشخص کنید: به عنوان مثال:

./prometheu s-config. file = prometheus. yml 

توجه: هنگام استفاده از فایل پیکربندی ، باید با مسیر واقعی که در آن پرونده پیکربندی پرومتئوس را ذخیره می کنید ، جایگزین/path/to/your/prometheus. yaml کنید.

در صورت موفقیت ، می توانید با باز کردن http: // localhost: 9090 به داشبورد پرومتئوس دسترسی پیدا کنید. از طریق داشبورد ، می توانید وضعیت در حال اجرا پرومتئوس را مشاهده کرده و با وارد کردن EMQX ، داده های نظارت EMQX را جستجو کنید. اگر داده ها معمولاً نمایش داده شوند ، به این معنی است که پرومتئوس با موفقیت داده های نظارت EMQX را با موفقیت شروع و جمع آوری کرده است.

درباره Pushgateway

علاوه بر مشخص کردن معیارهای جمع آوری داده ها با استفاده از پرونده پیکربندی API حاوی EMQX ، EMQX همچنین از استفاده از PushGateway برای جمع آوری معیارهای داده پشتیبانی می کند.

Pushgateway مؤلفه ای از پرومتئوس است که برای ذخیره معیارهای داده به طور موقت استفاده می شود ، و سپس پرومتئوس معیارهای داده را از Pushgateway بیرون می کشد.

ما نیازی به استفاده از سرویس PushGateway نداریم زیرا EMQX از دریافت معیارهای داده از طریق API پشتیبانی می کند. فرض کنید کورکورانه از Pushgateway برای دریافت داده استفاده می کنید. در این حالت ، شما ممکن است با برخی از مشکلات روبرو شوید ، از جمله: وقتی Pushgateway چندین مورد را کنترل می کند ، Pushgateway به یک نقطه شکست تبدیل می شود ، Pushgateway سری خود را دور نمی کند یا حذف نمی شود و همچنان در معرض آن در پرومتئوس قرار می گیرد و غیره.

اما در برخی موارد ، ما ممکن است برای جمع آوری معیارهای داده نیاز به استفاده از Pushgateway داشته باشیم.

به عنوان مثال: هنگامی که سرویس EMQX در ظروف Docker یا خوشه های Kubeetes اجرا می شود ، می توانیم به جای قرار دادن API EMQX در شبکه خارجی ، از Pushgateway برای جمع آوری معیارهای داده استفاده کنیم. و معمولاً ، تنها مورد استفاده معتبر برای Pushgateway ، گرفتن نتایج مشاغل دسته ای در سطح خدمات است. برای مشاهده و اطلاعات بیشتر در مورد زمان استفاده از PushGateway کلیک کنید.

استفاده از Docker برای نصب سرویس PushGateway:

docker ru n-d -name pushgatewa y-p 9091: 9091 prom/pushgateway 

برای اطلاعات بیشتر در مورد نصب و استفاده از PushGateway ، لطفاً به سند نصب PushGateway مراجعه کنید. در این مرحله ، ما می توانیم توسط http: // localhost: 9091 به داشبورد Pushgateway دسترسی پیدا کنیم.

EMQX یک API را برای پیکربندی سرویس Pushgateway فراهم می کند ، که می تواند معیارهای داده EMQX را از طریق پیکربندی به آدرس سرویس PushGateway گزارش دهد و در نهایت توسط پرومتئوس از Pushgateway کشیده شود. در عین حال ، می توانید آدرس سرویس PushGateway را مستقیماً در داشبورد EMQX پیکربندی کنید ، وارد اتمام شوید و بر روی بروزرسانی کلیک کنید.

در استفاده از PushGateway ، باید پیکربندی زیر را به بخش Scrape_Configs از پرونده پیکربندی Prometheus اضافه کنید:

توجه: در پیکربندی ، اهداف باید با نقطه پایانی سرویس PushGateway شما جایگزین شوند.

# نظارت بر PushGateway - job_name: 'pushgateway' scrape_interval: 5s honor_labels: true static_configs: # pushgateway ip نقطه پایانی - اهداف: ['127. 0. 0. 1:9091'] 

پس از تکمیل پیکربندی ، می توانید سرویس Prometheus را با استفاده از فایل پیکربندی به همان روشی که عملکرد فوق برای ایجاد پرومتئوس ایجاد می کنید ، شروع کنید. این پیکربندی مانیتورینگ EMQX را تکمیل می کند.

گرافانا را پیکربندی کنید

پس از تکمیل پیکربندی استفاده از پرومتئوس برای جمع آوری معیارهای داده EMQX ، می توانیم از گرافانا برای تجسم نظارت بر داده های متریک EMQX استفاده کنیم. در مراحل فوق ، ما با موفقیت کنسول وب گرافانا را باز کردیم. برای اولین بار با استفاده از گرافانا ، حساب پیش فرض و رمز عبور مدیر هستند. پس از ورود به سیستم با موفقیت ، می توانیم منبع داده را اضافه کنیم.

پرومتئوس به عنوان منبع داده

با استفاده از گرافانا ، می توانید از پرومتئوس به عنوان منبع داده استفاده کنید. مراحل اضافه کردن پرومتئوس به عنوان منبع داده به شرح زیر است:

  1. روی پیکربندی در سمت چپ کلیک کنید ، سپس روی منابع داده کلیک کنید تا صفحه پیکربندی منبع داده را وارد کنید.
  2. روی افزودن منبع داده کلیک کنید و Prometheus را انتخاب کنید.
  3. در پیکربندی HTTP ، آدرس سرویس Prometheus را وارد کنید ، به عنوان مثال ، http://127. 0. 0. 1:9090 ؛
  4. در آخر ، روی ذخیره و تست کلیک کنید. اگر پیکربندی صحیح باشد ، منبع داده در حال کار است ، به این معنی که پیکربندی موفقیت آمیز است.

پس از اتمام پیکربندی ، می توانیم از پرومتئوس به عنوان منبع داده برای دریافت داده های نظارت در گرافانا استفاده کنیم. در مرحله بعد ، ما می توانیم به اضافه کردن الگوی داشبورد برای تجسم نظارت بر معیارهای داده EMQX ادامه دهیم. همچنین می توانید به صورت دستی داشبورد ایجاد کرده و مطابق نیاز خود نمودارها را اضافه کنید.

وارد کردن داشبورد

ما یک الگوی پیش فرض داشبورد Grafana را ارائه می دهیم که می توانید مستقیماً به گرافانا وارد کنید و منبع داده Prometheus تازه ایجاد شده را انتخاب کنید. پس از موفقیت در واردات ، پانل داشبورد را باز کنید و می توانید داده های مانیتورینگ EMQX را مشاهده کنید.

می توانید الگوهای پیش فرض داشبورد را از EMQX بارگیری کنید |داشبورد Grafana ، یا می توانید بر روی دکمه بارگیری در صفحه راهنما صفحه پیکربندی ادغام مانیتورینگ Dashboard EMQX کلیک کنید.

مراحل واردات خاص به شرح زیر است:

img

 

  1. برای وارد کردن صفحه برای وارد کردن داشبورد ، روی واردات در سمت چپ کلیک کنید.
  2. روی بارگذاری فایل JSON کلیک کنید و الگوی داشبورد را که تازه بارگیری شده است انتخاب کنید ، یا مستقیماً وارد EMQX |آدرس آزمایشگاه گرافانا در کادر ورودی تحت ستون واردات از طریق ستون Grafana. com ؛
  3. روی Load کلیک کنید و منبع داده Prometheus تازه ایجاد شده را انتخاب کرده و سپس برای وارد کردن الگوی داشبورد روی واردات کلیک کنید.

 

پس از وارد کردن الگوی داشبورد ، می توانید داده های مانیتورینگ EMQX را در پانل مانیتورینگ مشاهده کنید ، همانطور که در شکل زیر نشان داده شده است:

توجه: به طور پیش فرض ، این الگوی داده های متریک کل خوشه EMQX را کنترل می کند.

  • عمومی ، از جمله تعداد اتصالات ، موضوعات و اشتراک ها.
  • پیام ها شامل تعداد پیام های منتشر شده و دریافت شده و شماره منتشر شده و دریافت شده در هر ثانیه است.
  • سیستم ، از جمله تعداد فرآیندها ، حافظه CPU و Erlang VM و غیره
  • بسته ، از جمله تعداد جعبه های متصل ، منتشر شده ، دریافت شده و غیره

کاربران همچنین می توانند داشبورد را بر اساس الگوی پیش فرض سفارشی کنند ، معیارهای خود را اضافه کنند یا سبک نمودار را تغییر دهند و غیره. برای مراحل خاص عمل ، لطفاً به سند رسمی گرافانا مراجعه کنید.

نحوه پیکربندی در داشبورد EMQX

The EMQX version used in this article is 5.0.11. You can also get more monitoring integration operation information from this version by clicking the "Help" button on the Configuration > Monitoring >صفحه ادغام در داشبورد EMQX.

در صفحه راهنما ، فقط باید خدمات پرومتئوس و گرافانا را مطابق با مرحله مرحله نصب کنید و سپس برخی از اطلاعات پیکربندی حیاتی را در موارد پیکربندی پر کنید.

مانند نقطه پایانی EMQX ، API برای به دست آوردن داده های متریک و غیره. روی دکمه تولید کلیک کنید تا به طور خودکار فایل پیکربندی را بارگیری و بارگیری کنید و در آخر ، می توانید الگوی پیش فرض داشبورد Grafana را بارگیری کنید.

به همین ترتیب ، می توان کمک را به دو حالت پیکربندی تقسیم کرد: پیش فرض و با استفاده از PushGateway. در حالت پیکربندی با استفاده از PushGateWay ، می توانید سوئیچ را در صفحه باز کنید ، آدرس PushGateway و زمان گزارش داده ها را وارد کنید و برای تکمیل پیکربندی پس از صرفه جویی ، روی ذخیره کلیک کنید.

برای اطلاعات بیشتر در مورد پیکربندی ادغام پرومتئوس در داشبورد ، می توانید به سند ادغام نظارت بر پیکربندی داشبورد EMQX مراجعه کنید.

نتیجه

در این مقاله به طور خلاصه نحوه استفاده از پرومتئوس برای جمع آوری معیارهای داده EMQX و سپس استفاده از گرافانا برای تجسم نظارت بر معیارهای داده EMQX ارائه شده است. بعد از EMQX 5. 0. 11 ، می توانید با کلیک بر روی دکمه "راهنما" در صفحه ادغام در داشبورد EMQX ، اطلاعات عملکرد ادغام بیشتر را نیز دریافت کنید.

با خواندن سند معیارها و آمار ما ، می توانید در مورد معیارهای داده ای که می توانید پرس و جو کنید اطلاعات بیشتری کسب کنید.

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

EMQX Cloud را به صورت رایگان امتحان کنید یک سرویس MQTT کاملاً مدیریت شده برای IoT

Shifan Yu

شیفان یو

مهندس نرم افزار EMQX ، مسئول توسعه جلوی EMQX ، همچنین توسعه دهنده و نگهدارنده MQTT X است.

استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید

برچسب : نویسنده : توران میرهادی بازدید : <-PostHit-> تاريخ : چهارشنبه 18 مرداد 1402 ساعت: 11:09