Edge for Private Cloud الإصدار 4.19.01
يصف هذا المستند أساليب مراقبة المكوّنات التي يتيحها النشر في الموقع لـ Apigee Edge.
نظرة عامة
يتيح Edge عدة طرق للحصول على تفاصيل حول الخدمات والتحقّق من حالاتها. يسرد الجدول التالي أنواع عمليات التحقّق التي يمكنك إجراؤها على كل خدمة مؤهَّلة:
| Mgmt API | |||||||
| الخدمة | استخدام الذاكرة [JMX*] | التحقّق من الخدمة | حالة المستخدم/المؤسسة/ النشر | axstatus | التحقّق من قاعدة البيانات | حالة "apigee-service" |
apigee-monit** |
| خادم الإدارة | |||||||
| معالج الرسائل | |||||||
| Postgres | |||||||
| Qpid | |||||||
| جهاز التوجيه | |||||||
| مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | |
|
* قبل استخدام JMX، عليك تفعيله، كما هو موضّح في تفعيل JMX. ** تتحقّق خدمة |
|||||||
منافذ مراقبة JMX وManagement API
يتيح كل مكوّن إجراء طلبات مراقبة JMX وManagement API على منافذ مختلفة. يسرد الجدول التالي منافذ JMX وManagement API لكل نوع من الخوادم:
| المكوّن | منفذ JMX | منفذ Management API |
|---|---|---|
| خادم الإدارة | 1099 | 8080 |
| جهاز التوجيه | 1100 | 8081 |
| معالج الرسائل | 1101 | 8082 |
| Qpid | 1102 | 8083 |
| Postgres | 1103 | 8084 |
استخدام JMX للمراقبة
تستخدم عمليات المراقبة في خادم الإدارة ومعالج الرسائل وQpid وPostgres جميعها JMX. ومع ذلك، يتم تفعيل JMX تلقائيًا فقط لـ Cassandra، ويتم إيقافه تلقائيًا لجميع مكونات Edge الأخرى. لذلك، يجب تفعيل JMX لكل مكوّن على حدة قبل أن تتمكّن من مراقبته.
لا يتم تفعيل مصادقة JMX تلقائيًا. يمكنك تفعيل مصادقة JMX لجميع المكوّنات. بالنسبة إلى Cassandra، اتّبِع التعليمات الواردة في مقالة تفعيل مصادقة JMX لـ Cassandra.
تفعيل JMX
يتم تفعيل JMX تلقائيًا لـ Cassandra فقط، ويتم إيقافه تلقائيًا لجميع مكوّنات Edge الأخرى. يوضّح هذا القسم كيفية تفعيل JMX لمكوّنات Edge الأخرى.
لتفعيل JMX:
- عدِّل ملف إعدادات المكوّن. يقع هذا الملف في
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. - خادم الإدارة:
- أضِف خيارات
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
يحدّد هذا المثال المنفذ 1099 لخادم الإدارة. كما ذكرنا سابقًا، لكل خدمة رقم منفذ خاص بها.
يظهر السطر الذي تم تعديله في ملف الإعداد على النحو التالي:
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
- احفظ ملف الإعداد.
- أعِد تشغيل المكوّن باستخدام الأمر
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-serveredge-message-processoredge-postgres-serveredge-qpid-serveredge-router
- يحدّد options ما يلي:
-u username-p password-
-e [y|n](تفعيل أو إيقاف)
- يحدّد config_file موقع ملف الإعداد الذي تحدّد فيه ما يلي:
JMX_USERNAME=usernameJMX_ENABLED=y|nJMX_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 عنوان 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 MBeans | سمات JMX |
|---|---|
|
الذاكرة |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
الاستخدام |
|
المراقبة باستخدام Management API
يتضمّن Edge العديد من واجهات برمجة التطبيقات التي يمكنك استخدامها لإجراء عمليات التحقّق من الخدمة على خوادمك، بالإضافة إلى التحقّق من المستخدمين والمؤسسات وعمليات النشر. ويوضّح هذا القسم واجهات برمجة التطبيقات هذه.
إجراء عمليات التحقّق من الخدمة
توفّر Management API عدة نقاط نهاية لمراقبة المشاكل في خدماتك وتشخيصها. وتشمل نقاط النهاية هذه ما يلي:
| نقطة نهاية | الوصف |
|---|---|
/servers/self/up |
يتحقّق مما إذا كانت الخدمة قيد التشغيل. لا يتطلب طلب البيانات من واجهة برمجة التطبيقات هذا إجراء مصادقة. إذا كانت الخدمة قيد التشغيل، ستعرض نقطة النهاية هذه الاستجابة التالية: <ServerField> <Up>true</Up> </ServerField> إذا كانت الخدمة غير مفعَّلة، ستتلقّى ردًا مشابهًا لما يلي (استنادًا إلى الخدمة التي تتحقّق منها وكيفية التحقّق منها): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
تعرض معلومات عن الخدمة، بما في ذلك:
يتطلّب طلب بيانات من واجهة برمجة التطبيقات هذا المصادقة باستخدام بيانات اعتماد مشرف 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 هو 8080. للحصول على قائمة بأرقام منافذ Management API التي يمكن استخدامها، يُرجى الاطّلاع على منافذ مراقبة JMX وManagement API
لتغيير تنسيق الردّ، يمكنك تحديد عنوان Accept على أنّه "application/json" أو "application/xml".
يحصل المثال التالي على حالة جهاز التوجيه على المضيف المحلي (المنفذ 8081):
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:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
حيث يكون port_number إما 8080 لخادم الإدارة أو 8082 لمعالج الرسائل.
يتطلب منك هذا الطلب إجراء مصادقة باستخدام اسم المستخدم وكلمة المرور الخاصين بإدارة النظام.
يجب أن يعرض الخادم حالة "تم النشر" لجميع المكالمات. إذا لم تنجح هذه الخطوات، يُرجى اتّباع ما يلي:
- تحقَّق من سجلّات الخادم بحثًا عن أي أخطاء. تتوفّر السجلّات في:
- خادم الإدارة:
opt/apigee/var/log/edge-management-server - معالج الرسائل:
opt/apigee/var/log/edge-message-processor
- خادم الإدارة:
- أجرِ مكالمة مع الخادم للتحقّق مما إذا كان يعمل بشكل صحيح.
- أزِل الخادم من ELB ثم أعِد تشغيله:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
حيث service_name:
edge-management-serveredge-message-processor
التحقّق من الحالة باستخدام الأمر apigee-service
يمكنك تحديد مشاكل خدمات Edge وحلّها باستخدام الأمر apigee-service عند تسجيل الدخول إلى الخادم الذي يشغّل الخدمة.
للتحقّق من حالة خدمة باستخدام apigee-service:
- سجِّل الدخول إلى الخادم وشغِّل الأمر التالي:
/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
- خادم الإدارة:
- إذا لم تكن الخدمة قيد التشغيل، ابدأ الخدمة:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- بعد إعادة تشغيل الخدمة، تأكَّد من أنّها تعمل، إما باستخدام الأمر
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.
قبل تشغيل النص البرمجي:
- يجب تثبيت النص البرمجي check_postgres.pl على كل عقدة Postgres.
- تأكَّد من تثبيت
perl-Time-HiRes.x86_64، وهي وحدة Perl التي تنفّذ المنبّهات ذات الدقة العالية والسكون وgettimeofday وموقِّتات التمرين المتناوب. على سبيل المثال، يمكنك تثبيتها باستخدام الأمر التالي:
yum install perl-Time-HiRes.x86_64
- CentOS 7: قبل استخدام check_postgres.pl على CentOS v7، ثبِّت
perl-Data-Dumper.x86_64RPM.
check_postgres.pl output
يتوافق الناتج التلقائي لطلبات البيانات من واجهة برمجة التطبيقات باستخدام check_postgres.pl مع Nagios. بعد تثبيت النص البرمجي، عليك إجراء عمليات التحقّق التالية:
- تحقَّق من حجم قاعدة البيانات:
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'
- تحقَّق من عدد الاتصالات الواردة بقاعدة البيانات وقارِنها بالحد الأقصى المسموح به
للاتصالات:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- تحقَّق مما إذا كانت قاعدة البيانات قيد التشغيل ومتاحة:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- تحقَّق من مساحة القرص:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- تحقَّق من عدد المؤسسات والبيئات التي تم إعدادها في عقدة 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، يُرجى الاطّلاع على ما يلي:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
يتم تفعيل JMX تلقائيًا في Cassandra، ولا يتطلّب الوصول عن بُعد إلى JMX في Cassandra كلمة مرور.
تفعيل مصادقة JMX لـ Cassandra
يمكنك تفعيل مصادقة JMX لـ Cassandra. بعد ذلك، سيُطلب منك تمرير اسم مستخدم وكلمة مرور لجميع الطلبات إلى الأداة المساعدة nodetool.
لتفعيل مصادقة JMX في Cassandra:
- أنشئ ملف
cassandra.propertiesوعدِّله:- عدِّل ملف
/opt/apigee/customer/application/cassandra.properties. إذا لم يكن الملف متوفّرًا، أنشِئه. - أضِف ما يلي إلى الملف:
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
- احفظ ملف
cassandra.properties. - غيِّر مالك الملف إلى "apigee:apigee"، كما هو موضّح في المثال التالي:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
لمزيد من المعلومات حول استخدام ملفات المواقع لضبط الرموز المميّزة، يُرجى الاطّلاع على كيفية ضبط Edge.
- عدِّل ملف
- إنشاء
jmx_auth.shوتعديلها:- أنشِئ ملفًا في الموقع التالي إذا لم يكن متوفّرًا:
/opt/apigee/customer/application/jmx_auth.sh
- أضِف السمات التالية إلى الملف:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- احفظ ملف
jmx_auth.sh. - تحديد مصدر الملف:
source /opt/apigee/customer/application/jmx_auth.sh
- أنشِئ ملفًا في الموقع التالي إذا لم يكن متوفّرًا:
- انسخ ملف
jmxremote.passwordوعدِّله:- انسخ الملف التالي من دليل
$JAVA_HOMEإلى/opt/apigee/data/apigee-cassandra/:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password - عدِّل ملف
jmxremote.passwordوأضِف اسم المستخدم وكلمة المرور لـ JMX باستخدام البنية التالية:JMX_USERNAME JMX_PASSWORD
حيث JMX_USERNAME وJMX_PASSWORD هما اسم المستخدم وكلمة المرور لـ JMX اللذان تم ضبطهما سابقًا.
- تأكَّد من أنّ الملف مملوك لـ "apigee" وأنّ وضع الملف هو 400:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
- انسخ الملف التالي من دليل
- انسخ ملف
jmxremote.accessوعدِّله:- انسخ الملف التالي من دليل
$JAVA_HOMEإلى/opt/apigee/data/apigee-cassandra/:cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access - عدِّل الملف jmxremote.access وأضِف الدور التالي:
JMX_USERNAME readwrite
- تأكَّد من أنّ الملف مملوك لـ "apigee" وأنّ وضع الملف هو 400:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
- انسخ الملف التالي من دليل
- شغِّل
configureعلى Cassandra:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- أعِد تشغيل Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- كرِّر هذه العملية على جميع عُقد Cassandra الأخرى.
تفعيل تشفير كلمة مرور JMX
لتفعيل تشفير كلمة مرور JMX، اتّبِع الخطوات التالية:
- افتح الملف
source/conf/casssandra-env.sh. - أزِل علامة التعليق من الأسطر التالية في الملف:
-
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"
-
- في سطر الأوامر، أنشئ تجزئة (تجزئات) SHA1 لكلمات المرور المطلوبة عن طريق إدخال
echo -n 'Secret' | openssl dgst -sha1 - اضبط كلمات المرور مقابل اسم المستخدم في
jmxremote.password. - يُرجى تغيير الملف
cassandra-env.shإلى إذن بالقراءة فقط بعد التحديث.
إيقاف مصادقة JMX لـ Cassandra
لإيقاف مصادقة JMX في Cassandra:
- تعديل "
/opt/apigee/customer/application/cassandra.properties". - أزِل السطر التالي في الملف:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- شغِّل configure على Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- أعِد تشغيل Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- كرِّر هذه العملية على جميع عُقد 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:
- معلومات عامة عن الحلقة (يمكن أيضًا استخدامها لعقدة 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
- معلومات عامة عن العُقد (طلب لكل عُقدة)
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
- حالة خادم Thrift (واجهة برمجة تطبيقات العميل)
nodetool [-u username -pw password] -h localhost statusthrift
ستظهر نتيجة الأمر أعلاه على النحو التالي:
running
- حالة عمليات نقل البيانات: راقِب عدد الزيارات لعُقد 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 ZooKeeper
التحقّق من حالة ZooKeeper
- تأكَّد من أنّ عملية ZooKeeper قيد التشغيل. يكتب ZooKeeper ملف PID في
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid. - اختبِر منافذ ZooKeeper للتأكّد من إمكانية إنشاء اتصال TCP بالمنفذَين 2181 و3888 على كل خادم ZooKeeper.
- تأكَّد من إمكانية قراءة القيم من قاعدة بيانات ZooKeeper. يمكنك الاتصال باستخدام مكتبة عميل ZooKeeper (أو
/opt/apigee/apigee-zookeeper/bin/zkCli.sh) وقراءة قيمة من قاعدة البيانات. - الاطّلاع على الحالة:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
استخدام كلمات ZooKeeper المكوّنة من أربعة أحرف
يمكن مراقبة ZooKeeper من خلال مجموعة صغيرة من الأوامر (كلمات من أربعة أحرف) يتم إرسالها إلى المنفذ 2181 باستخدام netcat (nc) أو telnet.
لمزيد من المعلومات حول أوامر ZooKeeper، يُرجى الاطّلاع على: مرجع أوامر Apache ZooKeeper.
على سبيل المثال:
-
srvr: يعرض هذا الخيار التفاصيل الكاملة للخادم. -
stat: يعرض هذا الأمر تفاصيل موجزة عن الخادم والأجهزة العميلة المتصلة.
يمكن إصدار الأوامر التالية إلى منفذ ZooKeeper:
- شغِّل الأمر ruok المكوّن من أربعة أحرف لاختبار ما إذا كان الخادم يعمل في حالة عدم حدوث خطأ. وتعرض الاستجابة الناجحة "imok".
echo ruok | nc host 2181
المرتجعات:
imok
- شغِّل الأمر المكوَّن من أربعة أحرف،
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
- إذا لم تكن أداة 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 لمعرفة ما إذا كانت الطلبات المحدّدة تتم معالجتها بشكل صحيح. بعبارة أخرى، ابحث عن طلب بحث محدّد يعرض النتيجة الصحيحة.
- استخدِم
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
- تحقَّق مما إذا كان خادم الإدارة لا يزال متصلاً بـ LDAP باستخدام الأمر التالي:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
المرتجعات:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
يمكنك أيضًا مراقبة ذاكرات التخزين المؤقت في OpenLDAP، ما يساعد في تقليل عدد عمليات الوصول إلى القرص، وبالتالي تحسين أداء النظام. يمكن أن تؤثر مراقبة حجم ذاكرة التخزين المؤقت ثم ضبطها في خادم OpenLDAP بشكل كبير في أداء خادم الدليل. يمكنك الاطّلاع على ملفات السجلّ (opt/apigee/var/log) للحصول على معلومات حول ذاكرة التخزين المؤقت.