نحوه نظارت

این سند تکنیک‌های نظارت بر مؤلفه‌های پشتیبانی‌شده توسط استقرار درون‌محل Apigee Edge برای Private Cloud را شرح می‌دهد.

نمای کلی

Edge از چند روش برای دریافت جزئیات درباره سرویس‌ها و همچنین بررسی وضعیت آن‌ها پشتیبانی می‌کند. جدول زیر انواع بررسی‌هایی را که می‌توانید در هر سرویس واجدشرایط انجام دهید فهرست می‌کند:

Mgmt API
مؤلفه استفاده از حافظه [JMX*] بررسی سرویس وضعیت کاربر/سازمان/ استقرار axstatus بررسی پایگاه داده وضعیت apigee-service apigee-monit**
سرور مدیریت
پردازشگر پیام
رهیاب
Qpid
Postgres
اطلاعات بیشتر اطلاعات بیشتر اطلاعات بیشتر اطلاعات بیشتر اطلاعات بیشتر اطلاعات بیشتر اطلاعات بیشتر

* قبل‌از اینکه بتوانید از JMX استفاده کنید، باید آن را فعال کنید، همان‌طور که در فعال کردن JMX شرح داده شده است.

** سرویس apigee-monit بررسی می‌کند که آیا مؤلفه‌ای فعال است یا نه و اگر فعال نباشد، تلاش می‌کند آن را بازراه‌اندازی کند. برای اطلاعات بیشتر، خودبهبودی با apigee-monit را ببینید.

پایش درگاه‌ها و فایل‌های پیکربندی

هر مؤلفه از Java Management Extensions (JMX) و Management API برای نظارت بر تماس‌ها در درگاه‌های مختلف پشتیبانی می‌کند. جدول زیر درگاه‌های JMX و Management API را برای هر نوع سرور و مکان‌های فایل پیکربندی فهرست می‌کند:

مؤلفه درگاه JMX Management API Port مکان فایل پیکربندی
سرور مدیریت 1099 8080 $APIGEE_ROOT/customer/application/management-server.properties
پردازشگر پیام 1101 8082 $APIGEE_ROOT/customer/application/message-processor.properties
رهیاب 1100 8081 $APIGEE_ROOT/customer/application/router.properties
Qpid 1102 8083 $APIGEE_ROOT/customer/application/qpid-server.properties
Postgres 1103 8084 $APIGEE_ROOT/customer/application/postgres-server.properties

استفاده از JMX برای نظارت بر مؤلفه‌ها

بخش‌های زیر نحوه استفاده از JMX برای نظارت بر مؤلفه‌های Edge را توضیح می‌دهند.

فعال کردن JMX

برای فعال کردن JMX بدون اصالت‌سنجی یا ارتباط مبتنی بر SSL، مراحل زیر را انجام دهید. توجه: در سیستم‌های تولید، برای امنیت باید هم اصالت‌سنجی رمزگذاری‌شده و هم SSL فعال باشد.

  1. فایل پیکربندی مناسب را ویرایش کنید (به مرجع فایل پیکربندی مراجعه کنید). اگر فایل پیکربندی وجود ندارد، آن را ایجاد کنید.
    conf_system_jmxremote_enable=true
  2. فایل پیکربندی را ذخیره کنید و مطمئن شوید که متعلق به apigee:apigee است.
  3. بازراه‌اندازی کردن مؤلفه Edge مناسب
    apigee-service edge-management-server restart

برای غیرفعال کردن JMX، یا ویژگی conf_system_jmxremote_enable را بردارید یا مقدار آن را به false تغییر دهید. سپس مؤلفه Edge مناسب را بازراه‌اندازی کنید.

اصالت‌سنجی در JMX

Edge for Private Cloud از اصالت‌سنجی مبتنی بر گذرواژه بااستفاده از جزئیات ذخیره‌شده در فایل‌ها پشتیبانی می‌کند. برای امنیت بیشتر، می‌توانید گذرواژه‌ها را به‌صورت «درهم‌سازی» ذخیره کنید.

  1. برای فعال کردن اصالت‌سنجی JMX در مؤلفه edge-*، فایل پیکربندی مناسب را ویرایش کنید (به مرجع فایل پیکربندی مراجعه کنید). اگر فایل پیکربندی وجود ندارد، آن را ایجاد کنید:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_authenticate=true
    conf_system_jmxremote_encrypted_auth=true
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
    فایل پیکربندی را ذخیره کنید و مطمئن شوید که متعلق به apigee:apigee است.
  2. درهم‌سازی SHA256 از گذرواژه ایجاد کنید:
    echo -n '' | openssl dgst -sha256
  3. فایل jmxremote.password را با اطلاعات اعتباری کاربر JMX ایجاد کنید:
    1. فایل‌های زیر را از فهرست راهنمای $JAVA_HOME به فهرست راهنمای /opt/apigee/customer/application/<component>/ کپی کنید:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. فایل را ویرایش کنید و نام کاربری و گذرواژه JMX خود را بااستفاده از نحو زیر اضافه کنید:
      USERNAME <HASH-PASSWORD>
    3. مطمئن شوید فایل متعلق به apigee است و حالت فایل 400 است:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. فایل jmxremote.access را با اجازه‌های کاربر JMX ایجاد کنید:
    1. فایل‌های زیر را از دایرکتوری $JAVA_HOME به دایرکتوری /opt/apigee/customer/application/<component>/ کپی کنید
      
      cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
    2. فایل را ویرایش کنید و نام کاربری JMX خود را اضافه کنید و سپس یک اجازه (READONLY/READWRITE) اضافه کنید
      USERNAME READONLY
    3. مطمئن شوید فایل متعلق به apigee است و حالت فایل 400 است:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. مؤلفه Edge مناسب را بازراه‌اندازی کنید:
    apigee-service edge-management-server restart

برای غیرفعال کردن اصالت‌سنجی JMX، یا ویژگی conf_system_jmxremote_authenticate را بردارید یا مقدار را به false تغییر دهید و مؤلفه Edge مناسب را بازراه‌اندازی کنید.

SSL در JMX

برای فعال کردن JMX مبتنی بر SSL در مؤلفه edge-*:

  1. فایل پیکربندی مناسب را ویرایش کنید (به مرجع فایل پیکربندی مراجعه کنید). اگر فایل پیکربندی وجود ندارد، آن را ایجاد کنید:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_ssl=true
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
    conf_system_javax_net_ssl_keystorepassword=<keystore-password>
    فایل پیکربندی را ذخیره کنید و مطمئن شوید که متعلق به apigee:apigee است.
  2. یک keystore حاوی کلید سرور آماده کنید و آن را در مسیر ارائه‌شده در پیکربندی conf_system_javax_net_ssl_keystore بالا قرار دهید. مطمئن شوید فایل keystore توسط apigee:apigee قابل‌خواندن باشد.
  3. مؤلفه Edge مناسب را بازراه‌اندازی کنید:
    apigee-service edge-management-server restart

برای غیرفعال کردن JMX مبتنی بر SSL، یا ویژگی conf_system_jmxremote_ssl را بردارید یا مقدار را به false تغییر دهید. مؤلفه Edge مناسب را بازراه‌اندازی کنید.

پایش ازطریق Jconsole

دستورالعمل‌های نظارت ازطریق jconsole همانند آنچه در https://docs.apigee.com/private-cloud/v4.50.00/how-monitor#jconsole شرح داده شده است باقی می‌ماند.

می‌توان یک خط اضافه کرد که «اگر SSL برای JMX فعال باشد، jconsole باید با truststore و گذرواژه truststore شروع شود.» مرجع: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

نظارت با JConsole

از JConsole (ابزار سازگار با JMX) برای مدیریت و نظارت بر بررسی سلامت و آمار پردازش استفاده کنید. با JConsole، می‌توانید آمار JMX را که سرورهایتان ارائه می‌دهند مصرف کنید و آن‌ها را در یک میانای گرافیکی نمایش دهید. برای اطلاعات بیشتر، استفاده از JConsole را ببینید.

اگر SSL برای JMX فعال باشد، باید JConsole را با truststore و گذرواژه truststore شروع کنید. استفاده از JConsole را ببینید.

JConsole از نشانی وب سرویس زیر برای نظارت بر مشخصه‌های JMX (MBeans) ارائه‌شده ازطریق JMX استفاده می‌کند:

service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi

مکان:

  • IP_address نشانی IP سروری است که می‌خواهید پایش کنید.
  • port_number شماره درگاه JMX سروری است که می‌خواهید نظارت کنید.

برای مثال، برای پایش «سرور مدیریت»، فرمانی مانند زیر صادر کنید (با فرض اینکه نشانی IP سرور 216.3.128.12 باشد):

service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi

توجه داشته باشید که این مثال درگاه ۱۰۹۹ را مشخص می‌کند که درگاه JMX سرور مدیریت است. برای درگاه‌های دیگر، درگاه‌های نظارت JMX و Management API را ببینید.

جدول زیر آمار عمومی JMX را نشان می‌دهد:

JMX MBeans مشخصه‌های JMX

حافظه

HeapMemoryUsage

NonHeapMemoryUsage

کاربرد

مرجع فایل پیکربندی

بخش‌های زیر تغییراتی را که ممکن است لازم باشد در فایل‌های پیکربندی مؤلفه Edge برای پیکربندی‌های مرتبط با JMX ایجاد کنید شرح می‌دهد. برای اطلاعات بیشتر، پایش درگاه‌ها و فایل‌های پیکربندی را ببینید.

پیکربندی JMX برای افزودن به فایل پیکربندی مؤلفه مناسب

  • عامل JMX را در مؤلفه edge فعال کنید. به‌طور پیش‌فرض نادرست است.
    conf_system_jmxremote_enable=true

پیکربندی‌های اصالت‌سنجی گذرواژه‌مبنا

  • اصالت‌سنجی مبتنی بر گذرواژه را فعال کنید. به‌طور پیش‌فرض نادرست است.
    conf_system_jmxremote_authenticate=true
  • مسیر دسترسی به فایل. باید فقط تحت مالکیت و قابل‌خواندن توسط کاربر Apigee باشد.
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
  • مسیر فایل گذرواژه. باید فقط تحت مالکیت و قابل‌خواندن توسط کاربر Apigee باشد.
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
  • ذخیره کردن گذرواژه در قالب رمزگذاری‌شده را فعال کنید. به‌طور پیش‌فرض نادرست است.
    conf_system_jmxremote_encrypted_auth=true

پیکربندی‌های JMX مبتنی بر SSL

  • SSL را برای ارتباط JMX فعال کنید. به‌طور پیش‌فرض نادرست است.
    conf_system_jmxremote_ssl=true
  • مسیر keystore. باید فقط تحت مالکیت و قابل‌خواندن توسط کاربر Apigee باشد.
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
  • گذرواژه Keystore:
    conf_system_javax_net_ssl_keystorepassword=changeme

پیکربندی‌های اختیاری JMX

مقادیر فهرست‌شده مقادیر پیش‌فرض هستند و می‌توان آن‌ها را تغییر داد.

  • درگاه JMX. مقادیر پیش‌فرض در جدول زیر فهرست شده است.
    conf_system_jmxremote_port=
  • درگاه JMX RMI. به‌طور پیش‌فرض، فرایند Java درگاه تصادفی را انتخاب می‌کند.
    conf_system_jmxremote_rmi_port=
  • نام میزبان برای کدهای ناقص راه دور. نشانی IP پیش‌فرض میزبان محلی.
    conf_system_java_rmi_server_hostname=
  • محافظت از دفتر ثبت JMX با SSL. پیش‌فرض false است. فقط درصورتی قابل اجرا است که SSL فعال باشد.
    conf_system_jmxremote_registry_ssl=false

پایش با Management API

Edge شامل چندین API است که می‌توانید از آن‌ها برای انجام بررسی‌های سرویس در سرورهایتان و همچنین بررسی کاربران، سازمان‌ها، و استقرارها استفاده کنید. این بخش این میاناهای برنامه‌سازی کاربردی را شرح می‌دهد.

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

‫Management API چندین نقطه پایانی برای نظارت و تشخیص مشکلات سرویس‌های شما ارائه می‌دهد. این نقاط پایانی عبارت‌اند از:

نقطه پایانی شرح
/servers/self/up

بررسی می‌کند که آیا سرویسی درحال اجرا است یا نه. این فراخوانی میانای برنامه‌سازی کاربردی (API) نیازی به اصالت‌سنجی شما ندارد.

اگر سرویس درحال اجرا باشد، این نقطه پایانی پاسخ زیر را برمی‌گرداند:

<ServerField>
  <Up>true</Up>
</ServerField>

اگر سرویس درحال اجرا نباشد، پاسخی مشابه پاسخ زیر دریافت خواهید کرد (بسته به اینکه کدام سرویس است و چگونه آن را بررسی کرده‌اید):

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

اطلاعاتی درباره سرویس برمی‌گرداند، ازجمله:

  • خصوصیت‌های پیکربندی
  • زمان شروع و زمان کارکرد
  • اطلاعات ساخت، RPM، و UUID
  • نام میزبان و نشانی IP داخلی و خارجی
  • منطقه و پاد
  • ویژگی <isUp>، که نشان می‌دهد سرویس درحال اجرا است یا نه

این فراخوانی میانای برنامه‌سازی کاربردی مستلزم آن است که با اطلاعات کاربری سرپرست Apigee خود اصالت‌سنجی کنید.

برای استفاده از این نقاط پایانی، ابزاری مانند curl را با فرمان‌هایی که از نحو زیر استفاده می‌کنند فراخوانی کنید:

curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"

مکان:

  • host نشانی IP سروری است که می‌خواهید بررسی کنید. اگر به سیستم سرور وارد شده‌اید، می‌توانید از «localhost» استفاده کنید؛ درغیراین‌صورت، نشانی IP سرور و همچنین نام کاربری و گذرواژه را مشخص کنید.
  • port_number درگاه Management API برای سروری است که می‌خواهید بررسی کنید. این درگاه برای هر نوع مؤلفه متفاوت است. برای مثال، درگاه Management API در Management Server برابر با ۸۰۸۰ است. برای فهرست شماره‌های درگاه Management API که باید استفاده شود، به درگاه‌های پایش JMX و Management API مراجعه کنید

برای تغییر قالب پاسخ، می‌توانید سرصفحه Accept را به‌صورت «application/json» یا «application/xml» مشخص کنید.

مثال زیر وضعیت Router را در localhost (درگاه ۸۰۸۱) دریافت می‌کند:

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

مثال زیر اطلاعاتی درباره «پردازشگر پیام» در 216.3.128.12 (درگاه 8082) دریافت می‌کند:

curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password
  -H "Accept: application/xml"

نظارت بر وضعیت کاربر، سازمان، و استقرار

می‌توانید از Management API برای نظارت بر وضعیت کاربر، سازمان، و استقرار پراکسی‌هایتان در «سرورهای مدیریت» و «پردازشگرهای پیام» با صدور فرمان‌های زیر استفاده کنید:

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

که port_number یا ۸۰۸۰ برای «سرور مدیریت» است یا ۸۰۸۲ برای «پردازشگر پیام».

این تماس مستلزم آن است که با نام کاربری و گذرواژه سرپرست سیستم خود اصالت‌سنجی کنید.

سرور باید برای همه تماس‌ها وضعیت «مستقرشده» را برگرداند. اگر این مراحل ناموفق بود، کارهای زیر را انجام دهید:

  1. گزارش‌های سرور را برای پیدا کردن خطاها بررسی کنید. گزارش‌ها در اینجا قرار دارد:
    • سرور مدیریت: opt/apigee/var/log/edge-management-server
    • پردازشگر پیام: opt/apigee/var/log/edge-message-processor
  2. با سرور تماس بگیرید تا بررسی کنید که آیا به‌درستی کار می‌کند یا نه.
  3. سرور را از ELB بردارید و سپس آن را بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service service_name restart

    جایی که service_name است:

    • edge-management-server
    • edge-message-processor

بررسی وضعیت با فرمان apigee-service

می‌توانید سرویس‌های Edge را بااستفاده از فرمان apigee-service عیب‌یابی کنید، وقتی که به سیستم سرور اجراکننده سرویس وارد شده‌اید.

برای بررسی وضعیت سرویس با apigee-service:

  1. به سیستم سرور وارد شوید و فرمان زیر را اجرا کنید:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    که service_name یکی از موارد زیر است:

    • سرور مدیریت: edge-management-server
    • پردازشگر پیام: edge-message-processor
    • Postgres: edge-postgres-server
    • Qpid: edge-qpid-server
    • رهیاب: edge-router

    برای مثال:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. اگر سرویس درحال اجرا نیست، سرویس را شروع کنید:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. پس‌از راه‌اندازی مجدد سرویس، بااستفاده از فرمان apigee-service status که قبلاً استفاده کردید یا بااستفاده از Management API که در پایش با Management API شرح داده شده است، بررسی کنید که سرویس کار می‌کند.

    برای مثال:

    curl -v http://localhost:port_number/v1/servers/self/up

    که port_number درگاه Management API برای سرویس است.

    این مثال فرض می‌کند که شما به سیستم سرور وارد شده‌اید و می‌توانید از «localhost» به‌عنوان نام میزبان استفاده کنید. برای بررسی وضعیت ازراه‌دور با Management API، باید نشانی IP سرور را مشخص کنید و نام کاربری و گذرواژه سرپرست سامانه را در فراخوانی API خود بگنجانید.

پایش Postgres

Postgres از چندین ابزار پشتیبانی می‌کند که می‌توانید از آن‌ها برای بررسی وضعیت آن استفاده کنید. این ابزارهای کمکی در بخش‌های زیر شرح داده شده‌اند.

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

با صدور فرمان curl زیر می‌توانید نام‌های سازمان و محیطی را که در سرور Postgres وارد شده‌اند بررسی کنید:

curl -v http://postgres_IP:8084/v1/servers/self/organizations

سیستم باید نام سازمان و محیط را نمایش دهد.

درستی‌سنجی وضعیت Analytics

می‌توانید وضعیت سرورهای تجزیه‌وتحلیل Postgres و Qpid را با صدور دستور curl زیر درستی‌سنجی کنید:

curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus

سیستم باید وضعیت موفقیت را برای همه سرورهای تجزیه‌وتحلیل نمایش دهد، همان‌طور که در مثال زیر نشان داده شده است:

{
  "environments" : [ {
    "components" : [ {
      "message" : "success at Thu Feb 28 10:27:38 CET 2013",
      "name" : "pg",
      "status" : "SUCCESS",
      "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]"
     }, {
      "message" : "success at Thu Feb 28 10:29:03 CET 2013",
      "name" : "qs",
      "status" : "SUCCESS",
      "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]"
     } ],
    "message" : "",
    "name" : "prod"
   } ],
  "organization" : "acme",
  "status" : "SUCCESS"
}

پایگاه داده PostgreSQL

این بخش تکنیک‌هایی را شرح می‌دهد که می‌توانید به‌طور خاص برای نظارت بر پایگاه داده Postgres استفاده کنید.

از دستورگان check_postgres.pl استفاده کن

برای پایش پایگاه داده PostgreSQL، می‌توانید از یک اسکریپت پایش استاندارد، check_postgres.pl، استفاده کنید. برای اطلاعات بیشتر، به http://bucardo.org/wiki/Check_postgres مراجعه کنید.

قبل‌از اجرای اسکریپت:

  1. باید اسکریپت check_postgres.pl را در هر گره Postgres نصب کنید.
  2. مطمئن شوید که perl-Time-HiRes.x86_64 را نصب کرده‌اید، یک ماژول Perl که زنگ ساعت با وضوح بالا، خواب، gettimeofday، و زمان‌سنج‌های فاصله‌ای را پیاده‌سازی می‌کند. برای مثال، می‌توانید آن را بااستفاده از فرمان زیر نصب کنید:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: قبل‌از استفاده از check_postgres.pl در CentOS v7، perl-Data-Dumper.x86_64 RPM را نصب کنید.

برونداد check_postgres.pl

خروجی پیش‌فرض فراخوانی‌های میانای برنامه‌سازی کاربردی بااستفاده از check_postgres.pl با Nagios سازگار است. پس‌از نصب کردن اسکریپت، موارد زیر را بررسی کنید:

  1. بررسی اندازه پایگاه داده:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
  2. تعداد اتصال‌های ورودی به پایگاه داده را بررسی می‌کند و با حداکثر اتصال‌های مجاز مقایسه می‌کند:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. بررسی کنید که پایگاه داده درحال اجرا و دردسترس باشد:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. بررسی فضای دیسک:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. تعداد سازمان‌ها و محیط‌های آماده‌سازی‌شده در گره Postgres را بررسی کنید:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer

اجرای بررسی‌های پایگاه داده

می‌توانید درستی‌سنجی کنید که جدول‌های مناسب در پایگاه داده PostgreSQL ایجاد شده باشند. بااستفاده از فرمان زیر، به پایگاه داده PostgreSQL وارد شوید:

psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee

سپس این دستور را اجرا کنید:

\d analytics."org.env.fact"

بررسی وضعیت سلامت فرایند postgres

می‌توانید با فراخوانی curl دستور زیر، بررسی‌های میانای برنامه‌سازی کاربردی را در دستگاه Postgres انجام دهید:

curl -v http://postgres_IP:8084/v1/servers/self/health

این فرمان وضعیت ACTIVE را وقتی فرایند postgres فعال است برمی‌گرداند. اگر فرایند Postgres فعال و درحال اجرا نباشد، وضعیت INACTIVE را برمی‌گرداند.

منابع Postgres

برای اطلاعات بیشتر درباره نظارت بر سرویس Postgres، موارد زیر را ببینید:

Apache Cassandra

JMX به‌طور پیش‌فرض برای Cassandra فعال است و دسترسی JMX ازراه‌دور به Cassandra به گذرواژه نیاز ندارد.

فعال کردن اصالت‌سنجی JMX برای Cassandra

می‌توانید اصالت‌سنجی JMX را برای Cassandra فعال کنید. پس‌از انجام این کار، باید نام کاربری و گذرواژه را برای همه تماس‌ها به ابزار nodetool ارسال کنید.

برای فعال کردن اصالت‌سنجی JMX برای Cassandra:

  1. فایل cassandra.properties را ایجاد و ویرایش کنید:
    1. فایل /opt/apigee/customer/application/cassandra.properties را ویرایش کنید. اگر فایل وجود ندارد، آن را ایجاد کنید.
    2. موارد زیر را به فایل اضافه کنید:
      conf_cassandra_env_com.sun.management.jmxremote.authenticate=true
      conf_cassandra_env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.password
      conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
    3. فایل cassandra.properties را ذخیره کنید.
    4. مالک فایل را به apigee:apigee تغییر دهید، همان‌طور که در مثال زیر نشان داده شده است:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

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

  2. ایجاد و ویرایش jmx_auth.sh:
    1. اگر فایلی در مکان زیر وجود ندارد، فایلی ایجاد کنید:
      /opt/apigee/customer/application/jmx_auth.sh
    2. ویژگی‌های زیر را به فایل اضافه کنید:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. فایل jmx_auth.sh را ذخیره کنید.
    4. منبع فایل:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. فایل jmxremote.password را کپی و ویرایش کنید:
    1. فایل زیر را از فهرست راهنمای $JAVA_HOME به /opt/apigee/customer/application/apigee-cassandra/ کپی کنید:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. فایل jmxremote.password را ویرایش کنید و نام کاربری و گذرواژه JMX خود را بااستفاده از نحو زیر اضافه کنید:
      JMX_USERNAME JMX_PASSWORD

      که JMX_USERNAME و JMX_PASSWORD نام کاربری و گذرواژه JMX هستند که قبلاً تنظیم کرده‌اید.

    3. مطمئن شوید که فایل متعلق به «apigee» است و حالت فایل ۴۰۰ است:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. فایل jmxremote.access را کپی و ویرایش کنید:
    1. فایل زیر را از فهرست راهنمای $JAVA_HOME به /opt/apigee/customer/application/apigee-cassandra/ کپی کنید:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. فایل jmxremote.access را ویرایش کنید و نقش زیر را اضافه کنید:
      JMX_USERNAME readwrite
    3. مطمئن شوید که فایل متعلق به «apigee» است و حالت فایل ۴۰۰ است:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
  5. ‫configure را در Cassandra اجرا کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. بازراه‌اندازی Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. این فرایند را در همه گره‌های Cassandra دیگر تکرار کنید.

فعال کردن رمزگذاری گذرواژه JMX

برای فعال کردن رمزگذاری گذرواژه JMX، مراحل زیر را انجام دهید:

  1. فایل source/conf/casssandra-env.sh را باز کنید.
  2. فایل cassandra.properties را ایجاد و ویرایش کنید:
    1. فایل /opt/apigee/customer/application/cassandra.properties را ویرایش کنید. اگر فایل وجود ندارد، آن را ایجاد کنید.
    2. موارد زیر را به فایل اضافه کنید:
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. فایل cassandra.properties را ذخیره کنید.
    4. همان‌طور که در مثال زیر نشان داده شده است، مالک فایل را به apigee:apigee تغییر دهید:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. در خط فرمان، با وارد کردن echo -n 'Secret' | openssl dgst -sha1، درهم‌سازی(های) SHA1 گذرواژه(های) موردنظر را تولید کنید.
  4. گذرواژه(ها) را برای نام کاربری در $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (ایجادشده در بخش قبلی) تنظیم کنید.
  5. پیکربندی را در Cassandra اجرا کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. بازراه‌اندازی Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. این فرایند را در همه گره‌های Cassandra دیگر تکرار کنید.

فعال کردن JMX با SSL برای Cassandra

فعال کردن JMX با SSL امنیت و رمزگذاری بیشتری برای ارتباطات مبتنی بر JMX با Cassandra فراهم می‌کند. برای فعال کردن JMX با SSL، باید یک کلید و یک گواهی به Cassandra ارائه دهید تا اتصالات JMX مبتنی بر SSL را بپذیرد. همچنین باید nodetool (و هر ابزار دیگری را که ازطریق JMX با Cassandra ارتباط برقرار می‌کند) برای SSL پیکربندی کنید.

‫JMX با SSL فعال از گذرواژه‌های JMX رمزگذاری‌شده و متن ساده پشتیبانی می‌کند.

برای فعال کردن JMX با SSL برای Cassandra، از روش زیر استفاده کنید:

  1. JMX را فعال کنید. درصورت لزوم، رمزگذاری گذرواژه را فعال کنید.
  2. اصالت‌سنجی JMX را برای Cassandra فعال کنید. طبق توضیحات بالا. مطمئن شوید nodetool با نام کاربری و گذرواژه پیکربندی‌شده کار می‌کند.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. آماده‌سازی keystore و truststore.

    • محل ذخیره کلید باید حاوی کلید و گواهی باشد، و برای پیکربندی سرور Cassandra استفاده می‌شود. اگر keystore شامل چندین جفت کلید باشد، Cassandra از اولین جفت کلید برای فعال کردن SSL استفاده می‌کند.

      توجه داشته باشید که گذرواژه‌های keystore و کلید باید یکسان باشند (پیش‌فرض هنگام تولید کلید بااستفاده از keytool).

    • Truststore باید فقط حاوی گواهینامه باشد و کارخواه‌ها (فرمان‌های مبتنی بر apigee-service یا nodetool) از آن برای اتصال ازطریق JMX استفاده می‌کنند.

    پس‌از تأیید الزامات بالا:

    1. فایل keystore را در /opt/apigee/customer/application/apigee-cassandra/ قرار دهید.
    2. با وارد کردن دستور زیر، مطمئن شوید که فایل keystore فقط توسط کاربر Apigee قابل‌خواندن است
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. با انجام مراحل زیر، Cassandra را برای JMX با SSL پیکربندی کنید:
    1. با وارد کردن دستور زیر، گره Cassandra را متوقف کنید
      apigee-service apigee-cassandra stop
    2. با باز کردن فایل /opt/apigee/customer/application/cassandra.properties و افزودن خطوط زیر، SSL را در Cassandra فعال کنید:
      conf_cassandra_env_com.sun.management.jmxremote.ssl=true
      conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1
      conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
    3. همان‌طور که در مثال زیر نشان داده شده است، مالک فایل را به apigee:apigee تغییر دهید:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. پیکربندی را در Cassandra اجرا کنید:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. بازراه‌اندازی Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. این فرایند را در همه گره‌های Cassandra دیگر تکرار کنید.
    7. با وارد کردن این دستور، گره Cassandra را راه‌اندازی کنید
      apigee-service apigee-cassandra start
  5. فرمان‌های apigee-service Cassandra را پیکربندی کنید. هنگام اجرای فرمان‌های apigee-service باید متغیرهای محیطی خاصی را تنظیم کنید، ازجمله موارد زیر:
    apigee-service apigee-cassandra stop
    apigee-service apigee-cassandra wait_for_ready
    apigee-service apigee-cassandra ring
    apigee-service apigee-cassandra backup

    چندین گزینه برای پیکربندی apigee-service برای اصالت‌سنجی JMX و SSL وجود دارد. گزینه‌ای را براساس قابلیت استفاده و شیوه‌های امنیتی‌تان انتخاب کنید.

    گزینه ۱ (آرگومان‌های SSL ذخیره‌شده در فایل)

    متغیرهای محیطی زیر را تنظیم کنید:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y

    فایلی در دایرکتوری صفحه اصلی کاربر Apigee (/opt/apigee) ایجاد کنید.

    $HOME/.cassandra/nodetool-ssl.properties

    فایل را ویرایش کنید و خطوط زیر را اضافه کنید:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    مطمئن شوید فایل trustore توسط کاربر Apigee قابل‌خواندن باشد.

    فرمان apigee-service زیر را اجرا کنید. اگر بدون خطا اجرا شود، پیکربندی‌هایتان درست است.

    apigee-service apigee-cassandra ring

    گزینه ۲ (آرگومان‌های SSL ذخیره‌شده در متغیرهای محیط)

    متغیرهای محیطی زیر را تنظیم کنید:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y
    # Ensure the truststore file is accessible by Apigee user.
    export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1>
    export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>

    فرمان apigee-service زیر را اجرا کنید. اگر بدون خطا اجرا شود، پیکربندی‌هایتان درست است.

    apigee-service apigee-cassandra ring

    گزینه ۳ (متغیرهای مستقل SSL مستقیماً به apigee-service ارسال می‌شود)

    هر فرمان apigee-service را مانند فرمان زیر اجرا کنید. نیازی نیست متغیرهای محیطی را پیکربندی کنید.

    CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. nodetool را راه‌اندازی کنید. Nodetool به پارامترهای JMX نیاز دارد تا به آن منتقل شود. دو روش وجود دارد که می‌توانید nodetool را برای اجرا با JMX فعال‌شده با SSL پیکربندی کنید، همان‌طور که در گزینه‌های پیکربندی زیر شرح داده شده است:

    گزینه‌ها در نحوه ارسال پیکربندی‌های مرتبط با SSL به nodetool متفاوت هستند. در هر دو مورد، کاربری که nodetool را اجرا می‌کند باید اجازه READ (خواندن) برای فایل truststore داشته باشد. گزینه مناسب را براساس قابلیت استفاده و شیوه‌های امنیتی‌تان انتخاب کنید.

    برای کسب اطلاعات بیشتر درباره پارامترهای nodetool، به اسناد DataStax مراجعه کنید.

    گزینه پیکربندی ۱

    فایلی در فهرست راهنمای اصلی کاربر اجراکننده nodetool ایجاد کنید.

    $HOME/.cassandra/nodetool-ssl.properties

    خطوط زیر را به فایل اضافه کنید:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    مسیر truststore مشخص‌شده در بالا باید برای هر کاربری که nodetool را اجرا می‌کند قابل‌دسترسی باشد.

    ‫nodetool را با گزینه --ssl اجرا کنید.

    /opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

    گزینه پیکربندی ۲

    nodetool را به‌عنوان یک فرمان تکی با پارامترهای اضافی فهرست‌شده در زیر اجرا کنید.

    /opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

برگرداندن پیکربندی‌های SSL

اگر لازم است پیکربندی‌های SSL شرح‌داده‌شده در رویه بالا را برگردانید، مراحل زیر را انجام دهید:

  1. توقف apigee-cassandraبا وارد کردن
    apigee-service apigee-cassandra stop
  2. خط conf_cassandra-env_com.sun.management.jmxremote.ssl=true را از فایل /opt/apigee/customer/application/cassandra.properties بردارید.
  3. خطوط زیر را در /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh به‌صورت نظر درآورید
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0"
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass"
    # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
  4. با وارد کردن apigee-cassandra را شروع کنید
  5. apigee-service apigee-cassandra start
  6. متغیر محیطی CASS_JMX_SSL را درصورت تنظیم شدن بردارید.

    unset CASS_JMX_SSL
  7. بررسی کنید که فرمان‌های مبتنی بر apigee-service مثل ring، stop، backup، و غیره کار می‌کنند یا نه.
  8. استفاده از کلید --ssl با nodetool را متوقف کنید

غیرفعال کردن اصالت‌سنجی JMX برای Cassandra

برای غیرفعال کردن اصالت‌سنجی JMX برای Cassandra:

  1. ویرایش /opt/apigee/customer/application/cassandra.properties.
  2. خط زیر را در فایل بردارید:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. پیکربندی را در Cassandra اجرا کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. بازراه‌اندازی Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. این فرایند را در همه گره‌های Cassandra دیگر تکرار کنید.

استفاده از JConsole: نظارت بر آمار تکلیف

از JConsole و نشانی وب سرویس زیر برای نظارت بر مشخصه‌های JMX (MBeans) ارائه‌شده ازطریق JMX استفاده کنید:

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

که IP_address نشانی IP سرور Cassandra است.

آمار Cassandra JMX

JMX MBeans مشخصه‌های JMX

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies

ColumnFamilies/audit/audits

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

از nodetool برای مدیریت گره‌های خوشه استفاده کنید

ابزار nodetool یک میانای خط فرمان برای Cassandra است که گره‌های خوشه را مدیریت می‌کند. این ابزار را می‌توانید در /opt/apigee/apigee-cassandra/bin پیدا کنید.

تماس‌های زیر را می‌توان در همه گره‌های خوشه Cassandra برقرار کرد:

  1. اطلاعات کلی حلقه (برای گره Cassandra تکی نیز امکان‌پذیر است): به‌دنبال «Up» (فعال) و «Normal» (عادی) برای همه گره‌ها بگردید.
    nodetool [-u username -pw password] -h localhost ring

    فقط درصورتی باید نام کاربری و گذرواژه را ارسال کنید که اصالت‌سنجی JMX را برای Cassandra فعال کرده باشید.

    برونداد فرمان بالا به‌صورت زیر است:

    Datacenter: dc-1
    ==========
    Address            Rack     Status State   Load    Owns    Token
    192.168.124.201    ra1      Up     Normal  1.67 MB 33,33%  0
    192.168.124.202    ra1      Up     Normal  1.68 MB 33,33%  5671...5242
    192.168.124.203    ra1      Up     Normal  1.67 MB 33,33%  1134...0484
  2. اطلاعات کلی درباره گره‌ها (تماس به‌ازای هر گره)
    nodetool [-u username -pw password]  -h localhost info

    خروجی فرمان بالا به‌صورت زیر است:

    ID                     : e2e42793-4242-4e82-bcf0-oicu812
    Gossip active          : true
    Thrift active          : true
    Native Transport active: true
    Load                   : 273.71 KB
    Generation No          : 1234567890
    Uptime (seconds)       : 687194
    Heap Memory (MB)       : 314.62 / 3680.00
    Off Heap Memory (MB)   : 0.14
    Data Center            : dc-1
    Rack                   : ra-1
    Exceptions             : 0
    Key Cache              : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds
    Row Cache              : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
    Counter Cache          : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
    Token                  : 0
  3. وضعیت سرور thrift (ارائه API مشتری)
    nodetool [-u username -pw password] -h localhost statusthrift

    خروجی فرمان بالا شبیه به این است:

    running
  4. وضعیت عملیات جاری‌سازی داده: ترافیک گره‌های cassandra را مشاهده کنید:
    nodetool [-u username -pw password] -h localhost netstats

    خروجی فرمان بالا شبیه به این است:

    Mode: NORMAL
    Not sending any streams.
    Read Repair Statistics:
    Attempted: 151612
    Mismatch (Blocking): 0
    Mismatch (Background): 0
    Pool Name                    Active   Pending      Completed   Dropped
    Commands                        n/a         0              0         0
    Responses                       n/a         0              0       n/a

برای اطلاعات بیشتر درباره nodetool، به درباره ابزار nodetool مراجعه کنید.

منبع Cassandra

به نشانی وب زیر مراجعه کنید: http://www.datastax.com/docs/1.0/operations/monitoring.

Apache ZooKeeper

بررسی وضعیت ZooKeeper

  1. مطمئن شوید فرایند ZooKeeper درحال اجرا باشد. ZooKeeper فایل PID را در opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid می‌نویسد.
  2. درگاه‌های ZooKeeper را آزمایش کنید تا مطمئن شوید می‌توانید اتصال TCP به درگاه‌های ۲۱۸۱ و ۳۸۸۸ در هر سرور ZooKeeper برقرار کنید.
  3. مطمئن شوید که می‌توانید مقادیر را از پایگاه داده ZooKeeper بخوانید. بااستفاده از کتابخانه مشتری ZooKeeper (یا /opt/apigee/apigee-zookeeper/bin/zkCli.sh) متصل شوید و مقداری را از پایگاه داده بخوانید.
  4. بررسی وضعیت:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

استفاده از کلمات چهارحرفی ZooKeeper

ZooKeeper را می‌توان ازطریق مجموعه کوچکی از فرمان‌ها (کلمات چهارحرفی) که بااستفاده از netcat (nc) یا telnet به درگاه ۲۱۸۱ ارسال می‌شوند نظارت کرد.

برای اطلاعات بیشتر درباره فرمان‌های ZooKeeper، به مرجع فرمان Apache ZooKeeper مراجعه کنید.

برای مثال:

  • srvr: جزئیات کامل سرور را فهرست می‌کند.
  • stat: جزئیات مختصری را برای سرور و کارخواه‌های متصل فهرست می‌کند.

فرمان‌های زیر را می‌توان برای درگاه ZooKeeper صادر کرد:

  1. فرمان چهارحرفی ruok را اجرا کنید تا آزمایش کنید که آیا سرور در حالت بدون خطا اجرا می‌شود یا نه. پاسخ موفقیت‌آمیز «imok» را برمی‌گرداند.
    echo ruok | nc host 2181

    برمی‌گرداند:

    imok
  2. فرمان چهارحرفی stat را اجرا کنید تا عملکرد سرور و آمار کارخواه‌های متصل فهرست شود:
    echo stat | nc host 2181

    برمی‌گرداند:

    Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT
    Clients:
    /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0)
    /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433)
    /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347)
    /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692)
    Latency min/avg/max: 0/0/128
    Received: 26144
    Sent: 26160
    Connections: 4
    Outstanding: 0
    Zxid: 0x2000002c2
    Mode: follower
    Node count: 283
  3. اگر netcat (nc) دردسترس نیست، می‌توانید از python به‌عنوان جایگزین استفاده کنید. فایلی به‌نام zookeeper.py ایجاد کنید که حاوی موارد زیر باشد:
    import time, socket,
    sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    c.connect((sys.argv[1], 2181))
    c.send(sys.argv[2])
    time.sleep(0.1)
    print c.recv(512)

    اکنون خطوط پایتون زیر را اجرا کنید:

    python zookeeper.py 192.168.124.201 ruok
    python zookeeper.py 192.168.124.201 stat

آزمایش سطح ال‌دپ

می‌توانید OpenLDAP را پایش کنید تا ببینید آیا درخواست‌های خاص به‌درستی ارائه می‌شوند یا نه. به عبارت دیگر، جستجوی خاصی را بررسی کنید که نتیجه درست را برمی‌گرداند.

  1. از ldapsearch (yum install openldap-clients) برای پرسمان ورودی سرپرست سیستم استفاده کنید. از این ورودی برای اصالت‌سنجی همه تماس‌های API استفاده می‌شود.
    ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL

    سپس از شما خواسته می‌شود گذرواژه سرپرست LDAP را وارد کنید:

    Enter LDAP Password:

    پس‌از وارد کردن گذرواژه، پاسخی به این شکل می‌بینید:

    dn:
    uid=admin,ou=users,ou=global,dc=apigee,dc=com
    objectClass: organizationalPerson
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: top
    uid: admin
    cn: admin
    sn: admin
    userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
     =
    mail: opdk@google.com
  2. با فرمان زیر بررسی کنید که آیا «سرور مدیریت» هنوز به LDAP متصل است یا نه:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    برمی‌گرداند:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

همچنین می‌توانید حافظه‌های پنهان OpenLDAP را پایش کنید که به کاهش تعداد دسترسی‌های دیسک کمک می‌کند و درنتیجه عملکرد سیستم را بهبود می‌بخشد. نظارت و سپس تنظیم اندازه حافظه نهان در سرور OpenLDAP می‌تواند تأثیر زیادی بر عملکرد سرور دایرکتوری داشته باشد. می‌توانید فایل‌های گزارش (opt/apigee/var/log) را برای دریافت اطلاعات درباره حافظه نهان مشاهده کنید.