نحوه نظارت

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

نمای کلی

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

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

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

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

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

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

مؤلفه درگاه JMX درگاه Management API مکان فایل پیکربندی
سرور مدیریت 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.access
    2. فایل را ویرایش کنید و نام کاربری JMX خود را اضافه کنید و سپس یک اجازه (READONLY/READWRITE) اضافه کنید
      USERNAME READONLY
    3. مطمئن شوید فایل متعلق به apigee است و حالت فایل 400 است:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.access
      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. انبار کلیدی حاوی کلید سرور را آماده کنید و آن را در مسیر ارائه‌شده در پیکربندی 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 (ابزار سازگار با 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

بررسی می‌کند که آیا سرویسی درحال اجرا است یا نه. این فراخوانی «میانای برنامه‌سازی کاربردی» نیازی به اصالت‌سنجی ندارد.

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

<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 API که باید استفاده شود، به درگاه‌های پایش JMX و Management API مراجعه کنید

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

مثال زیر وضعیت «مسیریاب» را در 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 درگاه «میانای برنامه‌سازی کاربردی مدیریت» برای سرویس است.

    این مثال فرض می‌کند که شما به سیستم سرور وارد شده‌اید و می‌توانید از «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

برونداد پیش‌فرض تماس‌های API بااستفاده از 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. مطمئن شوید فایل انبار کلید فقط توسط کاربر 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
    -Djavax.net.ssl.trustStoreType=PKCS12

    مطمئن شوید فایل 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>
    # If you are using a non standard truststore type, export truststore type as well
    # Possible values are JKS, PKCS12, BCFKS
    export CASS_JMX_TRUSTSTORE_TYPE=PKCS12

    فرمان 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> CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. nodetool را راه‌اندازی کنید. ‫Nodetool نیاز دارد پارامترهای JMX به آن منتقل شود. دو روش برای پیکربندی nodetool برای اجرا با JMX فعال‌شده با SSL وجود دارد، همان‌طور که در گزینه‌های پیکربندی زیر توضیح داده شده است:

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

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

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

    فایلی در پوشه اصلی کاربری که 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
    -Djavax.net.ssl.trustStoreType=PKCS12

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

    ‫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 -Djavax.net.ssl.trustStoreType=PKCS12 -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

به نشانی وب زیر مراجعه کنید: پایش Cassandra.

پایش کارگزار Apache Qpid Broker-J

می‌توانید Qpid Broker-J را از کنسول مدیریت Qpid پایش کنید. این بخش توضیح می‌دهد چگونه به کنسول دسترسی پیدا کنید و از آن برای انجام عملکردهای نظارت پایه استفاده کنید. برای اطلاعات دقیق‌تر درباره استفاده از کنسول مدیریت، به کنسول مدیریت وب در اسناد Apache Qpid مراجعه کنید.

دسترسی به کنسول مدیریت

درگاه پیش‌فرض کنسول مدیریت ۸۰۹۰ است. برای دسترسی به کنسول در این درگاه پیش‌فرض، مرورگر وب خود را به این نشانی هدایت کنید:

http://QPID_NODE_IP:8090

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

نظارت بر صف‌ها و پیام‌ها

در پانل پیمایش سمت راست، به Java-Broker > virtualhosts > queues بروید. صفی را انتخاب کنید تا جزئیات آن را در بخش اصلی میانای کاربر ببینید. در نمای جزئیات، می‌توانید «ویژگی‌ها و آمار صف» را ببینید، ازجمله اطلاعات مربوط به پیام‌های تحویل‌شده، در صف قرارگرفته، نرخ پیام، و غیره.

مشاهده و بارگیری فایل‌های گزارش

در پانل پیمایش سمت راست، به Java-Broker > brokerloggers > logfile بروید. در نمای جزئیات واسط کاربر اصلی، می‌توانید جزئیات فایل گزارش را مشاهده کنید و فایل‌های گزارش را بارگیری کنید.

استفاده از میانای برنامه‌سازی کاربردی مدیریت Qpid

می‌توانید از Apache Qpid Broker-J REST API برای خودکارسازی تکالیف مدیریتی و پایش کارگزار استفاده کنید. برای جزئیات، به مستندات Apache Qpid Broker REST API مراجعه کنید.

همچنین می‌توانید از ابزارهای خط فرمان برای نظارت بر کارگزار استفاده کنید. برای مثال:

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

فعال کردن پایش با SSL برای Qpid

برای ارائه امنیت بیشتر برای نظارت و مدیریت، SSL را در «درگاه مدیریت» Qpid و Management APIهای Qpid فعال کنید. برای ارائه کلید و گواهی، دستورالعمل‌های زیر را دنبال کنید.

‫Qpid گزینه‌ای برای «انبار کلید فایل» ارائه می‌دهد که در Apigee فعال است. این نوع قالب استاندارد JKS keystore را که توسط Java و ابزارهای Java مانند keytool قابل درک است می‌پذیرد. همچنین می‌تواند یک مخزن کلید PKCS12 را بپذیرد که می‌تواند بااستفاده از ابزارهایی مانند OpenSSL تولید شود.

آماده‌سازی انبار کلید

برای تولید کردن انبار کلید، به اسناد Java Keytool مراجعه کنید.

برای تولید مخزن کلید PKCS12، به اسناد OpenSSL مراجعه کنید.

پس‌از درستی‌سنجی الزامات

  1. فایل keystore را در /opt/apigee/customer/application/apigee-qpidd قرار دهید.
  2. مطمئن شوید که فایل keystore فقط توسط کاربر Apigee قابل‌خواندن است:
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore

فعال کردن SSL در Qpid

مراحل زیر را در هر بار روی یک گره Qpid انجام دهید:

فایل /opt/apigee/customer/application/qpidd.properties را باز کنید و خطوط زیر را اضافه کنید:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
conf_qpidd_qpid.keystore.password=keystore-password
conf_qpidd_qpid.keystore.certificateAlias=certificate-alias
## If you are using a PKCS12 keystore, specify the keystore type
conf_qpidd_qpid.keystore.keyStoreType=PKCS12
  1. مالک فایل را به apigee:apigee تغییر دهید:
    chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
  2. پیکربندی Qpidd:
    apigee-service apigee-qpidd configure
  3. بازراه‌اندازی Qpidd:
    apigee-service apigee-qpidd restart
  4. بررسی وضعیت با wait_for_ready:
    apigee-service apigee-qpidd wait_for_ready

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

خصوصیت‌ها را از فایل /opt/apigee/customer/application/qpidd.properties بردارید یا آن‌ها را نظرگذاری کنید:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
  1. پیکربندی Qpidd:
    apigee-service apigee-qpidd configure
  2. بازراه‌اندازی Qpidd:
    apigee-service apigee-qpidd restart
  3. وضعیت را با wait_for_ready بررسی کنید:
    apigee-service apigee-qpidd wait_for_ready

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.8.5-19f1842d4b6ee1f82cc8b05284959b26c6ae507d, built on 2025-09-18 17:23 UTC
    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

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

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

  1. از ldapsearch (yum install symasldap-clients) برای پرسمان ورودی سرپرست سیستم استفاده کنید. از این ورودی برای اصالت‌سنجی همه تماس‌های API استفاده می‌شود.
    /opt/symas/bin/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"
    }

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