Edge for Private Cloud نسخه ۴.۱۹.۰۱
این سند تکنیکهای نظارت بر مؤلفههای پشتیبانیشده توسط استقرار داخلی Apigee Edge را شرح میدهد.
نمای کلی
Edge از چند روش برای دریافت جزئیات درباره سرویسها و همچنین بررسی وضعیت آنها پشتیبانی میکند. جدول زیر انواع بررسیهایی را که میتوانید در هر سرویس واجدشرایط انجام دهید فهرست میکند:
| Mgmt API | |||||||
| سرویس | استفاده از حافظه [JMX*] | بررسی سرویس | وضعیت کاربر/سازمان/ استقرار | axstatus | بررسی پایگاه داده | وضعیت apigee-service |
apigee-monit** |
| سرور مدیریت | |||||||
| پردازشگر پیام | |||||||
| Postgres | |||||||
| Qpid | |||||||
| رهیاب | |||||||
| اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | اطلاعات بیشتر | |
|
* قبلاز اینکه بتوانید از JMX استفاده کنید، باید آن را فعال کنید، همانطور که در فعال کردن JMX شرح داده شده است. ** سرویس |
|||||||
درگاههای پایش JMX و Management API
هر مؤلفه از تماسهای نظارتی JMX و Management API در درگاههای مختلف پشتیبانی میکند. جدول زیر درگاههای JMX و Management API را برای هر نوع سرور فهرست میکند:
| مؤلفه | درگاه JMX | Management API Port |
|---|---|---|
| سرور مدیریت | 1099 | 8080 |
| رهیاب | 1100 | 8081 |
| پردازشگر پیام | 1101 | 8082 |
| Qpid | 1102 | 8083 |
| Postgres | 1103 | 8084 |
استفاده از JMX برای نظارت
فرایندهای نظارت برای Management Server، Message Processor، 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
این مثال درگاه ۱۰۹۹ را برای «سرور مدیریت» مشخص میکند. همانطور که قبلاً گفته شد، هر سرویس شماره درگاه خودش را دارد.
خط ویرایششده در فایل پیکربندی بهصورت زیر است:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
- فایل پیکربندی را ذخیره کنید.
- بخش را با فرمان
restartبازراهاندازی کنید.برای مثال، برای بازراهاندازی Management Server، فرمان زیر را اجرا کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
اصالتسنجی برای JMX بهطور پیشفرض فعال نیست. میتوانید اصالتسنجی JMX را برای همه قطعات فعال کنید، همانطور که در فعال کردن اصالتسنجی JMX شرح داده شده است. برای فعال کردن اصالتسنجی JMX برای Cassandra، به فعال کردن اصالتسنجی JMX برای Cassandra مراجعه کنید.
فعال کردن اصالتسنجی JMX
اصالتسنجی JMX بهطور پیشفرض فعال نیست. میتوانید اصالتسنجی JMX را برای همه مؤلفهها فعال کنید. برای Cassandra، از دستورالعملهای فعال کردن اصالتسنجی JMX برای Cassandra استفاده کنید
برای فعال کردن اصالتسنجی JMX، کنش change_jmx_auth زیر را در همه گرهها اجرا کنید:
/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]
مکان:
- component یکی از موارد زیر است:
edge-management-serveredge-message-processoredge-postgres-serveredge-qpid-serveredge-router
- options موارد زیر را مشخص میکند:
-u username-p password-e [y|n](فعال یا غیرفعال کردن)
- config_file مکان فایل پیکربندی را مشخص میکند که در آن موارد زیر را تعریف میکنید:
JMX_USERNAME=usernameJMX_ENABLED=y|nJMX_PASSWORD=password(اگر تنظیم نشده باشد یا با-pارسال نشده باشد، از شما خواسته میشود)
میتوانید از گزینههای خط فرمان یا فایل پیکربندی برای تعریف نام کاربری، گذرواژه، و وضعیت فعال/غیرفعال استفاده کنید. هم مجموعهای از گزینهها و هم فایل پیکربندی را مشخص نمیکنید.
مثال زیر اصالتسنجی JMX را برای «سرور مدیریت» بااستفاده از گزینههای خط فرمان فعال میکند:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -u foo -p bar -e yمثال زیر بهجای گزینههای خط فرمان از فایل پیکربندی استفاده میکند:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -f /tmp/my-config-fileاگر Edge را در چندین گره اجرا میکنید، فرمان را در همه گرهها اجرا کنید و نام کاربری و گذرواژه یکسانی را مشخص کنید.
برای غیرفعال کردن اصالتسنجی JMX در خط فرمان، از گزینه «-e n» استفاده کنید، همانطور که در مثال زیر نشان داده شده است:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -e nنظارت با JConsole
از JConsole (ابزار سازگار با JMX) برای مدیریت و نظارت بر بررسی سلامت و آمار پردازش استفاده کنید. با JConsole، میتوانید آمار JMX را که سرورهایتان ارائه میدهند مصرف کنید و آنها را در یک میانای گرافیکی نمایش دهید. برای اطلاعات بیشتر، استفاده از JConsole را ببینید.
JConsole از نشانی وب سرویس زیر برای نظارت بر مشخصههای 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 |
|
|
کاربرد |
|
پایش با Management API
Edge شامل چندین API است که میتوانید از آنها برای انجام بررسیهای سرویس در سرورهایتان و همچنین بررسی کاربران، سازمانها، و استقرارها استفاده کنید. این بخش این میاناهای برنامهسازی کاربردی را شرح میدهد.
انجام بررسیهای سرویس
Management API چندین نقطه پایانی برای نظارت و تشخیص مشکلات سرویسهای شما ارائه میدهد. این نقاط پایانی عبارتاند از:
| نقطه پایانی | شرح |
|---|---|
/servers/self/up |
بررسی میکند که آیا سرویسی درحال اجرا است یا نه. این فراخوانی میانای برنامهسازی کاربردی (API) نیازی به اصالتسنجی شما ندارد. اگر سرویس درحال اجرا باشد، این نقطه پایانی پاسخ زیر را برمیگرداند: <ServerField> <Up>true</Up> </ServerField> اگر سرویس درحال اجرا نباشد، پاسخی مشابه پاسخ زیر دریافت خواهید کرد (بسته به اینکه کدام سرویس است و چگونه آن را بررسی کردهاید): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
اطلاعاتی درباره سرویس برمیگرداند، ازجمله:
این فراخوانی میانای برنامهسازی کاربردی مستلزم آن است که با اطلاعات کاربری سرپرست Apigee خود اصالتسنجی کنید. |
برای استفاده از این نقاط پایانی، ابزاری مانند curl را با فرمانهایی که از نحو زیر استفاده میکنند فراخوانی کنید:
curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"مکان:
- host نشانی IP سروری است که میخواهید بررسی کنید. اگر به سیستم سرور وارد شدهاید، میتوانید از «localhost» استفاده کنید؛ درغیراینصورت، نشانی IP سرور و همچنین نام کاربری و گذرواژه را مشخص کنید.
- port_number درگاه Management API برای سروری است که میخواهید بررسی کنید. این درگاه برای هر نوع مؤلفه متفاوت است. برای مثال، درگاه Management API در Management Server برابر با ۸۰۸۰ است. برای فهرست شمارههای درگاه Management API که باید استفاده شود، به درگاههای پایش JMX و Management API مراجعه کنید
برای تغییر قالب پاسخ، میتوانید سرصفحه Accept را بهصورت
«application/json» یا «application/xml» مشخص کنید.
مثال زیر وضعیت Router را در 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"
نظارت بر وضعیت کاربر، سازمان، و استقرار
میتوانید از Management API برای نظارت بر وضعیت کاربر، سازمان، و استقرار پراکسیهایتان در «سرورهای مدیریت» و «پردازشگرهای پیام» با صدور فرمانهای زیر استفاده کنید:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
که port_number یا ۸۰۸۰ برای «سرور مدیریت» است یا ۸۰۸۲ برای «پردازشگر پیام».
این تماس مستلزم آن است که با نام کاربری و گذرواژه سرپرست سیستم خود اصالتسنجی کنید.
سرور باید برای همه تماسها وضعیت «مستقرشده» را برگرداند. اگر این مراحل ناموفق بود، کارهای زیر را انجام دهید:
- گزارشهای سرور را برای پیدا کردن خطاها بررسی کنید. گزارشها در اینجا قرار دارد:
- سرور مدیریت:
opt/apigee/var/log/edge-management-server - پردازشگر پیام:
opt/apigee/var/log/edge-message-processor
- سرور مدیریت:
- با سرور تماس بگیرید تا بررسی کنید که آیا بهدرستی کار میکند یا نه.
- سرور را از ELB بردارید و سپس آن را بازراهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
جایی که service_name است:
edge-management-serveredge-message-processor
بررسی وضعیت با فرمان apigee-service
میتوانید سرویسهای Edge را بااستفاده از فرمان apigee-service عیبیابی کنید، وقتی که
به سیستم سرور اجراکننده سرویس وارد شدهاید.
برای بررسی وضعیت سرویس با apigee-service:
- به سیستم سرور وارد شوید و فرمان زیر را اجرا کنید:
/opt/apigee/apigee-service/bin/apigee-service service_name status
که service_name یکی از موارد زیر است:
- سرور مدیریت:
edge-management-server - پردازشگر پیام:
edge-message-processor - Postgres:
edge-postgres-server - Qpid:
edge-qpid-server - رهیاب:
edge-router
برای مثال:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- سرور مدیریت:
- اگر سرویس درحال اجرا نیست، سرویس را شروع کنید:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- پساز راهاندازی مجدد سرویس، بااستفاده از فرمان
apigee-service statusکه قبلاً استفاده کردید یا بااستفاده از Management API که در پایش با Management API شرح داده شده است، بررسی کنید که سرویس کار میکند.برای مثال:
curl -v http://localhost:port_number/v1/servers/self/up
که port_number درگاه Management API برای سرویس است.
این مثال فرض میکند که شما به سیستم سرور وارد شدهاید و میتوانید از «localhost» بهعنوان نام میزبان استفاده کنید. برای بررسی وضعیت ازراهدور با Management API، باید نشانی IP سرور را مشخص کنید و نام کاربری و گذرواژه سرپرست سامانه را در فراخوانی API خود بگنجانید.
پایش Postgres
Postgres از چندین ابزار پشتیبانی میکند که میتوانید از آنها برای بررسی وضعیت آن استفاده کنید. این ابزارهای کمکی در بخشهای زیر شرح داده شدهاند.
بررسی سازمانها و محیطها در Postgres
با صدور فرمان curl زیر میتوانید نامهای سازمان و محیطی را که در سرور Postgres وارد شدهاند بررسی کنید:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
سیستم باید نام سازمان و محیط را نمایش دهد.
درستیسنجی وضعیت Analytics
میتوانید وضعیت سرورهای تجزیهوتحلیل 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
خروجی پیشفرض فراخوانیهای میانای برنامهسازی کاربردی بااستفاده از 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
این فرمان وضعیت ACTIVE را وقتی فرایند postgres فعال است برمیگرداند. اگر
فرایند Postgres فعال و درحال اجرا نباشد، وضعیت INACTIVE را برمیگرداند.
منابع Postgres
برای اطلاعات بیشتر درباره نظارت بر سرویس Postgres، موارد زیر را ببینید:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
JMX بهطور پیشفرض برای Cassandra فعال است و دسترسی JMX ازراهدور به Cassandra به گذرواژه نیاز ندارد.
فعال کردن اصالتسنجی JMX برای Cassandra
میتوانید اصالتسنجی JMX را برای Cassandra فعال کنید. پساز انجام این کار، باید نام کاربری و گذرواژه را برای همه تماسها به ابزار nodetool ارسال کنید.
برای فعال کردن اصالتسنجی JMX برای Cassandra:
- فایل
cassandra.propertiesرا ایجاد و ویرایش کنید:- فایل
/opt/apigee/customer/application/cassandra.propertiesرا ویرایش کنید. اگر فایل وجود ندارد، آن را ایجاد کنید. - موارد زیر را به فایل اضافه کنید:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true conf_cassandra-env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.password conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.access
- فایل
cassandra.propertiesرا ذخیره کنید. - همانطور که در مثال زیر نشان داده شده است، مالک فایل را به «apigee:apigee» تغییر دهید:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
برای اطلاعات بیشتر درباره استفاده از فایلهای ویژگیها برای تنظیم کردن کدهای امنیتی، به نحوه پیکربندی Edge مراجعه کنید.
- فایل
- ایجاد و ویرایش
jmx_auth.sh:- اگر فایلی در مکان زیر وجود ندارد، فایلی ایجاد کنید:
/opt/apigee/customer/application/jmx_auth.sh
- ویژگیهای زیر را به فایل اضافه کنید:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- فایل
jmx_auth.shرا ذخیره کنید. - منبع فایل:
source /opt/apigee/customer/application/jmx_auth.sh
- اگر فایلی در مکان زیر وجود ندارد، فایلی ایجاد کنید:
- فایل
jmxremote.passwordرا کپی و ویرایش کنید:- فایل زیر را از فهرست راهنمای
$JAVA_HOMEبه/opt/apigee/data/apigee-cassandra/کپی کنید:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password - فایل
jmxremote.passwordرا ویرایش کنید و نام کاربری و گذرواژه JMX خود را بااستفاده از نحو زیر اضافه کنید:JMX_USERNAME JMX_PASSWORD
که JMX_USERNAME و JMX_PASSWORD نام کاربری و گذرواژه JMX هستند که قبلاً تنظیم کردهاید.
- مطمئن شوید که فایل متعلق به «apigee» است و حالت فایل ۴۰۰ است:
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» است و حالت فایل ۴۰۰ است:
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"
-
- در خط فرمان، با وارد کردن
echo -n 'Secret' | openssl dgst -sha1، درهمسازی(های) SHA1 گذرواژه(های) موردنظر را تولید کنید. - گذرواژه(ها) را درمقابل نام کاربری در
jmxremote.passwordتنظیم کنید. - پساز بهروزرسانی، فایل
cassandra-env.shرا دوباره به حالت فقط خواندنی تغییر دهید.
غیرفعال کردن اصالتسنجی JMX برای Cassandra
برای غیرفعال کردن اصالتسنجی JMX برای Cassandra:
- ویرایش
/opt/apigee/customer/application/cassandra.properties. - خط زیر را در فایل بردارید:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- پیکربندی را در 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 تکی نیز امکانپذیر است): بهدنبال
«Up» (فعال) و «Normal» (عادی) برای همه گرهها بگردید.
nodetool [-u username -pw password] -h localhost ring
فقط درصورتی باید نام کاربری و گذرواژه را ارسال کنید که اصالتسنجی JMX را برای Cassandra فعال کرده باشید.
برونداد فرمان بالا بهصورت زیر است:
Datacenter: dc-1 ========== Address Rack Status State Load Owns Token 192.168.124.201 ra1 Up Normal 1.67 MB 33,33% 0 192.168.124.202 ra1 Up Normal 1.68 MB 33,33% 5671...5242 192.168.124.203 ra1 Up Normal 1.67 MB 33,33% 1134...0484
- اطلاعات کلی درباره گرهها (تماس بهازای هر گره)
nodetool [-u username -pw password] -h localhost info
خروجی فرمان بالا بهصورت زیر است:
ID : e2e42793-4242-4e82-bcf0-oicu812 Gossip active : true Thrift active : true Native Transport active: true Load : 273.71 KB Generation No : 1234567890 Uptime (seconds) : 687194 Heap Memory (MB) : 314.62 / 3680.00 Off Heap Memory (MB) : 0.14 Data Center : dc-1 Rack : ra-1 Exceptions : 0 Key Cache : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : 0
- وضعیت سرور thrift (ارائه 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
به نشانی وب زیر مراجعه کنید: 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 به درگاههای ۲۱۸۱ و ۳۸۸۸ در هر سرور 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
آزمایش سطح الدپ
میتوانید OpenLDAP را پایش کنید تا ببینید آیا درخواستهای خاص بهدرستی ارائه میشوند یا نه. به عبارت دیگر، جستجوی خاصی را بررسی کنید که نتیجه درست را برمیگرداند.
- از
ldapsearch(yum install openldap-clients) برای پرسمان ورودی سرپرست سیستم استفاده کنید. از این ورودی برای اصالتسنجی همه تماسهای API استفاده میشود.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) را برای دریافت اطلاعات درباره حافظه نهان مشاهده کنید.