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

يصف هذا المستند تقنيات مراقبة المكوّنات المتوافقة مع عملية النشر على الموقع الإلكتروني من Apigee Edge لـ Private Cloud.

نظرة عامة

يتيح Edge عدة طرق للحصول على تفاصيل عن الخدمات والتحقّق من حالاتها. يوضّح الجدول التالي أنواع عمليات التحقّق التي يمكنك إجراؤها على كل خدمة مؤهَّلة:

واجهة برمجة تطبيقات الإدارة
المكوّن استخدام الذاكرة [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 بدون مصادقة أو اتصال مستند إلى طبقة المقابس الآمنة، اتّبِع الخطوات التالية. ملاحظة: في الأنظمة المخصّصة للإنتاج، يجب تفعيل كلّ من المصادقة المشفّرة وطبقة المقابس الآمنة لأجل الأمان.

  1. عدِّل ملف الضبط المناسب (راجِع مرجع ملف الضبط). أنشئ ملف الضبط إذا لم يكن متوفّرًا.
    conf_system_jmxremote_enable=true
  2. احفظ ملف الإعداد وتأكَّد من أنّه مملوك apigee:apigee.
  3. أعِد تشغيل مكوّن Edge المناسب.
    apigee-service edge-management-server restart

لإيقاف JMX، يجب إزالة السمة conf_system_jmxremote_enable أو تغيير قيمتها إلى false. بعد ذلك، يُرجى إعادة تشغيل مكوّن Edge المناسب.

المصادقة في JMX

تتوافق خدمة Edge for Private Cloud مع المصادقة المستندة إلى كلمة المرور باستخدام التفاصيل المخزّنة في الملفات. يمكنك تخزين كلمات المرور كسلسلة هاش لمزيد من الأمان.

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

لإيقاف مصادقة JMX، عليك إزالة السمة conf_system_jmxremote_authenticate أو تغيير القيمة إلى false وإعادة تشغيل مكوِّن Edge المناسب.

بروتوكول أمان طبقة النقل (SSL) في JMX

لتفعيل JMX المستند إلى طبقة المقابس الآمنة في مكوّن 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 باستخدام ملف تخزين الثقة وكلمة مرور ملف تخزين الثقة إذا كان بروتوكول SSL مفعّلاً في JMX". المرجع: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

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

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

يجب بدء JConsole باستخدام ملف تخزين الثقة وكلمة مرور ملف تخزين الثقة إذا كان بروتوكول SSL مفعّلاً في JMX. راجِع استخدام JConsole.

يستخدم JConsole عنوان URL للخدمة التالي لمراقبة سمات 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

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

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

عناصر JMX MBean سمات 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

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

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

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

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

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

يحصل المثال التالي على معلومات عن Message Processor (معالج الرسائل) على 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 عن طريق إصدار الأمر 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 على الإصدار 7 من CentOS، يجب تثبيت ملف ‎ 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 مع طبقة المقابس الآمنة، عليك تقديم مفتاح وشهادة إلى Cassandra لقبول اتصالات JMX المستندة إلى طبقة المقابس الآمنة. عليك أيضًا ضبط 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 زوج المفاتيح الأول لتفعيل بروتوكول SSL.

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

    • يجب أن يحتوي ملف تخزين الثقة على الشهادة فقط، ويستخدمه العملاء (أوامر 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 باستخدام طبقة المقابس الآمنة من خلال اتّباع الخطوات التالية:
    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 وطبقة المقابس الآمنة. اختَر خيارًا استنادًا إلى سهولة الاستخدام وممارسات الأمان المتّبعة لديك.

    الخيار 1 (وسائط 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=
    -Djavax.net.ssl.trustStorePassword=
    -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

    تأكَّد من أنّ ملف trustore قابل للقراءة من قِبل مستخدم Apigee.

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

    apigee-service apigee-cassandra ring

    الخيار 2 (وسائط 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=
    export CASS_JMX_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 (تم تمرير وسيطات طبقة المقابس الآمنة مباشرةً إلى apigee-service)

    نفِّذ أي أمر apigee-service مثل الأمر أدناه. لست بحاجة إلى ضبط أي متغيّرات بيئة.

    CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE= CASS_JMX_TRUSTSTORE_PASSWORD= CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. إعداد nodetool يتطلب Nodetool تمرير مَعلمات JMX إليه. هناك طريقتان يمكنك من خلالهما ضبط نقطة الاتصال وتعمل على تشغيل JMX المزود بطبقة المقابس الآمنة (SSL)، كما هو موضح في خيارات الإعداد أدناه:

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

    لمزيد من المعلومات حول معلَمات العقدة، يُرجى الاطّلاع على مستندات DataStax.

    خيار الضبط 1

    أنشئ ملفًا في الدليل الرئيسي للمستخدم الذي يشغِّل nodetool.

    $HOME/.cassandra/nodetool-ssl.properties

    أضِف الأسطر التالية إلى الملف:

    -Djavax.net.ssl.trustStore=
    -Djavax.net.ssl.trustStorePassword=
    -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

    يجب أن يكون بإمكان أي مستخدم يشغّل 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= -Djavax.net.ssl.trustStorePassword= -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -Dssl.enable=true -u  -pw  -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 وعنوان URL للخدمة التالي لمراقبة سمات JMX (MBeans) المقدَّمة من خلال JMX:

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

حيث يكون IP_address هو عنوان IP لخادم Cassandra.

إحصاءات JMX في Cassandra

عناصر JMX MBean سمات JMX

العمود "العائلات"/apprepo/environments

ColumnFamilies/apprepo/organizations

العمود Families/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

استخدام أداة العقدة لإدارة العُقد العنقودية

أداة العقدة هي واجهة سطر أوامر لـ "كاساندرا" تدير عُقد المجموعة. يمكن العثور على الأداة على /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. حالة عمليات بث البيانات: مراقبة الزيارات لعُقد كاساندرا:
    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.

مرجع "كاساندرا"

يُرجى الرجوع إلى عنوان 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 > المضيفات الافتراضية > قوائم الانتظار. اختَر قائمة انتظار لعرض تفاصيلها في الجزء الرئيسي من واجهة المستخدم. في عرض التفاصيل، يمكنك الاطّلاع على سمات "القائمة الانتظار" وإحصاءاتها، بما في ذلك معلومات عن الرسائل التي تم تسليمها ووضعها في "القائمة الانتظار" ومعدّلات الرسائل وما إلى ذلك.

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

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

استخدام واجهة برمجة تطبيقات إدارة Qpid

يمكنك استخدام واجهة برمجة التطبيقات Apache Qpid Broker-J REST API لتشغيل مهام الإدارة آليًا ومراقبة الوسيط. لمعرفة التفاصيل، يُرجى الاطّلاع على مستندات واجهة برمجة التطبيقات Apache Qpid Broker REST API.

ويمكنك أيضًا استخدام أدوات سطر الأوامر لمراقبة الوسيط. على سبيل المثال:

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

تفعيل المراقبة باستخدام طبقة المقابس الآمنة Qpid

لتوفير أمان إضافي للمراقبة والإدارة، فعِّل بروتوكول طبقة المقابس الآمنة (SSL) في "بوابة إدارة Qpid" وواجهات برمجة تطبيقات إدارة Qpid. اتّبِع الإرشادات أدناه لتقديم مفتاح وشهادة.

يوفّر Qpid خيارًا لمستودع ملفات المفاتيح، وهو مفعّل في Apigee. يقبل هذا النوع تنسيق ملف تخزين مفاتيح JKS العادي الذي تفهمه Java وأدوات Java، مثل keytool.

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

عليك تقديم ملف الشهادة مباشرةً لاستخدامه من قِبل عملاء Qpidd، بالإضافة إلى استخدام أداة keytool.

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

بعد إثبات استيفاء المتطلبات

  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
        
      chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem

تفعيل بروتوكول طبقة المقابس الآمنة في 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
  conf_qpidd_qpid.keystore.certificate=/opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
  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 التالية:

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

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

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

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