نحوه نظارت

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

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

نمای کلی

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

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

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

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

درگاه‌های پایش JMX و Management API

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

مؤلفه درگاه JMX Management API Port
سرور مدیریت 1099 8080
رهیاب 1100 8081
پردازشگر پیام 1101 8082
Qpid 1102 8083
Postgres 1103 8084

استفاده از JMX برای نظارت

فرایندهای نظارت برای Management Server،‏ Message Processor،‏ Qpid، و Postgres همگی از JMX استفاده می‌کنند. بااین‌حال، JMX به‌طور پیش‌فرض فقط برای Cassandra فعال است و به‌طور پیش‌فرض برای همه مؤلفه‌های Edge دیگر غیرفعال است. بنابراین، قبل‌از اینکه بتوانید بر مؤلفه‌ها نظارت کنید، باید JMX را به‌طور جداگانه برای هر مؤلفه فعال کنید.

اصالت‌سنجی JMX به‌طور پیش‌فرض فعال نیست. می‌توانید اصالت‌سنجی JMX را برای همه مؤلفه‌ها فعال کنید. برای Cassandra، از دستورالعمل‌های فعال کردن اصالت‌سنجی JMX برای Cassandra استفاده کنید.

فعال کردن JMX

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

برای فعال کردن JMX:

  1. فایل پیکربندی مؤلفه را ویرایش کنید. این فایل در opt/apigee/edge-component_name/bin/start قرار دارد. در محیط‌های تولید، این فایل‌های پیکربندی در دستگاه‌های مختلفی قرار خواهند داشت.

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

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

    برای مثال، فایل پیکربندی «سرور مدیریت» در سرور آن در /opt/apigee/edge-management-server/bin/start قرار دارد.

  2. گزینه‌های com.sun.management.jmxremote زیر را به خط exec که مؤلفه را شروع می‌کند اضافه کنید:
    -Dcom.sun.management.jmxremote \
      -Dcom.sun.management.jmxremote.port=port_number \
      -Dcom.sun.management.jmxremote.local.only=false \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false

    که port_number درگاه JMX برای سرویس است. برای دریافت شماره درگاه JMX سرویس خود، به درگاه‌های پایش JMX و Management API مراجعه کنید.

    برای مثال، برای فعال کردن JMX در «سرور مدیریت»، موارد زیر را به فایل پیکربندی «سرور مدیریت» اضافه کنید:

    exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts \
      -Djava.security.auth.login.config=$conf_path/jaas.config \
      -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path \
      -Ddata.dir=$data_dir \
      -Dcom.sun.management.jmxremote \
      -Dcom.sun.management.jmxremote.port=1099 \
      -Dcom.sun.management.jmxremote.local.only=false \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false \
       $* $debug_options com.apigee.kernel.MicroKernel

    این مثال درگاه ۱۰۹۹ را برای «سرور مدیریت» مشخص می‌کند. همان‌طور که قبلاً گفته شد، هر سرویس شماره درگاه خودش را دارد.

    خط ویرایش‌شده در فایل پیکربندی به‌صورت زیر است:

    exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
  3. فایل پیکربندی را ذخیره کنید.
  4. بخش را با فرمان restart بازراه‌اندازی کنید.

    برای مثال، برای بازراه‌اندازی Management Server، فرمان زیر را اجرا کنید:

    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

اصالت‌سنجی برای JMX به‌طور پیش‌فرض فعال نیست. می‌توانید اصالت‌سنجی JMX را برای همه قطعات فعال کنید، همان‌طور که در فعال کردن اصالت‌سنجی JMX شرح داده شده است. برای فعال کردن اصالت‌سنجی JMX برای Cassandra، به فعال کردن اصالت‌سنجی JMX برای Cassandra مراجعه کنید.

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

اصالت‌سنجی JMX به‌طور پیش‌فرض فعال نیست. می‌توانید اصالت‌سنجی JMX را برای همه مؤلفه‌ها فعال کنید. برای Cassandra، از دستورالعمل‌های فعال کردن اصالت‌سنجی JMX برای Cassandra استفاده کنید

برای فعال کردن اصالت‌سنجی JMX، کنش change_jmx_auth زیر را در همه گره‌ها اجرا کنید:

/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]

مکان:

  • component یکی از موارد زیر است:
    • edge-management-server
    • edge-message-processor
    • edge-postgres-server
    • edge-qpid-server
    • edge-router
  • options موارد زیر را مشخص می‌کند:
    • -u username
    • -p password
    • -e [y|n] (فعال یا غیرفعال کردن)
  • config_file مکان فایل پیکربندی را مشخص می‌کند که در آن موارد زیر را تعریف می‌کنید:
    • JMX_USERNAME=username
    • JMX_ENABLED=y|n
    • JMX_PASSWORD=password (اگر تنظیم نشده باشد یا با -p ارسال نشده باشد، از شما خواسته می‌شود)

می‌توانید از گزینه‌های خط فرمان یا فایل پیکربندی برای تعریف نام کاربری، گذرواژه، و وضعیت فعال/غیرفعال استفاده کنید. هم مجموعه‌ای از گزینه‌ها و هم فایل پیکربندی را مشخص نمی‌کنید.

مثال زیر اصالت‌سنجی JMX را برای «سرور مدیریت» بااستفاده از گزینه‌های خط فرمان فعال می‌کند:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -u foo -p bar -e y

مثال زیر به‌جای گزینه‌های خط فرمان از فایل پیکربندی استفاده می‌کند:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -f /tmp/my-config-file

اگر Edge را در چندین گره اجرا می‌کنید، فرمان را در همه گره‌ها اجرا کنید و نام کاربری و گذرواژه یکسانی را مشخص کنید.

برای غیرفعال کردن اصالت‌سنجی JMX در خط فرمان، از گزینه «-e n» استفاده کنید، همان‌طور که در مثال زیر نشان داده شده است:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -e n

نظارت با JConsole

از JConsole (ابزار سازگار با JMX) برای مدیریت و نظارت بر بررسی سلامت و آمار پردازش استفاده کنید. با JConsole، می‌توانید آمار JMX را که سرورهایتان ارائه می‌دهند مصرف کنید و آن‌ها را در یک میانای گرافیکی نمایش دهید. برای اطلاعات بیشتر، استفاده از 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

کاربرد

پایش با 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}/data/apigee-cassandra/jmxremote.password
      conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/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/data/apigee-cassandra/ کپی کنید:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
    2. فایل jmxremote.password را ویرایش کنید و نام کاربری و گذرواژه JMX خود را بااستفاده از نحو زیر اضافه کنید:
      JMX_USERNAME JMX_PASSWORD

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

    3. مطمئن شوید که فایل متعلق به «apigee» است و حالت فایل ۴۰۰ است:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
  4. فایل jmxremote.access را کپی و ویرایش کنید:
    1. فایل زیر را از فهرست راهنمای $JAVA_HOME به /opt/apigee/data/apigee-cassandra/ کپی کنید:
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
    2. فایل jmxremote.access را ویرایش کنید و نقش زیر را اضافه کنید:
      JMX_USERNAME readwrite
    3. مطمئن شوید که فایل متعلق به «apigee» است و حالت فایل ۴۰۰ است:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/data/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. خطوط زیر را در فایل از حالت توضیح خارج کنید:
    • JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}"
    • JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
  3. در خط فرمان، با وارد کردن echo -n 'Secret' | openssl dgst -sha1، درهم‌سازی(های) SHA1 گذرواژه(های) موردنظر را تولید کنید.
  4. گذرواژه(ها) را درمقابل نام کاربری در jmxremote.password تنظیم کنید.
  5. پس‌از به‌روزرسانی، فایل cassandra-env.sh را دوباره به حالت فقط خواندنی تغییر دهید.

غیرفعال کردن اصالت‌سنجی 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) را برای دریافت اطلاعات درباره حافظه نهان مشاهده کنید.