يصف هذا المستند أساليب المراقبة للمكوّنات المتوافقة مع نظام التشغيل داخل الشركة ونشرت Apigee Edge.
نظرة عامة
تدعم شبكة Edge عدة طرق للحصول على تفاصيل حول الخدمات وكذلك التحقق من الحالات. يسرد الجدول التالي أنواع عمليات التحقّق التي يمكنك إجراؤها في كل حملة مؤهَّلة. الخدمة:
واجهة برمجة تطبيقات الإدارة | |||||||
الخدمة | استخدام الذاكرة [JMX*] | التحقّق من الخدمة | حالة النشر/المستخدم/ المؤسسة | axstatus | فحص قاعدة البيانات | حالة apigee-service |
apigee-monit ** |
خادم الإدارة | |||||||
معالج الرسائل | |||||||
Postgres | |||||||
Qpid | |||||||
جهاز التوجيه | |||||||
مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | مزيد من المعلومات | |
* قبل أن تتمكن من استخدام JMX، يجب تفعيلها، باعتباره يمكنك الاطّلاع عليها في مقالة تفعيل JMX. ** تتحقّق الخدمة |
منافذ مراقبة JMX وManagement API
يدعم كل مكوِّن مراقبة JMX وواجهة برمجة التطبيقات Management API في منافذ مختلفة. تشير رسالة الأشكال البيانية يسرد الجدول التالي منافذ JMX وواجهة برمجة تطبيقات الإدارة لكل نوع من الخوادم:
المكوّن | منفذ JMX | منفذ Management API |
---|---|---|
خادم الإدارة | 1099 | 8080 |
جهاز التوجيه | 1100 | 8081 |
معالج الرسائل | 1101 | 8082 |
Qpid | 1102 | 8083 |
Postgres | 1103 | 8084 |
استخدام JMX للمراقبة
عمليات المراقبة لخادم الإدارة ومعالج الرسائل وQpid وPostgres جميعًا واستخدام JMX. مع ذلك، يتم تفعيل JMX بشكل تلقائي فقط لـ "كاساندرا"، ويتم إيقافه تلقائيًا لجميع المستخدمين مكونات Edge الأخرى. لذلك، يجب عليك تمكين JMX بشكل فردي لكل مكون قبل مراقبتها.
لا تكون مصادقة JMX مفعَّلة بشكلٍ تلقائي. يمكنك تفعيل مصادقة JMX للجميع. والمكونات. بالنسبة إلى كاساندرا، استخدم الإرشادات الموجودة في تفعيل مصادقة 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 المصادقة لـ"كاساندرا"، يُرجى مراجعة تفعيل مصادقة JMX على Cassandra
تفعيل مصادقة JMX
لا تكون مصادقة JMX مفعَّلة بشكلٍ تلقائي. يمكنك تفعيل مصادقة JMX للجميع. والمكونات. بالنسبة إلى كاساندرا، استخدم الإرشادات الموجودة في تفعيل مصادقة JMX على Cassandra
لتفعيل مصادقة 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 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 للخادم الذي تريد التحقّق منه. هذا هو منفذ مختلف لكل نوع من المكونات. على سبيل المثال، عنوان URL لخادم الإدارة منفذ Management API هو 8080. للحصول على قائمة بأرقام منافذ Management API المراد استخدامها، يمكنك الاطّلاع على منافذ مراقبة JMX وManagement API
لتغيير تنسيق الردّ، يمكنك تحديد عنوان Accept
على النحو التالي:
"application/json" أو "application/xml".
يوضح المثال التالي حالة جهاز التوجيه على المضيف المحلي (المنفذ 8081):
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
يحصل المثال التالي على معلومات حول معالج الرسائل في 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 هو منفذ واجهة برمجة تطبيقات الإدارة للخدمة.
يفترض هذا المثال أنك سجلت الدخول إلى الخادم ويمكنك استخدام "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
يصف هذا القسم الأساليب التي يمكنك استخدامها بشكل خاص لمراقبة ما يُعرف باسم "بوستغريس" قاعدة البيانات.
استخدام نص 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
دورة في الدقيقة
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 من خلال استدعاء 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 تلقائيًا لـ Cassandra ولا يتطلّب الوصول إلى JMX عن بُعد إلى Cassandra وكلمة المرور.
تفعيل مصادقة JMX لـ Cassandra
يمكنك تفعيل مصادقة JMX لـ Cassandra. بعد القيام بذلك، سيُطلب منك وتمرير اسم مستخدم وكلمة مرور إلى جميع الاتصالات إلى أداة دعم العقدة.
لتفعيل مصادقة 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
- أعِد تشغيل كاساندرا:
/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 مع طبقة المقابس الآمنة (SSL) إلى توفير أمان وتشفير إضافي للاتصال القائم على JMX مع "كاساندرا". لتفعيل JMX مع طبقة المقابس الآمنة (SSL)، تحتاج إلى تقديم مفتاح وشهادة إلى "كاساندرا" قبول اتصالات JMX المستندة إلى طبقة المقابس الآمنة. تحتاج أيضًا إلى تهيئةNodetool (وأي أدوات أخرى والتواصل مع كاساندرا عبر JMX) لطبقة المقابس الآمنة.
تتوافق JMX مع تفعيل طبقة المقابس الآمنة (SSL) مع كلمات مرور JMX بالنص العادي والمشفرة.
لتمكين JMX مع طبقة المقابس الآمنة (SSL) لـ Cassandra، استخدم الإجراء التالي:
- فعِّل JMX. فعِّل تشفير كلمة المرور إذا لزم الأمر.
- تفعيل مصادقة JMX على Cassandra
كما هو موضح أعلاه. التأكّد من عمل أداة العقدة مع الترميز الذي تم إعداده
اسم المستخدم وكلمة المرور.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
إعداد ملف تخزين المفاتيح وملف تخزين الثقة.
يجب أن يحتوي ملف تخزين المفاتيح على مفتاح وشهادة، وتستخدم لتهيئة خادم Cassandra. إذا كان ملف تخزين المفاتيح ويحتوي على أزواج مفاتيح متعددة، تستخدم كاساندرا زوج المفاتيح الأول لتمكين طبقة المقابس الآمنة (SSL).
يُرجى ملاحظة أنّ كلمتَي مرور ملف تخزين المفاتيح والمفتاح يجب أن تكون متماثلة. (الإعداد التلقائي عند إنشاء المفتاح باستخدام أداة keytool).
- يجب أن يحتوي Truststore على الشهادة فقط ويستخدمها العملاء (المستندة إلى خدمة APIgee). أو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 (وسيطات طبقة المقابس الآمنة (SSL) المخزّنة في ملف)
- الخيار 2 (وسيطات طبقة المقابس الآمنة المخزَّنة في متغيّرات البيئة)
- الخيار 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
تأكَّد من أنّ ملف الثقة قابل للقراءة من قِبل مستخدم 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 (تم تمرير وسيطات طبقة المقابس الآمنة مباشرةً إلى
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 المزود بطبقة المقابس الآمنة، كما هو موضح في خيارات الضبط أدناه:
تختلف الخيارات في طريقة تمرير الإعدادات ذات الصلة بطبقة المقابس الآمنة إلى أداة العقدة. في كلتا الحالتين، يجب أن يحصل المستخدم الذي يشغّل العقدة على أذونات "القراءة" في ملف مخزن الثقة. اختر خيارًا مناسبًا بناءً على سهولة الاستخدام وممارسات الأمان.
لمزيد من المعلومات عن مَعلمات العقدة، يمكنك الاطّلاع على مستندات DataStax.
خيار الضبط الأول
أنشئ ملفًا في الدليل الرئيسي للمستخدم الذي يشغِّل أداة العقدة.
$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
يجب أن يتمكن أي مستخدم قيد التشغيل من الوصول إلى مسار Truststore المحدّد أعلاه. nodetool.
تشغيل
nodetool
باستخدام الخيار--ssl
/opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
خيار الضبط 2
شغِّل
nodetool
كأمر واحد مع تضمين المَعلمات الإضافية الواردة أدناه./opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
إلغاء عمليات ضبط طبقة المقابس الآمنة (SSL)
إذا كنت بحاجة إلى العودة إلى إعدادات طبقة المقابس الآمنة (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
" مع أداة العقدة
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
- أعِد تشغيل كاساندرا:
/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 |
استخدام أداة العقدة لإدارة العُقد العنقودية
أداة العقدة هي واجهة سطر أوامر لـ "كاساندرا" تدير
عُقد المجموعة. يمكن العثور على الأداة على /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
- حالة خادم التوفير (واجهة برمجة تطبيقات عميل العرض)
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
لمزيد من المعلومات حول العقدة، يُرجى الاطّلاع على لمحة عن أداة العقدة التجريبية
مرجع "كاساندرا"
راجِع عنوان 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
) للحصول على معلومات حول ذاكرة التخزين المؤقت.