Edge for Private Cloud v4.19.01
এই ডকুমেন্ট Apigee Edge-এর অন-প্রিমিস ডেপ্লয়মেন্টের মাধ্যমে কাজ করে এমন কম্পোনেন্টের মনিটরিং টেকনিক বর্ণনা করে।
এক নজরে
পরিষেবা সম্পর্কে তথ্য পাওয়া এবং সেগুলির স্ট্যাটাস চেক করার জন্য Edge-এ একাধিক উপায় রয়েছে। নিম্নলিখিত সারণীতে প্রতিটি উপযুক্ত পরিষেবার জন্য আপনি যে ধরনের চেক করতে পারবেন তার তালিকা দেওয়া আছে:
| Mgmt API | |||||||
| পরিষেবা | মেমরির ব্যবহার [JMX*] | পরিষেবা চেক | ব্যবহারকারী/সংস্থা/ ডেপ্লয়মেন্ট স্ট্যাটাস | axstatus | ডেটাবেস চেক | apigee-service স্ট্যাটাস |
apigee-monit** |
| ম্যানেজমেন্ট সার্ভার | |||||||
| মেসেজ প্রসেসর | |||||||
| Postgres | |||||||
| Qpid | |||||||
| রাউটার | |||||||
| আরও তথ্য | আরও তথ্য | আরও তথ্য | আরও তথ্য | আরও তথ্য | আরও তথ্য | আরও তথ্য | |
|
* JMX ব্যবহার করার আগে, আপনাকে এটি চালু করতে হবে, যেমন JMX চালু করুন-এ বর্ণনা করা হয়েছে। ** |
|||||||
JMX এবং ম্যানেজমেন্ট API মনিটরিং পোর্ট
প্রতিটি কম্পোনেন্ট বিভিন্ন পোর্টে JMX এবং ম্যানেজমেন্ট API মনিটরিং কল সাপোর্ট করে। নিম্নলিখিত সারণীতে প্রতিটি ধরনের সার্ভারের জন্য JMX এবং ম্যানেজমেন্ট API পোর্ট তালিকাভুক্ত করা আছে:
| কম্পোনেন্ট | JMX পোর্ট | ম্যানেজমেন্ট API পোর্ট |
|---|---|---|
| ম্যানেজমেন্ট সার্ভার | 1099 | 8080 |
| রাউটার | 1100 | 8081 |
| মেসেজ প্রসেসর | 1101 | 8082 |
| Qpid | 1102 | 8083 |
| Postgres | 1103 | 8084 |
মনিটর করতে JMX ব্যবহার করুন
ম্যানেজমেন্ট সার্ভার, মেসেজ প্রসেসর, Qpid এবং Postgres-এর মনিটরিং প্রসেস সবই JMX ব্যবহার করে। তবে, JMX ডিফল্ট হিসেবে শুধুমাত্র Cassandra-এর জন্য চালু করা থাকে এবং অন্যান্য সব Edge কম্পোনেন্টের জন্য ডিফল্ট হিসেবে বন্ধ করা থাকে। তাই, প্রতিটি কম্পোনেন্ট মনিটর করার আগে আপনাকে আলাদা আলাদাভাবে JMX চালু করতে হবে।
JMX যাচাইকরণ ডিফল্ট হিসেবে চালু করা থাকে না। আপনি সব কম্পোনেন্টের জন্য JMX যাচাইকরণ চালু করতে পারেন। Cassandra-র জন্য, Cassandra-র জন্য JMX যাচাইকরণ চালু করুন-এ দেওয়া নির্দেশাবলী ব্যবহার করুন।
JMX চালু করুন
JMX ডিফল্ট হিসেবে শুধুমাত্র Cassandra-এর জন্য চালু করা থাকে এবং অন্যান্য সব Edge কম্পোনেন্টের জন্য বন্ধ করা থাকে। এই বিভাগে অন্যান্য Edge কম্পোনেন্টের জন্য JMX কীভাবে চালু করতে হয় তা বর্ণনা করা হয়েছে।
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-এ আছে। - ম্যানেজমেন্ট সার্ভার:
- কম্পোনেন্ট শুরু করে এমন
execলাইনের সাথে নিম্নলিখিতcom.sun.management.jmxremoteবিকল্প যোগ করুন:-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 এবং ম্যানেজমেন্ট 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কমান্ডের সাহায্যে কম্পোনেন্ট রিস্টার্ট করুন।যেমন, ম্যানেজমেন্ট সার্ভার রিস্টার্ট করতে, নিম্নলিখিত কমান্ডটি এক্সিকিউট করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
JMX-এর জন্য যাচাইকরণ ডিফল্ট হিসেবে চালু করা থাকে না। আপনি সব কম্পোনেন্টের জন্য JMX যাচাইকরণ চালু করতে পারেন, যেমন JMX যাচাইকরণ চালু করুন-এ বর্ণনা করা হয়েছে। Cassandra-র জন্য JMX যাচাইকরণ চালু করতে, Cassandra-র জন্য JMX যাচাইকরণ চালু করুন দেখুন।
JMX যাচাইকরণ চালু করুন
JMX যাচাইকরণ ডিফল্ট হিসেবে চালু করা থাকে না। আপনি সব কম্পোনেন্টের জন্য JMX যাচাইকরণ চালু করতে পারেন। Cassandra-র জন্য, Cassandra-র জন্য JMX যাচাইকরণ চালু করুন-এ দেওয়া নির্দেশাবলী ব্যবহার করুন
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 nJConsole-এর মাধ্যমে মনিটর করা
স্বাস্থ্য পরীক্ষা এবং প্রসেস পরিসংখ্যান ম্যানেজ ও মনিটর করতে JConsole (একটি JMX কমপ্লায়েন্ট টুল) ব্যবহার করুন। JConsole-এর সাহায্যে, আপনি আপনার সার্ভার দ্বারা প্রকাশিত JMX পরিসংখ্যান ব্যবহার করতে এবং সেগুলিকে একটি গ্রাফিক্যাল ইন্টারফেসে প্রদর্শন করতে পারেন। আরও তথ্যের জন্য, JConsole ব্যবহার করা দেখুন।
JConsole, JMX-এর মাধ্যমে অফার করা JMX অ্যাট্রিবিউট (MBeans) মনিটর করতে নিম্নলিখিত পরিষেবা URL ব্যবহার করে: JMX:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
যেখানে:
- IP_address হল সেই সার্ভারের IP অ্যাড্রেস যেটি আপনি মনিটর করতে চান।
- port_number হল আপনি যে সার্ভার মনিটর করতে চান সেটির JMX পোর্ট নম্বর।
যেমন, ম্যানেজমেন্ট সার্ভার মনিটর করতে, নিম্নলিখিত কমান্ডটি দিন (ধরে নেওয়া হচ্ছে সার্ভারের IP অ্যাড্রেস হল ২১৬.৩.১২৮.১২):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
মনে রাখবেন যে এই উদাহরণে পোর্ট ১০৯৯ উল্লেখ করা হয়েছে, যা ম্যানেজমেন্ট সার্ভার JMX পোর্ট। অন্যান্য পোর্টের জন্য, JMX এবং ম্যানেজমেন্ট API মনিটরিং পোর্ট দেখুন।
নিচের সারণীতে সাধারণ JMX পরিসংখ্যান দেখানো হয়েছে:
| JMX MBeans | JMX অ্যাট্রিবিউট |
|---|---|
|
মেমরি |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
ব্যবহার |
|
Management API-এর মাধ্যমে মনিটর করা
Edge-এ বেশ কিছু API আছে যেগুলি ব্যবহার করে আপনি নিজের সার্ভারে পরিষেবা চেক করতে পারবেন এবং আপনার ব্যবহারকারী, সংস্থা ও ডেপ্লয়মেন্ট চেক করতে পারবেন। এই বিভাগে এইসব API সম্পর্কে বর্ণনা করা হয়েছে।
পরিষেবা চেক করা
আপনার পরিষেবার সমস্যা মনিটর ও ডায়াগনসিস করার জন্য Management API একাধিক এন্ডপয়েন্ট প্রদান করে। এইসব এন্ডপয়েন্টের মধ্যে রয়েছে:
| এন্ডপয়েন্ট | বিবরণ |
|---|---|
/servers/self/up |
কোনও পরিষেবা চলছে কিনা তা চেক করে। এই API কলের জন্য আপনাকে যাচাইকরণ করতে হবে না। পরিষেবা চালু থাকলে, এই এন্ডপয়েন্ট নিম্নলিখিত উত্তর দেয়: <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 হল ম্যানেজমেন্ট API পোর্ট। এটি প্রতিটি ধরনের কম্পোনেন্টের জন্য আলাদা পোর্ট। যেমন, ম্যানেজমেন্ট সার্ভারের ম্যানেজমেন্ট API পোর্ট হল ৮০৮০। ব্যবহার করার জন্য Management API পোর্ট নম্বরের তালিকা দেখতে, JMX এবং Management API মনিটরিং পোর্ট দেখুন
উত্তরের ফর্ম্যাট পরিবর্তন করতে, আপনি Accept হেডারকে
"application/json" বা "application/xml" হিসেবে নির্দিষ্ট করতে পারেন।
নিম্নলিখিত উদাহরণটি লোকালহোস্টে (পোর্ট ৮০৮১) রাউটারের স্ট্যাটাস পায়:
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"
ব্যবহারকারী, সংস্থা এবং ডিপ্লয়মেন্ট স্ট্যাটাস মনিটর করুন
আপনি ম্যানেজমেন্ট 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 কমান্ডের মাধ্যমে স্ট্যাটাস চেক করুন
আপনি 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কমান্ড ব্যবহার করে অথবা ম্যানেজমেন্ট API-এর মাধ্যমে মনিটর করুন-এ বর্ণিত ম্যানেজমেন্ট API ব্যবহার করে।যেমন:
curl -v http://localhost:port_number/v1/servers/self/up
যেখানে port_number হল পরিষেবার জন্য ম্যানেজমেন্ট API পোর্ট।
এই উদাহরণে ধরে নেওয়া হয়েছে যে আপনি সার্ভারে লগ-ইন করেছেন এবং হোস্টনেম হিসেবে "localhost" ব্যবহার করতে পারবেন। ম্যানেজমেন্ট API-এর মাধ্যমে রিমোট লোকেশন থেকে স্ট্যাটাস চেক করতে, আপনাকে সার্ভারের IP অ্যাড্রেস উল্লেখ করতে হবে এবং API কলে সিস্টেম অ্যাডমিনিস্ট্রেটরের ইউজারনেম ও পাসওয়ার্ড অন্তর্ভুক্ত করতে হবে।
Postgres মনিটরিং
Postgres-এ একাধিক ইউটিলিটি আছে যা ব্যবহার করে আপনি এর স্ট্যাটাস চেক করতে পারবেন। এইসব ইউটিলিটি পরবর্তী বিভাগে বর্ণনা করা হয়েছে।
Postgres-এ প্রতিষ্ঠান এবং পরিবেশ চেক করুন
আপনি Postgres সার্ভারে অনবোর্ড করা প্রতিষ্ঠান এবং পরিবেশের নাম চেক করতে পারেন
নিম্নলিখিত curl কমান্ড জারি করে:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
সিস্টেমে সংস্থা ও এনভায়রনমেন্টের নাম দেখানো উচিত।
Analytics-এর স্ট্যাটাস যাচাই করুন
আপনি নিম্নলিখিত curl কমান্ড ইস্যু করে Postgres এবং Qpid অ্যানালিটিক্স সার্ভারের স্ট্যাটাস যাচাই করতে পারেন:
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 দেখুন।
স্ক্রিপ্ট রান করার আগে:
- আপনাকে প্রতিটি Postgres নোডে check_postgres.pl স্ক্রিপ্ট ইনস্টল করতে হবে।
- আপনি
perl-Time-HiRes.x86_64ইনস্টল করেছেন কিনা তা নিশ্চিত করুন, এটি একটি Perl মডিউল যা হাই রেজোলিউশন অ্যালার্ম, স্লিপ, gettimeofday এবং ইন্টারভাল টাইমার প্রয়োগ করে। যেমন, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে এটি ইনস্টল করতে পারেন:
yum install perl-Time-HiRes.x86_64
- CentOS 7: CentOS v7-এ check_postgres.pl ব্যবহার করার আগে,
perl-Data-Dumper.x86_64RPM ইনস্টল করুন।
check_postgres.pl আউটপুট
check_postgres.pl ব্যবহার করে API কলের ডিফল্ট আউটপুট 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 মেশিনে API চেক করতে পারবেন:
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
Cassandra-র জন্য JMX ডিফল্ট হিসেবে চালু করা থাকে এবং Cassandra-তে রিমোট JMX অ্যাক্সেসের জন্য পাসওয়ার্ডের প্রয়োজন হয় না।
Cassandra-র জন্য JMX যাচাইকরণ চালু করুন
আপনি Cassandra-এর জন্য JMX যাচাইকরণ চালু করতে পারবেন। এটি করার পরে, আপনাকে nodetool ইউটিলিটিতে করা সমস্ত কলের জন্য
একটি ইউজারনেম এবং পাসওয়ার্ড পাস করতে হবে।
Cassandra-র জন্য JMX যাচাইকরণ চালু করতে:
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
- আপনার
- Cassandra-তে
configureরান করুন:/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ফাইলটি আবার শুধু পড়ার জন্য পরিবর্তন করুন।
Cassandra-র জন্য JMX যাচাইকরণ বন্ধ করুন
Cassandra-র জন্য JMX যাচাইকরণ বন্ধ করতে:
/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 ব্যবহার করুন: টাস্কের পরিসংখ্যান মনিটর করুন
JMX-এর মাধ্যমে অফার করা JMX অ্যাট্রিবিউট (MBeans) মনিটর করতে JConsole এবং নিম্নলিখিত পরিষেবা URL ব্যবহার করুন:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
যেখানে IP_address হল Cassandra সার্ভারের IP।
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
আপনি Cassandra-র জন্য JMX যাচাইকরণ চালু করলে শুধুমাত্র আপনার ইউজারনেম ও পাসওয়ার্ড পাস করতে হবে।
উপরের কমান্ডের আউটপুট নিচে দেখানো হয়েছে:
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
- থ্রিফ্ট সার্ভারের স্ট্যাটাস (ক্লায়েন্ট API পরিবেশন করছে)
nodetool [-u username -pw password] -h localhost statusthrift
উপরের কমান্ডের আউটপুট নিম্নলিখিতটির মতো দেখায়:
running
- ডেটা স্ট্রিমিং অপারেশনের স্ট্যাটাস: ক্যাসান্ড্রা নোডের জন্য ট্রাফিক পর্যবেক্ষণ করুন:
nodetool [-u username -pw password] -h localhost netstats
উপরের কমান্ডের আউটপুট নিম্নলিখিতটির মতো দেখায়:
Mode: NORMAL Not sending any streams. Read Repair Statistics: Attempted: 151612 Mismatch (Blocking): 0 Mismatch (Background): 0 Pool Name Active Pending Completed Dropped Commands n/a 0 0 0 Responses n/a 0 0 n/a
nodetool সম্পর্কে আরও তথ্যের জন্য, nodetool ইউটিলিটি সম্পর্কে দেখুন।
Cassandra রিসোর্স
এই URL দেখুন: http://www.datastax.com/docs/1.0/operations/monitoring।
Apache ZooKeeper
ZooKeeper স্ট্যাটাস চেক করুন
- ZooKeeper প্রসেস চলছে কিনা তা নিশ্চিত করুন। ZooKeeper,
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid-এ PID ফাইল লেখে। - ZooKeeper পোর্ট টেস্ট করে নিশ্চিত করুন যে আপনি প্রতিটি ZooKeeper সার্ভারে 2181 এবং 3888 পোর্টে TCP কানেকশন স্থাপন করতে পারবেন।
- ZooKeeper ডেটাবেস থেকে আপনি ভ্যালু পড়তে পারছেন কিনা তা নিশ্চিত করুন। ZooKeeper ক্লায়েন্ট লাইব্রেরি (বা
/opt/apigee/apigee-zookeeper/bin/zkCli.sh) ব্যবহার করে কানেক্ট করুন এবং ডেটাবেস থেকে ভ্যালু পড়ুন। - স্ট্যাটাস চেক করুন:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
ZooKeeper-এর চার অক্ষরের শব্দ ব্যবহার করুন
ZooKeeper-কে ছোট সেট কমান্ডের (চার অক্ষরের শব্দ) মাধ্যমে মনিটর করা যেতে পারে যা netcat (nc) বা telnet ব্যবহার করে পোর্ট 2181-এ পাঠানো হয়।
ZooKeeper কমান্ড সম্পর্কে আরও তথ্যের জন্য, দেখুন: Apache ZooKeeper কমান্ড রেফারেন্স।
যেমন:
srvr: সার্ভারের সম্পূর্ণ বিবরণ তালিকাভুক্ত করে।stat: সার্ভার ও কানেক্ট করা ক্লায়েন্টের সংক্ষিপ্ত বিবরণ তালিকাভুক্ত করে।
ZooKeeper পোর্টে নিম্নলিখিত কমান্ডগুলি ইস্যু করা যেতে পারে:
- সার্ভার কোনও সমস্যা ছাড়াই চলছে কিনা তা পরীক্ষা করতে চার অক্ষরের ruok কমান্ড রান করুন। সঠিক
উত্তর "imok" দেখায়।
echo ruok | nc host 2181
ফেরত:
imok
- সার্ভারের পারফর্ম্যান্স এবং কানেক্ট করা ক্লায়েন্টের পরিসংখ্যানের তালিকা পেতে, চার অক্ষরের কমান্ড,
stat, রান করুন:echo stat | nc host 2181
ফেরত:
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0) /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433) /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347) /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692) Latency min/avg/max: 0/0/128 Received: 26144 Sent: 26160 Connections: 4 Outstanding: 0 Zxid: 0x2000002c2 Mode: follower Node count: 283
- netcat (nc) উপলভ্য না থাকলে, আপনি বিকল্প হিসেবে python ব্যবহার করতে পারেন।
zookeeper.pyনামে একটি ফাইল তৈরি করুন যাতে নিম্নলিখিত তথ্য থাকে:import time, socket, sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM) c.connect((sys.argv[1], 2181)) c.send(sys.argv[2]) time.sleep(0.1) print c.recv(512)
এখন নিম্নলিখিত Python লাইনগুলি রান করুন:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
LDAP লেভেল টেস্ট
নির্দিষ্ট অনুরোধ সঠিকভাবে পরিবেশন করা হয়েছে কিনা তা দেখতে আপনি OpenLDAP মনিটর করতে পারেন। অন্য কথায়, নির্দিষ্ট সার্চের জন্য সঠিক ফলাফল পাওয়া যাচ্ছে কিনা তা চেক করুন।
- সিস্টেম অ্যাডমিনের এন্ট্রি কোয়েরি করতে
ldapsearch(yum install openldap-clients) ব্যবহার করুন। সব 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) দেখতে পারেন।