كيفية المراقبة

يوضّح هذا المستند أساليب المراقبة للمكوّنات المتوافقة مع عملية نشر Apigee Edge for 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 موقع ملف الإعداد
خادم الإدارة 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 المناسب.

طبقة المقابس الآمنة في JMX

لتفعيل JMX المستند إلى طبقة المقابس الآمنة في أحد مكونات 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 أعلاه. تأكَّد من أنّ ملف تخزين المفاتيح قابل للقراءة بواسطة 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.52.01/how-monitor#jconsole.

يمكن إضافة سطر واحد ينص على أنّه "يجب بدء تشغيل jconsole باستخدام truststore وكلمة مرور truststore في حال تفعيل SSL لـ JMX". المرجع: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

المراقبة باستخدام JConsole

استخدِم JConsole (أداة متوافقة مع JMX) لإدارة إحصاءات عملية التحقّق من الصحة ومراقبتها. باستخدام JConsole، يمكنك استخدام إحصاءات JMX التي تعرضها الخوادم وعرضها في واجهة رسومية. لمزيد من المعلومات، يُرجى الاطّلاع على استخدام JConsole.

يجب بدء JConsole باستخدام truststore وكلمة مرور truststore إذا تم تفعيل SSL لـ JMX. راجِع استخدام JConsole.

يستخدم JConsole عنوان URL الخاص بالخدمة التالي لمراقبة سمات JMX (MBeans) المقدَّمة عبر JMX:

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

المكان:

  • IP_address هو عنوان IP الخاص بالخادم الذي تريد مراقبته.
  • port_number هو رقم منفذ JMX للخادم الذي تريد مراقبته.

على سبيل المثال، لمراقبة &quot;خادم الإدارة&quot;، أصدِر أمرًا على النحو التالي (بافتراض أنّ عنوان IP للخادم هو 216.3.128.12):

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

يُرجى العِلم أنّ هذا المثال يحدّد المنفذ 1099، وهو منفذ JMX لخادم الإدارة. لمعرفة المنافذ الأخرى، يُرجى الاطّلاع على منافذ مراقبة JMX وManagement API.

يعرض الجدول التالي إحصاءات JMX العامة:

JMX MBeans سمات JMX

الذاكرة

HeapMemoryUsage

NonHeapMemoryUsage

الاستخدام

مرجع ملف الإعداد

توضّح الأقسام التالية التغييرات التي قد تحتاج إلى إجرائها على ملفات إعداد مكوِّن Edge الخاصة بإعدادات JMX. اطّلِع على مراقبة المنافذ وملفات الإعداد للحصول على مزيد من المعلومات.

إعدادات JMX التي ستتم إضافتها إلى ملف إعداد المكوّن المناسب

  • فعِّل وكيل JMX على المكوّن الطرفي. القيمة التلقائية هي "خطأ".
    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
  • مسار ملف تخزين المفاتيح يجب أن يكون مملوكًا وقابلاً للقراءة من قِبل مستخدم Apigee فقط.
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.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) القيمة التلقائية هي "خطأ". لا ينطبق إلا إذا كان بروتوكول طبقة المقابس الآمنة (SSL) مفعَّلاً.
    conf_system_jmxremote_registry_ssl=false

المراقبة باستخدام Management API

تتضمّن Edge العديد من واجهات برمجة التطبيقات التي يمكنك استخدامها لإجراء عمليات التحقّق من الخدمة على خوادمك، بالإضافة إلى التحقّق من المستخدمين والمؤسسات وعمليات النشر. يوضّح هذا القسم واجهات برمجة التطبيقات هذه.

إجراء عمليات التحقّق من الخدمة

توفّر Management API عدة نقاط نهاية لمراقبة المشاكل في خدماتك وتشخيصها. تشمل نقاط النهاية هذه ما يلي:

نقطة نهاية الوصف
/servers/self/up

للتحقّق مما إذا كانت إحدى الخدمات تعمل. لا يتطلّب طلب البيانات من واجهة برمجة التطبيقات هذا إجراء مصادقة.

إذا كانت الخدمة قيد التشغيل، ستعرض نقطة النهاية هذه الاستجابة التالية:

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

إذا كانت الخدمة غير نشطة، ستتلقّى ردًا مشابهًا لما يلي (حسب الخدمة وكيفية التحقّق منها):

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

تعرض هذه الطريقة معلومات عن الخدمة، بما في ذلك:

  • خصائص الإعداد
  • وقت البدء ووقت التشغيل
  • معلومات حول الإصدار وRPM والمعرّف الفريد العالمي
  • اسم المضيف وعنوان 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 الخاص بخادم الإدارة هو 8080. للحصول على قائمة بأرقام منافذ Management API التي يجب استخدامها، يُرجى الاطّلاع على منافذ مراقبة JMX وManagement API.

لتغيير تنسيق الردّ، يمكنك تحديد العنوان Accept على أنّه "application/json" أو "application/xml".

يحصل المثال التالي على حالة "الموجّه" على المضيف المحلي (المنفذ 8081):

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

يحصل المثال التالي على معلومات حول &quot;معالج الرسائل&quot; على العنوان 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 إما 8080 لخادم الإدارة أو 8082 لمعالج الرسائل.

تتطلّب هذه المكالمة المصادقة باستخدام اسم المستخدم وكلمة المرور الخاصَّين بإدارة النظام.

يجب أن يعرض الخادم الحالة "تم النشر" لجميع المكالمات. إذا لم تنجح هذه الخطوات، اتّبِع ما يلي:

  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 الخاص بالخادم وتضمين اسم مستخدم وكلمة مرور مشرف النظام في طلب البيانات من واجهة برمجة التطبيقات.

مراقبة Postgres

يتوافق Postgres مع العديد من الأدوات المساعدة التي يمكنك استخدامها للتحقّق من حالته. يتم وصف هذه الأدوات في الأقسام التالية.

التحقّق من المؤسسات والبيئات على Postgres

يمكنك البحث عن أسماء المؤسسات والبيئات التي تم إعدادها على خادم Postgres Server من خلال تنفيذ الأمر curl التالي:

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

يجب أن يعرض النظام اسم المؤسسة والبيئة.

تأكيد حالة الإحصاءات

يمكنك التحقّق من حالة خوادم إحصاءات 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 الإصدار 7، يجب تثبيت حزمة perl-Data-Dumper.x86_64 RPM.

check_postgres.pl output

يكون الناتج التلقائي لطلبات البيانات من واجهة برمجة التطبيقات باستخدام 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

يمكنك إجراء عمليات التحقّق من واجهة برمجة التطبيقات على جهاز Postgres من خلال تنفيذ الأمر التالي: curl

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" وأنّ وضع الملف هو 400:
      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" وأنّ وضع الملف هو 400:
      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. في سطر الأوامر، أنشئ تجزئة SHA1 لكلمات المرور المطلوبة من خلال إدخال echo -n 'Secret' | openssl dgst -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 مع طبقة المقابس الآمنة أمانًا وتشفيرًا إضافيَين للاتصال المستند إلى JMX مع Cassandra. لتفعيل JMX باستخدام SSL، عليك تقديم مفتاح وشهادة إلى Cassandra من أجل قبول اتصالات JMX المستندة إلى SSL. عليك أيضًا ضبط nodetool (وأي أدوات أخرى تتواصل مع Cassandra عبر JMX) لاستخدام 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. إعداد ملف تخزين المفاتيح وملف تخزين الشهادات الموثوقة

    • يجب أن يحتوي مخزن المفاتيح على مفتاح وشهادة، ويُستخدم لإعداد خادم Cassandra. إذا كان مخزن المفاتيح يحتوي على أزواج مفاتيح متعددة، تستخدم Cassandra زوج المفاتيح الأول لتفعيل طبقة المقابس الآمنة.

      يُرجى العِلم أنّه يجب أن تكون كلمات المرور الخاصة بمخزن المفاتيح والمفتاح متطابقة (وهذا هو الإعداد التلقائي عند إنشاء المفتاح باستخدام أداة keytool).

    • يجب أن يحتوي Truststore على الشهادة فقط، ويستخدمه العملاء (الأوامر المستندة إلى apigee-service أو nodetool) للاتصال عبر JMX.

    بعد التحقّق من استيفاء المتطلبات المذكورة أعلاه:

    1. ضَع ملف تخزين المفاتيح في /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. فعِّل بروتوكول طبقة المقابس الآمنة (SSL) في Cassandra من خلال فتح الملف /opt/apigee/customer/application/cassandra.properties وإضافة الأسطر التالية:
      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
      ## On FIPS enabled systems, when you are using non standard keystore, set the following:
      ## These can be skipped otherwise
      ## Possible values are JKS, PKCS12, BCFKS
      conf_cassandra_env_javax.net.ssl.keyStoreType=PKCS12
      conf_cassandra_env_javax.net.ssl.keyStoreAlias=cassjmx-tls-alias
    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. اختَر خيارًا استنادًا إلى سهولة الاستخدام وممارسات الأمان.

    الخيار 1 (وسيطات طبقة المقابس الآمنة المخزّنة في ملف)

    اضبط متغيرات البيئة التالية:

    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
    ## If you are using a non standard truststore, set below, otherwise skip
    ## Possible values are JKS, PKCS12, BCFKS
    -Djavax.net.ssl.trustStoreType=PKCS12

    تأكَّد من أنّ ملف Truststore يمكن للمستخدم Apigee قراءته.

    نفِّذ الأمر apigee-service التالي. إذا تم تشغيلها بدون خطأ، تكون الإعدادات صحيحة.

    apigee-service apigee-cassandra ring

    الخيار 2 (وسيطات طبقة المقابس الآمنة المخزَّنة في متغيرات البيئة)

    اضبط متغيرات البيئة التالية:

    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

    الخيار 3 (يتم تمرير وسيطات 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، كما هو موضّح في خيارات الإعداد أدناه:

    تختلف الخيارات في طريقة تمرير الإعدادات ذات الصلة بطبقة المقابس الآمنة إلى أداة nodetool. في كلتا الحالتَين، يجب أن يكون لدى المستخدم الذي يشغّل nodetool أذونات READ على ملف truststore. اختَر خيارًا مناسبًا استنادًا إلى سهولة الاستخدام وممارسات الأمان.

    لمزيد من المعلومات عن مَعلمات nodetool، راجِع مستندات DataStax.

    خيار الإعداد 1

    أنشئ ملفًا في الدليل الرئيسي للمستخدم الذي يشغّل أداة 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
    ## If you are using a non standard truststore, set below, otherwise skip
    ## Possible values are JKS, PKCS12, BCFKS
    -Djavax.net.ssl.trustStoreType=PKCS12

    يجب أن يكون مسار truststore المحدّد أعلاه متاحًا لأي مستخدم يشغّل nodetool.

    نفِّذ nodetool باستخدام الخيار --ssl.

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

    خيار الإعداد 2

    نفِّذ 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 الموضّحة في الإجراء أعلاه، اتّبِع الخطوات التالية:

  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 وعنوان URL الخاص بالخدمة التالي لمراقبة سمات 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 واحدة): ابحث عن "نشط" و "عادي" لجميع العُقد.
    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 (الذي يعرض واجهة برمجة التطبيقات للعملاء)
    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

يُرجى الرجوع إلى عنوان URL التالي: http://www.datastax.com/docs/1.0/operations/monitoring.

مراقبة Apache Qpid Broker-J

يمكنك مراقبة Qpid Broker-J من وحدة تحكّم إدارة Qpid. يوضّح هذا القسم كيفية الوصول إلى وحدة التحكّم واستخدامها لتنفيذ وظائف المراقبة الأساسية. للحصول على معلومات أكثر تفصيلاً حول استخدام وحدة التحكّم الإدارية، راجِع وحدة التحكّم الإدارية على الويب في مستندات Apache Qpid.

الوصول إلى وحدة التحكّم الإدارية

منفذ وحدة التحكّم الإدارية التلقائي هو 8090. للوصول إلى وحدة التحكّم على هذا المنفذ التلقائي، وجِّه متصفّح الويب إلى:

http://QPID_NODE_IP:8090

لتسجيل الدخول إلى وحدة التحكّم، استخدِم بيانات الاعتماد التلقائية التي ضبطتها Apigee أو بيانات الاعتماد التي تم ضبطها في ملف إعداد Edge. للحصول على التفاصيل، يُرجى الاطّلاع على مرجع ملف إعداد Edge.

مراقبة قوائم الانتظار والرسائل

في لوحة التنقّل اليمنى، انتقِل إلى Java-Broker > virtualhosts > queues. اختَر قائمة انتظار لعرض تفاصيلها في الجزء الرئيسي من واجهة المستخدم. في عرض التفاصيل، يمكنك الاطّلاع على سمات وإحصاءات قائمة الانتظار، بما في ذلك معلومات عن الرسائل التي تم تسليمها وإضافتها إلى قائمة الانتظار ومعدّلات الرسائل وما إلى ذلك.

عرض ملفات السجلّ وتنزيلها

في لوحة التنقّل اليمنى، انتقِل إلى Java-Broker > brokerloggers > logfile. في عرض التفاصيل الخاص بواجهة المستخدم الرئيسية، يمكنك الاطّلاع على تفاصيل ملف السجلّ وتنزيل ملفات السجلّ.

استخدام واجهة Qpid management API

يمكنك استخدام واجهة 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. اتّبِع الإرشادات أدناه لتقديم مفتاح وشهادة.

توفّر Qpid خيارًا لـ File Keystore، وهو مفعّل في Apigee. يقبل هذا النوع تنسيق ملف تخزين مفاتيح JKS العادي الذي تفهمه Java وأدوات Java، مثل keytool. يمكنه أيضًا قبول ملف تخزين مفاتيح PKCS12، والذي يمكن إنشاؤه باستخدام أدوات مثل OpenSSL.

إعداد ملف تخزين المفاتيح

للحصول على معلومات حول إنشاء ملفات تخزين المفاتيح، يُرجى الاطّلاع على مستندات Java Keytool.

للحصول على معلومات حول إنشاء ملفات تخزين مفاتيح PKCS12، يُرجى الاطّلاع على مستندات OpenSSL.

بعد التحقّق من المتطلبات

  1. ضَع ملف تخزين المفاتيح في /opt/apigee/customer/application/apigee-qpidd.
  2. تأكَّد من أنّ ملف تخزين المفاتيح لا يمكن قراءته إلا من قِبل مستخدم Apigee:
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore

تفعيل طبقة المقابس الآمنة في 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

إلغاء تغييرات إعدادات طبقة المقابس الآمنة

أزِل الخصائص أو علِّق عليها من الملف /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 بالمنفذين 2181 و3888 على كل خادم ZooKeeper.
  3. تأكَّد من إمكانية قراءة القيم من قاعدة بيانات ZooKeeper. اربط باستخدام مكتبة برامج ZooKeeper (أو /opt/apigee/apigee-zookeeper/bin/zkCli.sh) واقرأ قيمة من قاعدة البيانات.
  4. الاطّلاع على الحالة:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

استخدام كلمات ZooKeeper المكوّنة من أربعة أحرف

يمكن مراقبة ZooKeeper باستخدام مجموعة صغيرة من الأوامر (كلمات من أربعة أحرف) يتم إرسالها إلى المنفذ 2181 باستخدام 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

اختبار مستوى LDAP

يمكنك مراقبة SymasLDAP لمعرفة ما إذا كان يتم عرض الطلبات المحدّدة بشكلٍ صحيح. بعبارة أخرى، ابحث عن عبارة بحث معيّنة تعرض النتيجة الصحيحة.

  1. استخدِم ldapsearch (yum install symasldap-clients) للاستعلام عن إدخال مشرف النظام. يُستخدَم هذا الإدخال لمصادقة جميع طلبات البيانات من واجهة برمجة التطبيقات.
    /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) للحصول على معلومات حول ذاكرة التخزين المؤقت.