يصف هذا المستند تقنيات مراقبة المكوّنات المتوافقة مع عملية النشر على الموقع الإلكتروني لـ Apigee Edge.
نظرة عامة
يتيح Edge عدة طرق للحصول على تفاصيل عن الخدمات والتحقّق من حالاتها. يسرد الجدول التالي أنواع عمليات التحقّق التي يمكنك إجراؤها على كل خدمة مؤهَّلة:
Mgmt API | |||||||
الخدمة | استخدام الذاكرة [JMX*] | التحقّق من الخدمة | حالة المستخدم/المؤسسة/ النشر | axstatus | التحقّق من قاعدة البيانات | apigee-service الحالة |
apigee-monit ** |
خادم الإدارة | |||||||
معالج الرسائل | |||||||
بوستشرس | |||||||
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
.على سبيل المثال، لإعادة تشغيل خادم الإدارة، نفذ الأمر التالي:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
لا تكون مصادقة JMX مفعَّلة بشكلٍ تلقائي. يمكنك تفعيل مصادقة JMX لجميع المكوّنات، كما هو موضّح في تفعيل مصادقة JMX. لتفعيل مصادقة JMX لـ Cassandra، يُرجى الاطّلاع على تفعيل مصادقة JMX على Cassandra.
تفعيل مصادقة JMX
لا تكون مصادقة JMX مفعَّلة بشكلٍ تلقائي. يمكنك تفعيل مصادقة JMX لجميع المكوّنات. بالنسبة إلى "كاساندرا"، يمكنك اتّباع التعليمات الواردة في المقالة تفعيل مصادقة JMX لخدمة "كاساندرا"
لتفعيل مصادقة JMX، يجب تنفيذ إجراء change_jmx_auth
التالي على جميع العُقد:
/opt/apigee/apigee-service/bin/apigee-service component_name change_jmx_auth [options|-f config_file]
المكان:
- component هو أحد الخيارات التالية:
edge-management-server
edge-message-processor
edge-postgres-server
edge-qpid-server
edge-router
- يحدِّد options ما يلي:
-u username
-p password
-e [y|n]
(تفعيل أو إيقاف)
- يحدِّد config_file موقع ملف الإعداد الذي تحدِّد فيه
ما يلي:
JMX_USERNAME=username
JMX_ENABLED=y|n
JMX_PASSWORD=password
(إذا لم يتم ضبطه أو تمريره باستخدام-p
، سيُطلب منك ذلك)
يمكنك استخدام خيارات سطر الأوامر أو ملف الإعدادات لتحديد اسم المستخدم وكلمة المرور وحالة التفعيل/الإيقاف. أنت لا تحدِّد كلاً من مجموعة خيارات وملف إعداد.
يتيح المثال التالي مصادقة JMX لخادم الإدارة باستخدام خيارات سطر الأوامر:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
يستخدم المثال التالي ملف إعدادات بدلاً من خيارات سطر الأوامر:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f /tmp/my-config-file
إذا كنت تستخدم Edge على عُقد متعددة، شغِّل الأمر على جميع العُقد، مع تحديد اسم المستخدم وكلمة المرور نفسيهما.
لإيقاف مصادقة JMX في سطر الأوامر، استخدِم الخيار "-e n"، كما هو موضّح في المثال التالي:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
المراقبة باستخدام JConsole
استخدِم JConsole (أداة متوافقة مع JMX) لإدارة إحصاءات التحقّق من الصحة والعمليات ومراقبتها. باستخدام JConsole، يمكنك استخدام إحصاءات JMX التي تعرضها الخوادم وعرضها في واجهة رسومية. لمزيد من المعلومات، يُرجى الاطّلاع على استخدام JConsole.
يستخدم JConsole عنوان 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 |
|
الاستخدام |
|
المراقبة باستخدام 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 للخادم الذي تريد التحقّق منه. إذا كنت مسجِّلاً الدخول إلى الخادم، يمكنك استخدام "المضيف المحلي"، وإلا حدِّد عنوان IP للخادم بالإضافة إلى اسم المستخدم وكلمة المرور.
- port_number هو منفذ Management API للخادم الذي تريد التحقّق منه. وهو منفذ مختلف لكل نوع من أنواع المكوّنات. على سبيل المثال، منفذ Management API في Management Server هو 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:passwordcurl 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 لمعالج الرسائل.
تتطلّب هذه المكالمة منك المصادقة باستخدام اسم مستخدِم و كلمة مرور إدارة النظام.
من المفترض أن يعرض الخادم حالة "تمّ النشر" لجميع المكالمات. إذا لم تنجح هذه الخطوات، اتّبِع الخطوات التالية:
- تحقَّق من سجلّات الخادم بحثًا عن أي أخطاء. تتوفّر السجلّات على:
- خادم الإدارة:
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-server
edge-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 على الإصدار 7 من CentOS، ثبِّت
قيمة
perl-Data-Dumper.x86_64
RPM.
check_postgres.pl ناتج
إنّ الإخراج التلقائي لطلبات البيانات من واجهة برمجة التطبيقات باستخدام 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
أباتشي كاساندرا
يتم تفعيل JMX تلقائيًا لـ "كاساندرا" ولا يتطلّب الوصول إلى "كاساندرا" عن بُعد كلمة مرور.
تفعيل مصادقة 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 مع طبقة المقابس الآمنة (SSL) في Cassandra
يوفر تفعيل JMX مع طبقة المقابس الآمنة أمانًا إضافيًا وتشفيرًا للتواصل المستنِد إلى JMX مع Cassandra. لتفعيل JMX مع طبقة المقابس الآمنة (SSL)، تحتاج إلى تقديم مفتاح وشهادة إلى "كاساندرا" لقبول اتصالات JMX المستندة إلى طبقة المقابس الآمنة. عليك أيضًا ضبط nodetool (وأي أدوات أخرى تتواصل مع Cassandra عبر JMX) لاستخدام طبقة المقابس الآمنة (SSL).
تتوافق JMX مع تفعيل طبقة المقابس الآمنة (SSL) مع كلمات مرور JMX بالنص العادي والمشفرة.
لتفعيل JMX مع بروتوكول SSL في Cassandra، اتّبِع الإجراء التالي:
- تفعيل JMX فعِّل تشفير كلمة المرور إذا لزم الأمر.
- فعِّل مصادقة JMX لنظام Cassandra.
كما هو موضّح أعلاه. تأكَّد من أنّ nodetool يعمل باستخدام اسم المستخدم وكلمة المرور اللذين تم ضبطهما.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
إعداد ملف تخزين المفاتيح وملف تخزين الثقة.
يجب أن يحتوي مخزن المفاتيح على مفتاح وشهادة، ويُستخدَم لضبط إعدادات خادم Cassandra. إذا كان ملف تخزين المفاتيح يتضمّن عدة أزواج من المفاتيح، تستخدم "كاساندرا" أول زوج مفاتيح لتفعيل طبقة المقابس الآمنة.
يُرجى العِلم أنّ كلمات مرور ملف تخزين المفاتيح والمفتاح يجب أن تكونا متطابقتَين (الإعداد التلقائي عند إنشاء المفتاح باستخدام أداة keytool).
- يجب أن يحتوي ملف تخزين الثقة على الشهادة فقط، ويستخدمه العملاء (أوامر apigee-service أو nodetool) المستندة إلى الخدمة للاتصال عبر JMX.
بعد التحقّق من المتطلبات المذكورة أعلاه:
- ضَع ملف تخزين المفاتيح في
/opt/apigee/data/apigee-cassandra
. - تأكَّد من أنّ ملف تخزين المفاتيح يمكن لمستخدم Apigee قراءته فقط من خلال إدخال
chown apigee:apigee /opt/apigee/data/apigee-cassandra/keystore.node1 chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node1
- يمكنك ضبط Cassandra لـ JMX باستخدام طبقة المقابس الآمنة من خلال اتّباع الخطوات التالية:
- أوقِف عقدة Cassandra عن طريق إدخال
apigee-service apigee-cassandra stop
- فعِّل بروتوكول SSL في Cassandra من خلال
فتح الملف
/opt/apigee/customer/application/cassandra.properties
وإضافة السطر التالي:conf_cassandra-env_com.sun.management.jmxremote.ssl=true
يجب أن يكون الملف مملوكًا للنطاق
apigee:apigee
. - قم بتمكين الإعداد المرتبط بطبقة المقابس الآمنة (SSL) في Cassandra على النحو التالي.
افتح الملف
/opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
وازل التعليقات من الأسطر التالية، مع تغيير المسار/opt/apigee/data/apigee-cassandra/keystore.node1
وكلمة مرور ملف تخزين المفاتيح حسب الحاجة.JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node1" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keystore-password" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true"
تأكَّد من أنّ مالك الملف هوapigee:apigee
. - ابدأ عقدة Cassandra عن طريق إدخال
apigee-service apigee-cassandra start
- أوقِف عقدة Cassandra عن طريق إدخال
- اضبط أوامر
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 (وسائط طبقة المقابس الآمنة المخزّنة في ملف)
- الخيار 2 (وسائط SSL المخزّنة في متغيّرات البيئة)
- الخيار 3 (تم تمرير وسيطات طبقة المقابس الآمنة مباشرةً إلى
apigee-service
)
الخيار 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
تأكَّد من أنّ ملف trustore قابل للقراءة من قِبل مستخدم 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>
شغِّل الأمر
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> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
عليك إعداد أداة العقدة. يتطلب Nodetool تمرير مَعلمات JMX إليه. هناك طريقتان يمكنك من خلالهما ضبط نقطة الاتصال وتعمل على تشغيل JMX المزود بطبقة المقابس الآمنة (SSL)، كما هو موضح في خيارات الإعداد أدناه:
تختلف الخيارات في طريقة تمرير الإعدادات ذات الصلة بطبقة المقابس الآمنة إلى أداة العقدة. في كلتا الحالتَين، يجب أن يكون لدى المستخدم الذي يشغّل nodetool أذونات القراءة على ملف 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
يجب أن يكون بإمكان أي مستخدم يشغّل 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 -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
إلغاء إعدادات طبقة المقابس الآمنة
إذا كنت بحاجة إلى التراجع عن إعدادات بروتوكول SSL الموضّحة في الإجراء أعلاه، اتّبِع الخطوات التالية:
- يمكنك إيقاف
apigee-cassandra
من خلال إدخالapigee-service apigee-cassandra stop
. - أزِل السطر
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
من ملف/opt/apigee/customer/application/cassandra.properties
. - أضِف تعليقًا على الأسطر التالية في
/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”
- ابدأ
apigee-cassandra
عن طريق إدخال - أزِل متغيّر البيئة
CASS_JMX_SSL
إذا تم ضبطه.unset CASS_JMX_SSL
- تأكَّد من أنّ الطلبات المستندة إلى
apigee-service
، مثلring
stop
وbackup
وما إلى ذلك، تعمل بشكل صحيح. - التوقف عن استخدام مفتاح التبديل
--ssl
مع nodetool
apigee-service apigee-cassandra start
إيقاف مصادقة JMX لنظام Cassandra
لإيقاف مصادقة JMX على Cassandra:
- تعديل
/opt/apigee/customer/application/cassandra.properties
- أزِل السطر التالي من الملف:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- تشغيل عملية الضبط على 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.
إحصاءات JMX في Cassandra
قاعة JMX MBeans | سمات JMX |
---|---|
ColumnFamilies/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 |
استخدام nodetool لإدارة عقد المجموعة
أداة nodetool هي واجهة سطر أوامر لخدمة Cassandra تُدير
عقد المجموعات. يمكن العثور على الأداة على الرابط /opt/apigee/apigee-cassandra/bin
.
يمكن إجراء الاستدعاءات التالية على جميع عُقد مجموعة Cassandra:
- معلومات عامة حول الحلقة (يمكن أيضًا الحصول عليها لعقدة 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
- معلومات عامة عن العقد (يتم إجراء مكالمة لكل عقدة)
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
- حالة عمليات بث البيانات: مراقبة الزيارات لعُقد كاساندرا:
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 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
) للحصول على معلومات حول ذاكرة التخزين المؤقت.