این سند تکنیکهای پایش مؤلفههای پشتیبانیشده توسط استقرار محلی Apigee Edge for Private Cloud را شرح میدهد.
نمای کلی
Edge از چندین روش برای دریافت جزئیات درباره خدمات و همچنین بررسی وضعیت آنها پشتیبانی میکند. جدول زیر انواع بررسیهایی را که میتوانید روی هر سرویس واجدشرایط انجام دهید فهرست میکند: سرویس:
| Mgmt API | |||||||
| مؤلفه | استفاده از حافظه [JMX*] | بررسی سرویس | وضعیت کاربر/سازمان/ استقرار | axstatus | بررسی پایگاه داده | وضعیت apigee-service |
apigee-monit** |
| سرور مدیریت | |||||||
| پردازشگر پیام | |||||||
| رهیاب | |||||||
| Qpid | |||||||
| Postgres | |||||||
| اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | |
|
* قبلاز اینکه بتوانید از JMX استفاده کنید، باید آن را فعال کنید، همانطور که در فعال کردن JMX توضیح داده شده است. ** سرویس |
|||||||
درحال پایش درگاهها و فایلهای پیکربندی
هر عنصر از «افزونههای مدیریت Java» (JMX) و فراخوانیهای پایش «میانای برنامهسازی کاربردی مدیریت» در درگاههای مختلف پشتیبانی میکند. جدول زیر درگاههای JMX و Management API را برای هر نوع سرور و مکان فایل پیکربندی فهرست میکند:
| مؤلفه | درگاه JMX | درگاه Management API | مکان فایل پیکربندی |
|---|---|---|---|
| سرور مدیریت | 1099 | 8080 | $APIGEE_ROOT/customer/application/management-server.properties |
| پردازشگر پیام | 1101 | 8082 | $APIGEE_ROOT/customer/application/message-processor.properties |
| رهیاب | 1100 | 8081 | $APIGEE_ROOT/customer/application/router.properties |
| Qpid | 1102 | 8083 | $APIGEE_ROOT/customer/application/qpid-server.properties |
| Postgres | 1103 | 8084 | $APIGEE_ROOT/customer/application/postgres-server.properties |
استفاده از JMX برای نظارت بر عناصر
بخشهای زیر توضیح میدهد که چگونه از JMX برای نظارت بر عناصر Edge استفاده کنید.
فعال کردن JMX
برای فعال کردن JMX بدون اصالتسنجی یا ارتباط مبتنی بر SSL، مراحل زیر را انجام دهید. توجه: در سیستمهای تولید، هم اصالتسنجی رمزگذاریشده و هم SSL باید برای امنیت فعال شوند.
- فایل پیکربندی مناسب را ویرایش کنید (به
مرجع فایل پیکربندی مراجعه کنید). اگر فایل پیکربندی وجود ندارد، آن را ایجاد کنید.
conf_system_jmxremote_enable=true
- فایل پیکربندی را ذخیره کنید و مطمئن شوید که مالک آن
apigee:apigeeاست. - بازراهاندازی عنصر مناسب Edge
apigee-service edge-management-server restart
برای غیرفعال کردن JMX، یا دارایی conf_system_jmxremote_enable را بردارید یا مقدار آن را به false تغییر دهید. سپس مؤلفه Edge مناسب را بازراهاندازی کنید.
اصالتسنجی در JMX
Edge for Private Cloud از اصالتسنجی مبتنی بر گذرواژه بااستفاده از جزئیات ذخیرهشده در فایلها پشتیبانی میکند. میتوانید گذرواژهها را بهعنوان «درهمسازی» برای امنیت بیشتر ذخیره کنید.
- برای فعال کردن اصالتسنجی JMX در عنصر edge-*، فایل پیکربندی مناسب را ویرایش کنید
(به
مرجع فایل پیکربندی مراجعه کنید). اگر فایل پیکربندی وجود ندارد، آن را ایجاد کنید:
فایل پیکربندی را ذخیره کنید و مطمئن شوید که مالک آنconf_system_jmxremote_enable=true conf_system_jmxremote_authenticate=true conf_system_jmxremote_encrypted_auth=true conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
apigee:apigeeاست. - درهمسازی SHA256 گذرواژه را ایجاد کنید:
echo -n '
' | openssl dgst -sha256 - فایل
jmxremote.passwordبا اطلاعات اعتباری کاربر JMX ایجاد کنید:- فایلهای زیر را از دایرکتوری
$JAVA_HOMEبه دایرکتوری/opt/apigee/customer/application/<component>/کپی کنید:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password - فایل را ویرایش کنید و نام کاربری و گذرواژه JMX خود را بااستفاده از نحو زیر اضافه کنید:
USERNAME <HASH-PASSWORD>
- مطمئن شوید که فایل متعلق به
apigeeاست و حالت فایل ۴۰۰ است:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- فایلهای زیر را از دایرکتوری
- فایل
jmxremote.accessبا اجازههای کاربر JMX ایجاد کنید:- فایلهای زیر را از دایرکتوری $JAVA_HOME به
دایرکتوری
/opt/apigee/customer/application/<component>/کپی کنیدcp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access - فایل را ویرایش کنید و نام کاربری JMX خود را بههمراه اجازه (READONLY/READWRITE) اضافه کنید
USERNAME READONLY
- مطمئن شوید که فایل متعلق به
apigeeاست و حالت فایل ۴۰۰ است:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- فایلهای زیر را از دایرکتوری $JAVA_HOME به
دایرکتوری
- عنصر Edge مناسب را بازراهاندازی کنید:
apigee-service edge-management-server restart
برای غیرفعال کردن اصالتسنجی JMX، یا دارایی
conf_system_jmxremote_authenticate را بردارید یا مقدار را به false تغییر دهید و
مؤلفه Edge مناسب را بازراهاندازی کنید.
SSL در JMX
برای فعال کردن JMX مبتنی بر SSL در یک مؤلفه edge-* :
- فایل پیکربندی مناسب را ویرایش کنید
(به
مرجع فایل پیکربندی مراجعه کنید). اگر فایل پیکربندی وجود ندارد، آن را ایجاد کنید:
فایل پیکربندی را ذخیره کنید و مطمئن شوید که مالک آنconf_system_jmxremote_enable=true conf_system_jmxremote_ssl=true conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore conf_system_javax_net_ssl_keystorepassword=<keystore-password>
apigee:apigeeاست. - انبار کلیدی حاوی کلید سرور را آماده کنید و آن را در مسیر ارائهشده در
پیکربندی
conf_system_javax_net_ssl_keystoreبالا قرار دهید. مطمئن شوید فایل انبار کلید توسطapigee:apigeeقابل خواندن باشد. - عنصر Edge مناسب را بازراهاندازی کنید:
apigee-service edge-management-server restart
برای غیرفعال کردن JMX مبتنی بر SSL، یا دارایی conf_system_jmxremote_ssl را بردارید
یا مقدار را به false تغییر دهید. عنصر Edge مناسب را بازراهاندازی کنید.
پایش ازطریق Jconsole
دستورالعملهای پایش ازطریق jconsole همانگونه که در https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole توضیح داده شده است باقی میماند.
میتوانید یک خط اضافه کنید که «اگر SSL برای JMX فعال باشد، jconsole باید با truststore و گذرواژه truststore شروع شود.» مرجع: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.htmlنظارت با JConsole
از JConsole (ابزار سازگار با JMX) برای مدیریت و نظارت بر بررسی سلامت و آمار پردازش استفاده کنید. با JConsole، میتوانید از آمار JMX که توسط سرورهایتان ارائه میشود استفاده کنید و آنها را در یک میانای گرافیکی نمایش دهید. برای اطلاعات بیشتر، استفاده از JConsole را ببینید.
اگر SSL برای JMX فعال باشد، باید JConsole را با truststore و گذرواژه truststore شروع کنید. استفاده از JConsole را ببینید.
JConsole از نشانی وب سرویس زیر برای پایش مشخصههای 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
توجه داشته باشید که این مثال درگاه ۱۰۹۹ را مشخص میکند که درگاه JMX «سرور مدیریت» است. برای درگاههای دیگر، درگاههای پایش JMX و Management API را ببینید.
جدول زیر آمار JMX عمومی را نشان میدهد:
| JMX MBeans | مشخصههای JMX |
|---|---|
|
حافظه |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
کاربرد |
|
مرجع فایل پیکربندی
بخشهای زیر تغییراتی را که ممکن است لازم باشد در فایلهای پیکربندی عنصر Edge برای پیکربندیهای مربوط به JMX ایجاد کنید شرح میدهد. برای اطلاعات بیشتر، پایش درگاهها و فایلهای پیکربندی را ببینید.
پیکربندی JMX که باید به فایل پیکربندی عنصر مناسب اضافه شود
- عامل JMX را در مؤلفه لبه فعال کنید. بهطور پیشفرض نادرست است.
conf_system_jmxremote_enable=true
پیکربندیهای اصالتسنجی مبتنی بر گذرواژه
- اصالتسنجی مبتنی بر گذرواژه را فعال کنید. بهطور پیشفرض نادرست است.
conf_system_jmxremote_authenticate=true
- مسیر دسترسی به فایل. فقط کاربر Apigee باید مالک آن باشد و بتواند آن را بخواند.
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- مسیر فایل گذرواژه. فقط کاربر Apigee باید مالک آن باشد و بتواند آن را بخواند.
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- ذخیره گذرواژه در قالب رمزگذاریشده را فعال کنید. بهطور پیشفرض نادرست است.
conf_system_jmxremote_encrypted_auth=true
پیکربندیهای JMX مبتنی بر SSL
- SSL را برای ارتباط JMX فعال کنید. بهطور پیشفرض نادرست است.
conf_system_jmxremote_ssl=true
- مسیر فروشگاه کلید. باید فقط تحت مالکیت کاربر Apigee باشد و فقط او بتواند آن را بخواند.
conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
- گذرواژه انبار کلید:
conf_system_javax_net_ssl_keystorepassword=changeme
پیکربندیهای اختیاری JMX
مقادیر فهرستشده مقادیر پیشفرض هستند و میتوانند تغییر کنند.
- درگاه JMX. مقادیر پیشفرض در جدول زیر فهرست شده است.
conf_system_jmxremote_port=
- درگاه JMX RMI. بهطور پیشفرض، فرایند Java درگاهی تصادفی را انتخاب میکند.
conf_system_jmxremote_rmi_port=
- نام میزبان برای کُندههای راه دور. نشانی IP پیشفرض میزبان محلی.
conf_system_java_rmi_server_hostname=
- از ثبت JMX با SSL محافظت کنید. پیشفرض نادرست است. فقط درصورتیکه SSL فعال باشد قابلاجرا است.
conf_system_jmxremote_registry_ssl=false
پایش با Management API
Edge شامل چندین API است که میتوانید از آنها برای انجام بررسیهای سرویس در سرورهایتان و همچنین بررسی کاربران، سازمانها، و استقرارها استفاده کنید. این بخش این میاناهای برنامهسازی کاربردی را شرح میدهد.
انجام بررسیهای سرویس
Management API چندین نقطه پایانی برای نظارت و تشخیص مشکلات سرویسهای شما ارائه میدهد. این نقاط پایانی شامل موارد زیر میشود:
| نقطه پایانی | شرح |
|---|---|
/servers/self/up |
بررسی میکند که آیا سرویسی درحال اجرا است یا نه. این فراخوانی «میانای برنامهسازی کاربردی» نیازی به اصالتسنجی ندارد. اگر سرویس درحال اجرا باشد، این نقطه پایانی پاسخ زیر را برمیگرداند: <ServerField> <Up>true</Up> </ServerField> اگر سرویس درحال اجرا نباشد، پاسخی مشابه موارد زیر دریافت خواهید کرد (بسته به اینکه سرویس کدام است و چگونه آن را بررسی کردهاید): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
اطلاعاتی درباره سرویس برمیگرداند، ازجمله:
این فراخوانی API نیازمند این است که با اعتبارنامههای سرپرست 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 API که باید استفاده کنید، به درگاههای پایش JMX و Management API مراجعه کنید
برای تغییر قالب پاسخ، میتوانید سرایند Accept را بهعنوان
«application/json» یا «application/xml» مشخص کنید.
مثال زیر وضعیت «مسیریاب» را در localhost (درگاه ۸۰۸۱) دریافت میکند:
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"
نظارت بر وضعیت کاربر، سازمان، و استقرار
با صدور دستورات زیر میتوانید از «میانای برنامهسازی کاربردی مدیریت» برای پایش وضعیت کاربر، سازمان، و استقرار کارگزاران در «سرورهای مدیریت» و «پردازشگران پیام» استفاده کنید:
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 یا ۸۰۸۰ برای «سرور مدیریت» یا ۸۰۸۲ برای «پردازشگر پیام» است.
برای این تماس باید با نام کاربری و گذرواژه مدیریت سیستم اصالتسنجی کنید.
سرور باید وضعیت «پیادهسازیشده» را برای همه تماسها برگرداند. اگر این موارد کار نکرد، موارد زیر را انجام دهید:
- گزارشهای سرور را برای یافتن خطا بررسی کنید. گزارشها در این مکان قرار دارند:
- سرور مدیریت:
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 بررسی کنید
وقتی به سیستم سروری که سرویس را اجرا میکند وارد شدهاید، میتوانید بااستفاده از دستور apigee-service سرویسهای Edge را عیبیابی کنید.
برای بررسی وضعیت سرویس با 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» بهعنوان نام میزبان استفاده کنید. برای بررسی وضعیت ازراهدور با «میانای برنامهسازی کاربردی مدیریت»، باید نشانی IP سرور را مشخص کنید و نام کاربری و گذرواژه سرپرست سیستم را در فراخوانی API خود بگنجانید.
پایش Postgres
Postgres از چندین ابزار پشتیبانی میکند که میتوانید از آنها برای بررسی وضعیت آن استفاده کنید. این ابزارها در بخشهای زیر توضیح داده شدهاند.
بررسی سازمانها و محیطها در Postgres
با صدور دستور curl زیر میتوانید نامهای سازمان و محیطی را که در «سرور Postgres» آمادهسازی شدهاند بررسی کنید:
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
برونداد پیشفرض تماسهای API بااستفاده از 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
زیر میتوانید بررسیهای «میانای برنامهسازی کاربردی» را در ماشین Postgres انجام دهید:
curl -v http://postgres_IP:8084/v1/servers/self/health
وقتی فرایند postgres فعال باشد، این فرمان وضعیت ACTIVE را برمیگرداند. اگر فرایند
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}/customer/application/apigee-cassandra/jmxremote.password conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/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/customer/application/apigee-cassandra/کپی کنید:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password - فایل
jmxremote.passwordرا ویرایش کنید و نام کاربری و گذرواژه JMX خود را بااستفاده از نحو زیر اضافه کنید:JMX_USERNAME JMX_PASSWORD
که در آن JMX_USERNAME و JMX_PASSWORD نام کاربری و گذرواژه JMX است که قبلاً تنظیم کردهاید.
- مطمئن شوید فایل متعلق به «apigee» است و حالت فایل ۴۰۰ است:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
- فایل زیر را از دایرکتوری
- کپی و ویرایش فایل
jmxremote.access:- فایل زیر را از دایرکتوری
$JAVA_HOMEبه/opt/apigee/customer/application/apigee-cassandra/کپی کنید:cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access - فایل
jmxremote.accessرا ویرایش کنید و نقش زیر را اضافه کنید:JMX_USERNAME readwrite
- مطمئن شوید فایل متعلق به «apigee» است و حالت فایل ۴۰۰ است:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/customer/application/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را باز کنید. - ایجاد و ویرایش فایل
cassandra.properties:- فایل
/opt/apigee/customer/application/cassandra.propertiesرا ویرایش کنید. اگر فایل وجود ندارد، آن را ایجاد کنید. - مورد زیر را به فایل اضافه کنید:
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- فایل cassandra.properties را ذخیره کنید.
- مالک فایل را به apigee:apigee تغییر دهید، همانطور که در مثال زیر نشان داده شده است:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- فایل
- در خط فرمان، با وارد کردن
echo -n 'Secret' | openssl dgst -sha1، مقدار درهمسازی SHA1 گذرواژه(های) موردنظر را تولید کنید - گذرواژه(ها) را دربرابر نام کاربری در
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password(ایجادشده در در بخش قبلی) تنظیم کنید. - اجرای پیکربندی در Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- بازراهاندازی Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- این فرایند را در همه گرههای دیگر Cassandra تکرار کنید.
فعال کردن JMX با SSL برای Cassandra
فعال کردن JMX با SSL امنیت و رمزگذاری بیشتری برای ارتباطات مبتنی بر JMX با Cassandra فراهم میکند. برای فعال کردن JMX با SSL، باید کلید و گواهینامهای به Cassandra ارائه دهید تا اتصالات JMX مبتنی بر SSL را بپذیرد. همچنین باید nodetool (و هر ابزار دیگری که ازطریق JMX با Cassandra ارتباط برقرار میکند) را برای SSL پیکربندی کنید.
JMX فعالشده با SSL از گذرواژههای JMX رمزگذاریشده و بدون رمزگذاری پشتیبانی میکند.
برای فعال کردن JMX با SSL برای Cassandra، از روش زیر استفاده کنید:
- JMX را فعال کنید. درصورت نیاز، رمزگذاری گذرواژه را فعال کنید.
- اصالتسنجی JMX را برای Cassandra فعال کنید.
همانطور که در بالا توضیح داده شد. مطمئن شوید که nodetool با نام کاربری و گذرواژه پیکربندیشده کار میکند.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
آمادهسازی keystore و truststore.
محل ذخیره کلید باید حاوی کلید و گواهینامه باشد، و برای پیکربندی سرور Cassandra استفاده میشود. اگر keystore شامل چندین جفت کلید باشد، Cassandra از اولین جفت کلید برای فعال کردن SSL استفاده میکند.
توجه داشته باشید که گذرواژههای keystore و کلید باید یکسان باشد (پیشفرض هنگام تولید کلید بااستفاده از keytool).
- «انبار مطمئن» باید فقط حاوی گواهینامه باشد و توسط کارخواهها (فرمانهای مبتنی بر apigee-service یا nodetool) برای اتصال ازطریق JMX استفاده میشود.
پساز درستیسنجی الزامات بالا:
- فایل keystore را در
/opt/apigee/customer/application/apigee-cassandra/قرار دهید. - مطمئن شوید فایل انبار کلید فقط توسط کاربر Apigee قابلخواندن است. برای این کار، موارد زیر را وارد کنید
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
- با انجام مراحل زیر، Cassandra را برای JMX با SSL پیکربندی کنید:
- با وارد کردن دستور زیر، گره Cassandra را متوقف کنید
apigee-service apigee-cassandra stop
- با باز کردن فایل
/opt/apigee/customer/application/cassandra.propertiesو افزودن خطوط زیر، SSL را در Cassandra فعال کنید:conf_cassandra_env_com.sun.management.jmxremote.ssl=true conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1 conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password ## On FIPS enabled systems, when you are using non standard keystore, set the following: ## These can be skipped otherwise ## Possible values are JKS, PKCS12, BCFKS conf_cassandra_env_javax.net.ssl.keyStoreType=PKCS12 conf_cassandra_env_javax.net.ssl.keyStoreAlias=cassjmx-tls-alias
- مالک فایل را به apigee:apigee تغییر دهید، همانطور که در مثال زیر نشان داده شده است:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- اجرای پیکربندی در Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- بازراهاندازی Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- این فرایند را در همه گرههای دیگر Cassandra تکرار کنید.
- با وارد کردن دستور زیر، گره Cassandra را شروع کنید
apigee-service apigee-cassandra start
- با وارد کردن دستور زیر، گره Cassandra را متوقف کنید
- فرمانهای
apigee-serviceCassandra را پیکربندی کنید. هنگام اجرای فرمانهایapigee-service، ازجمله فرمانهای زیر، باید متغیرهای محیطی خاصی را تنظیم کنید:apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
چندین گزینه برای پیکربندی
apigee-serviceبرای اصالتسنجی JMX و SSL وجود دارد. گزینهای را براساس قابلیت استفاده و رویههای امنیتیتان انتخاب کنید.- گزینه ۱ (آرگومانهای SSL ذخیرهشده در فایل)
- گزینه ۲ (آرگومانهای SSL ذخیرهشده در متغیرهای محیط)
- گزینه ۳ (آرگومانهای SSL مستقیماً به
apigee-serviceمنتقل میشوند)
گزینه ۱ (آرگومانهای SSL ذخیرهشده در فایل)
متغیرهای محیطی زیر را تنظیم کنید:
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y
فایلی در دایرکتوری صفحه اصلی کاربر Apigee (
/opt/apigee) ایجاد کنید.$HOME/.cassandra/nodetool-ssl.properties
فایل را ویرایش کنید و خطوط زیر را اضافه کنید:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12
مطمئن شوید فایل trustore توسط کاربر Apigee قابل خواندن باشد.
فرمان
apigee-serviceزیر را اجرا کنید. اگر بدون خطا اجرا شود، پیکربندیهایتان درست است.apigee-service apigee-cassandra ring
گزینه ۲ (آرگومانهای SSL ذخیرهشده در متغیرهای محیط)
متغیرهای محیطی زیر را تنظیم کنید:
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y # Ensure the truststore file is accessible by Apigee user. export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password> # If you are using a non standard truststore type, export truststore type as well # Possible values are JKS, PKCS12, BCFKS export CASS_JMX_TRUSTSTORE_TYPE=PKCS12
فرمان
apigee-serviceزیر را اجرا کنید. اگر بدون خطا اجرا شود، پیکربندیهایتان درست است.apigee-service apigee-cassandra ring
گزینه ۳ (متغیرهای مستقل SSL مستقیماً به
apigee-serviceارسال میشود)هر فرمان
apigee-serviceرا مثل فرمان زیر اجرا کنید. نیازی به پیکربندی متغیرهای محیطی ندارید.CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
nodetool را راهاندازی کنید. Nodetool نیاز دارد پارامترهای JMX به آن منتقل شود. دو روش برای پیکربندی nodetool برای اجرا با JMX فعالشده با SSL وجود دارد، همانطور که در گزینههای پیکربندی زیر توضیح داده شده است:
گزینهها در نحوه انتقال پیکربندیهای مربوط به SSL به nodetool متفاوت هستند. در هر دو مورد، کاربری که nodetool را اجرا میکند باید اجازه READ روی فایل truststore داشته باشد. گزینه مناسب را براساس قابلیت استفاده و رویههای امنیتیتان انتخاب کنید.
برای کسب اطلاعات بیشتر درباره پارامترهای nodetool، به اسناد DataStax مراجعه کنید.
گزینه پیکربندی ۱
فایلی در پوشه اصلی کاربری که 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 -Djavax.net.ssl.trustStoreType=PKCS12
هر کاربری که nodetool را اجرا میکند باید به مسیر truststore مشخصشده در بالا دسترسی داشته باشد.
nodetoolرا با گزینه--sslاجرا کنید./opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
گزینه پیکربندی ۲
nodetoolرا بهعنوان یک فرمان واحد با پارامترهای اضافی فهرستشده در زیر اجرا کنید./opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
برگرداندن پیکربندیهای SSL
اگر لازم است پیکربندیهای 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 و نشانی وب سرویس زیر برای نظارت بر مشخصههای 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 تکی نیز امکانپذیر است): برای همه گرهها،
«بالا» و «عادی» را جستجو کنید.
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 (ارائه API مشتری)
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
به نشانی وب زیر مراجعه کنید: پایش Cassandra.
پایش کارگزار Apache Qpid-J
میتوانید Qpid Broker-J را از کنسول مدیریت Qpid نظارت کنید. این بخش توضیح میدهد چگونه به کنسول دسترسی پیدا کنید و از آن برای انجام عملکردهای نظارت پایه استفاده کنید. برای اطلاعات دقیقتر درباره استفاده از کنسول مدیریت، کنسول مدیریت وب را در اسناد Apache Qpid ببینید.
دسترسی به کنسول مدیریت
درگاه کنسول مدیریت پیشفرض ۸۰۹۰ است. برای دسترسی به کنسول در این درگاه پیشفرض، مرورگر وب خود را به این نشانی هدایت کنید:
http://QPID_NODE_IP:8090
برای ورود به سیستم کنسول، از اطلاعات اعتباری پیشفرضی که Apigee تنظیم کرده است یا اطلاعات اعتباری تنظیمشده در فایل پیکربندی Edge استفاده کنید. برای جزئیات بیشتر، مرجع فایل پیکربندی Edge را ببینید.
نظارت بر صفها و پیامها
در پانل پیمایش سمت راست، به Java-Broker > virtualhosts > queues بروید. صفی را انتخاب کنید تا جزئیات آن را در بخش اصلی رابط کاربری مشاهده کنید. در نمای جزئیات، میتوانید «مشخصههای صف» و «آمار» را ببینید، ازجمله اطلاعات مربوط به پیامهای تحویلشده، در صف قرارگرفته، نرخ پیام، و غیره.
مشاهده و بارگیری فایلهای گزارش
در پانل پیمایش سمت راست، به Java-Broker > brokerloggers > logfile پیمایش کنید. در نمای جزئیات رابط کاربری اصلی، میتوانید جزئیات فایل گزارش را مشاهده کنید و فایلهای گزارش را بارگیری کنید.
استفاده از Qpid management API
میتوانید از Apache Qpid Broker-J REST API برای خودکارسازی کردن وظایف مدیریت و نظارت بر کارگزار استفاده کنید. برای جزئیات، به مستندات Apache Qpid Broker REST API مراجعه کنید.
همچنین میتوانید از ابزارهای خط فرمان برای نظارت بر کارگزار استفاده کنید. برای مثال:
curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"
فعال کردن پایش با SSL برای Qpid
برای ارائه امنیت بیشتر برای پایش و مدیریت، SSL را در «درگاه مدیریت Qpid» و «میاناهای برنامهسازی کاربردی مدیریت Qpid» فعال کنید. برای ارائه کلید و گواهینامه، دستورالعملهای زیر را دنبال کنید.
Qpid گزینهای برای «انبار کلید فایل» ارائه میدهد که در Apigee فعال است. این نوع قالب استاندارد مخزن کلید JKS را که Java و ابزارهای Java مثل keytool میفهمند میپذیرد. همچنین میتواند یک انبار کلید PKCS12 را بپذیرد که میتواند بااستفاده از ابزارهایی مانند OpenSSL تولید شود.
آمادهسازی انبار کلید
برای تولید کردن انبار کلید، به اسناد Java Keytool مراجعه کنید.
برای تولید مخزن کلید PKCS12، به اسناد OpenSSL مراجعه کنید.
پساز درستیسنجی الزامات
- فایل keystore را در
/opt/apigee/customer/application/apigee-qpiddقرار دهید. - مطمئن شوید که فایل انبار کلید فقط توسط کاربر Apigee قابل خواندن باشد:
chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
فعال کردن SSL در Qpid
مراحل زیر را در هر بار روی یک گره Qpid انجام دهید:
فایل /opt/apigee/customer/application/qpidd.properties را باز کنید و خطوط زیر را اضافه کنید:
conf_qpidd_qpid_management.https.enabled=true conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore conf_qpidd_qpid.keystore.password=keystore-password conf_qpidd_qpid.keystore.certificateAlias=certificate-alias ## If you are using a PKCS12 keystore, specify the keystore type conf_qpidd_qpid.keystore.keyStoreType=PKCS12
- مالک فایل را به apigee:apigee تغییر دهید:
chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
- پیکربندی Qpidd:
apigee-service apigee-qpidd configure
- بازراهاندازی Qpidd:
apigee-service apigee-qpidd restart
- وضعیت را با wait_for_ready بررسی کنید:
apigee-service apigee-qpidd wait_for_ready
برگرداندن پیکربندی SSL
داراییها را از فایل /opt/apigee/customer/application/qpidd.properties بردارید یا آنها را نظرگذاری کنید:
conf_qpidd_qpid_management.https.enabled=true conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
- پیکربندی Qpidd:
apigee-service apigee-qpidd configure
- بازراهاندازی Qpidd:
apigee-service apigee-qpidd restart
- وضعیت را با wait_for_ready بررسی کنید:
apigee-service apigee-qpidd wait_for_ready
Apache ZooKeeper
بررسی وضعیت ZooKeeper
- مطمئن شوید فرایند ZooKeeper درحال اجرا است. ZooKeeper فایل PID را در
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pidمینویسد. - درگاههای ZooKeeper را آزمایش کنید تا مطمئن شوید میتوانید اتصال TCP را به درگاههای ۲۱۸۱ و ۳۸۸۸ در هر سرور ZooKeeper برقرار کنید.
- مطمئن شوید که میتوانید مقادیر را از پایگاه داده ZooKeeper بخوانید. بااستفاده از کتابخانه کارخواه ZooKeeper (یا
/opt/apigee/apigee-zookeeper/bin/zkCli.sh) متصل شوید و مقداری را از پایگاه داده بخوانید. - وضعیت را بررسی کنید:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
استفاده از کلمات چهارحرفی ZooKeeper
ZooKeeper را میتوان ازطریق مجموعه کوچکی از فرمانها (کلمات چهارحرفی) که بااستفاده از 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
میتوانید SymasLDAP را پایش کنید تا ببینید آیا درخواستهای خاص بهدرستی ارائه میشوند یا نه. بهعبارت دیگر، جستجوی خاصی را بررسی کنید که نتیجه درست را برمیگرداند.
- از
ldapsearch(yum install symasldap-clients) برای پُرسمان ورودی سرپرست سیستم استفاده کنید. از این ورودی برای اصالتسنجی همه تماسهای «میانای برنامهسازی کاربردی» استفاده میشود./opt/symas/bin/ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL
سپس از شما خواسته میشود گذرواژه سرپرست LDAP را وارد کنید:
Enter LDAP Password:
پساز وارد کردن گذرواژه، پاسخی را در فرم میبینید:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top uid: admin cn: admin sn: admin userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ= = mail: opdk@google.com
- بااستفاده از فرمان زیر بررسی کنید که آیا «سرور مدیریت» هنوز به LDAP متصل است یا نه:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
برمیگرداند:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
همچنین میتوانید حافظههای نهان SymasLDAP را پایش کنید که به کاهش تعداد دسترسیهای دیسک کمک میکند
و درنتیجه عملکرد سیستم را بهبود میبخشد. پایش و سپس تنظیم اندازه حافظه نهان در سرور SymasLDAP میتواند بهشدت بر عملکرد سرور دایرکتوری تأثیر بگذارد. برای دریافت اطلاعات درباره حافظه نهان، میتوانید فایلهای گزارش (opt/apigee/var/log) را مشاهده کنید.