آنچه باید نظارت شود

Edge for Private Cloud نسخه ۴.۱۸.۰۱

به‌طور کلی در راه‌اندازی تولید، لازم است سازوکارهای نظارت در استقرار Apigee Edge برای Private Cloud فعال شود. این تکنیک‌های نظارت به سرپرستان (یا اپراتورهای) شبکه درباره خطا یا خرابی هشدار می‌دهند. هر خطای تولیدشده به‌عنوان هشدار در Apigee Edge گزارش می‌شود. برای اطلاعات بیشتر درباره هشدارها، به روال‌های مطلوب نظارت مراجعه کنید.

برای سهولت، مؤلفه‌های Apigee عمدتاً به دو دسته طبقه‌بندی می‌شوند:

  • سرویس‌های سرور Java مختص Apigee – این سرویس‌ها شامل Management Server،‏ Message Processor،‏ Qpid Server، و Postgres Server می‌شود.
  • سرویس‌های شخص ثالث – این سرویس‌ها شامل Nginx Router،‏ Apache Cassandra،‏ Apache ZooKeeper،‏ OpenLDAP، پایگاه داده PostgreSQL، و Qpid می‌شود.

در استقرار درون‌محل Apigee Edge، جدول زیر نگاهی سریع به پارامترهایی که می‌توانید نظارت کنید ارائه می‌دهد:

عنصر

بررسی‌های سیستم

آمار سطح پردازش

بررسی‌های سطح API

بررسی‌های جریان پیام

مختص مؤلفه

سرویس‌های جاوا مختص Apigee

سرور مدیریت

؟

؟

؟

پردازشگر پیام

؟

؟

؟

؟

سرور Qpid

؟

؟

؟

سرور Postgres

؟

؟

؟

سرویس‌های طرف سوم

Apache Cassandra

؟

؟

Apache ZooKeeper

؟

؟

OpenLDAP

؟

؟

پایگاه داده PostgreSQL

؟

؟

Qpid

؟

؟

Nginx Router

؟

؟

؟

به‌طور کلی، پس‌از نصب Apigee Edge، می‌توانید کارهای پایش زیر را برای پیگیری عملکرد نصب Apigee Edge برای Private Cloud انجام دهید.

بررسی‌های وضعیت سیستم

بسیار مهم است که پارامترهای سلامت سیستم مانند استفاده از CPU، استفاده از حافظه، و اتصال درگاه در سطح بالاتری اندازه‌گیری شود. می‌توانید پارامترهای زیر را برای دریافت اصول اولیه سلامت سیستم نظارت کنید.

  • استفاده از CPU – آمار پایه (کاربر/سیستم/انتظار ورودی-خروجی/بیکار) را درباره استفاده از CPU مشخص می‌کند. برای مثال، کل واحد پردازش مرکزی استفاده‌شده توسط سیستم.
  • حافظه آزاد/استفاده‌شده – میزان استفاده از حافظه سیستم را برحسب بایت مشخص می‌کند. برای مثال، حافظه فیزیکی استفاده‌شده توسط سیستم.
  • استفاده از فضای دیسک – اطلاعات سیستم فایل را براساس استفاده فعلی از دیسک مشخص می‌کند. برای مثال، فضای دیسک سخت که توسط سیستم استفاده می‌شود.
  • میانگین بار – تعداد فرایندهای منتظر برای اجرا را مشخص می‌کند.
  • آمار شبکه – بسته‌ها و/یا بایت‌های شبکه ارسال و دریافت‌شده، به‌همراه خطاهای ارسال درباره مؤلفه‌ای مشخص.

بررسی‌های فرایند/برنامه

در سطح فرایند، می‌توانید اطلاعات مهمی درباره همه فرایندهایی که درحال اجرا هستند مشاهده کنید. برای مثال، این اطلاعات شامل آمار استفاده از حافظه و CPU است که یک فرایند یا برنامه از آن استفاده می‌کند. برای فرایندهایی مثل qpidd،‏ postgres postmaster،‏ java، و غیره، می‌توانید موارد زیر را پایش کنید:

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

بررسی‌های سطح میانای برنامه‌سازی کاربردی

در سطح API، می‌توانید نظارت کنید که آیا سرور برای فراخوانی‌های API پرکاربرد که توسط Apigee پروکسی شده‌اند، فعال و درحال اجرا است یا نه. برای مثال، می‌توانید با فراخوانی فرمان cURL زیر، بررسی میانای برنامه‌سازی کاربردی را در «سرور مدیریت»، «رهیاب»، و «پردازشگر پیام» انجام دهید:

curl http://<host>:<port>/v1/servers/self/up

که در آن <host> نشانی IP مؤلفه Apigee Edge است. شماره <port> مختص هر مؤلفه Edge است. برای مثال:

سرور مدیریت: ۸۰۸۰

  • رهیاب: ۸۰۸۱
  • پردازشگر پیام: ۸۰۸۲
  • و غیره.

برای اطلاعات درباره اجرای این فرمان برای هر مؤلفه، بخش‌های جداگانه زیر را ببینید

این فراخوانی «درست» و «نادرست» را برمی‌گرداند. برای دریافت بهترین نتایج، می‌توانید فراخوانی‌های میانای برنامه‌سازی کاربردی را مستقیماً در پس‌بک (که نرم‌افزار Apigee با آن تعامل دارد) صادر کنید تا به‌سرعت مشخص شود که آیا خطایی در محیط نرم‌افزار Apigee یا در پس‌بک وجود دارد یا نه.

توجه: برای نظارت بر پراکسی‌های میانای برنامه‌سازی کاربردی، می‌توانید از API Health در Apigee نیز استفاده کنید. API Health فراخوانی‌های زمان‌بندی‌شده‌ای به پراکسی‌های API شما انجام می‌دهد و درصورت ناموفق بودن آن‌ها و نحوه ناموفق بودنشان به شما اطلاع می‌دهد. وقتی تماس‌ها موفقیت‌آمیز باشد، «سلامت میانای برنامه‌سازی کاربردی» زمان‌های پاسخ را به شما نشان می‌دهد و حتی می‌تواند وقتی تأخیر پاسخ بالا است به شما اطلاع دهد. API Health می‌تواند از مکان‌های مختلف در سراسر جهان تماس برقرار کند تا رفتار میانای برنامه‌سازی کاربردی را بین مناطق مقایسه کند.

بررسی جریان پیام

می‌توانید داده‌های مربوط به الگو/آمار جریان پیام را از «مسیریاب‌ها» و «پردازشگرهای پیام» جمع‌آوری کنید. این به شما امکان می‌دهد موارد زیر را پایش کنید:

  • تعداد مشتریان فعال
  • تعداد پاسخ‌ها (۱۰ برابر، ۲۰ برابر، ۳۰ برابر، ۴۰ برابر، و ۵۰ برابر)
  • خطاهای اتصال

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

بررسی سلامت رهیاب «پردازشگر پیام»

«مسیریاب» سازوکار بررسی سلامت را اجرا می‌کند تا تعیین کند کدام‌یک از «پردازشگرهای پیام» طبق انتظار کار می‌کنند. اگر «پردازشگر پیام» به‌عنوان غیرفعال یا کند شناسایی شود، «مسیریاب» می‌تواند به‌طور خودکار «پردازشگر پیام» را از چرخه خارج کند. اگر این اتفاق بیفتد، Router پیام «Mark Down» را در فایل گزارش Router در /opt/apigee/var/log/edge-router/logs/system.log می‌نویسد.

می‌توانید فایل گزارش «رهیاب» را برای این پیام‌ها پایش کنید. برای مثال، اگر «رهیاب» یک «پردازشگر پیام» را از چرخه خارج کند، پیام را به‌صورت زیر در گزارش می‌نویسد:

2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = <MP_IP> at 1399409512159

2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /<MP_IP>:<PORT> Mark Down

که در آن /<MP_IP>:<PORT> نشانی IP و شماره درگاه «پردازشگر پیام» است.

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

2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = <IP> at 1399410449054

2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from /<IP>:<PORT> Mark Up