কীভাবে মনিটর করতে হয়

এই ডকুমেন্টে Apigee Edge for Private Cloud-এর অন-প্রিমিজ ডিপ্লয়মেন্টের ক্ষেত্রে কাজ করে এমন কম্পোনেন্ট মনিটর করার টেকনিক বর্ণনা করা হয়েছে।

এক নজরে

Edge-এ পরিষেবা সম্পর্কে বিবরণ পাওয়ার পাশাপাশি সেগুলির স্ট্যাটাস চেক করার জন্য একাধিক পদ্ধতি কাজ করে। নিচের সারণীতে প্রতিটি উপযুক্ত পরিষেবার উপর আপনি যে ধরনের চেক করতে পারবেন তার তালিকা দেওয়া হল:

Mgmt API
কম্পোনেন্ট মেমরির ব্যবহার [JMX*] পরিষেবা চেক ব্যবহারকারী/সংস্থা/ ডেপ্লয়মেন্ট স্ট্যাটাস axstatus ডেটাবেস চেক apigee-service স্ট্যাটাস apigee-monit**
ম্যানেজমেন্ট সার্ভার
মেসেজ প্রসেসর
রাউটার
Qpid
Postgres
আরও তথ্য আরও তথ্য আরও তথ্য আরও তথ্য আরও তথ্য আরও তথ্য আরও তথ্য

* JMX ব্যবহার করার আগে, আপনাকে অবশ্যই এটি চালু করতে হবে, যেমন JMX চালু করুন নিবন্ধে বর্ণনা করা হয়েছে।

** apigee-monit পরিষেবা চেক করে দেখে যে কোনও কম্পোনেন্ট আপ আছে কিনা এবং সেটি না থাকলে সেটি রিস্টার্ট করার চেষ্টা করে। আরও তথ্যের জন্য, apigee-monit-এর মাধ্যমে স্বয়ংক্রিয় সমাধান দেখুন।

পোর্ট ও কনফিগারেশন ফাইল মনিটর করা

প্রতিটি কম্পোনেন্ট Java Management Extensions (JMX) এবং ম্যানেজমেন্ট API মনিটরিং কলকে আলাদা পোর্টে সাপোর্ট করে। নিচের টেবিলে প্রতিটি ধরনের সার্ভারের জন্য JMX ও ম্যানেজমেন্ট API পোর্ট এবং কনফিগারেশন ফাইলের লোকেশন তালিকাভুক্ত করা আছে:

কম্পোনেন্ট JMX পোর্ট ম্যানেজমেন্ট 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 ব্যবহার করা

Edge কম্পোনেন্ট মনিটর করার জন্য কীভাবে JMX ব্যবহার করতে হয় তা নিম্নলিখিত বিভাগ থেকে জানতে পারবেন।

JMX চালু করা

কোনও যাচাইকরণ বা SSL ভিত্তিক যোগাযোগ ছাড়াই JMX চালু করতে, নিচে উল্লেখ করা ধাপগুলি অনুসরণ করুন। মনে রাখবেন: প্রোডাকশন সিস্টেমে, নিরাপত্তার জন্য এনক্রিপ্ট করা যাচাইকরণ ও SSL, দুটিই চালু থাকতে হবে।

  1. উপযুক্ত কনফিগারেশন ফাইল এডিট করুন ( কনফিগারেশন ফাইল রেফারেন্স দেখুন)। কনফিগারেশন ফাইল না থাকলে সেটি তৈরি করুন।
    conf_system_jmxremote_enable=true
  2. কনফিগারেশন ফাইল সেভ করুন এবং নিশ্চিত করুন যে এটির মালিক apigee:apigee.
  3. উপযুক্ত Edge কম্পোনেন্ট রিস্টার্ট করুন
    apigee-service edge-management-server restart

JMX বন্ধ করতে, conf_system_jmxremote_enable প্রপার্টি সরিয়ে দিন অথবা এর ভ্যালু পরিবর্তন করে false করুন। তারপর উপযুক্ত Edge কম্পোনেন্ট রিস্টার্ট করুন।

JMX-এ যাচাইকরণ

প্রাইভেট ক্লাউডের জন্য Edge, ফাইলে সেভ করা বিবরণ ব্যবহার করে পাসওয়ার্ড ভিত্তিক যাচাইকরণ কাজ করে। অতিরিক্ত নিরাপত্তার জন্য আপনি পাসওয়ার্ড হ্যাশ হিসেবে সেভ করতে পারবেন।

  1. edge-* কম্পোনেন্টে JMX যাচাইকরণ চালু করতে, উপযুক্ত কনফিগারেশন ফাইল এডিট করুন ( কনফিগারেশন ফাইল রেফারেন্স দেখুন)। কনফিগারেশন ফাইল না থাকলে সেটি তৈরি করুন:
    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-এর মালিকানাধীন।
  2. পাসওয়ার্ডের SHA256 হ্যাশ তৈরি করুন:
    echo -n '' | openssl dgst -sha256
  3. JMX ব্যবহারকারীর ক্রেডেনশিয়াল সহ jmxremote.password ফাইল তৈরি করুন:
    1. আপনার $JAVA_HOME ডিরেক্টরি থেকে নিম্নলিখিত ফাইলগুলি /opt/apigee/customer/application/<component>/ ডিরেক্টরিতে কপি করুন:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. ফাইল এডিট করুন এবং নিম্নলিখিত সিনট্যাক্স ব্যবহার করে আপনার JMX ইউজারনেম ও পাসওয়ার্ড যোগ করুন:
      USERNAME <HASH-PASSWORD>
    3. দেখে নিন যে ফাইলটির মালিক apigee এবং ফাইল মোড যেন 400 হয়:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. JMX ব্যবহারকারীর অনুমতি সহ একটি jmxremote.access ফাইল তৈরি করুন:
    1. আপনার $JAVA_HOME ডিরেক্টরি থেকে নিম্নলিখিত ফাইলগুলি কপি করে /opt/apigee/customer/application/<component>/ ডিরেক্টরিতে পেস্ট করুন
      
      cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
    2. ফাইলটি এডিট করুন এবং আপনার JMX ইউজারনেম যোগ করে তার পরে অনুমতি (READONLY/READWRITE) যোগ করুন
      USERNAME READONLY
    3. দেখে নিন যে ফাইলটির মালিক apigee এবং ফাইল মোড যেন 400 হয়:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. উপযুক্ত Edge কম্পোনেন্ট রিস্টার্ট করুন:
    apigee-service edge-management-server restart

JMX যাচাইকরণ বন্ধ করতে, প্রপার্টি conf_system_jmxremote_authenticate সরিয়ে দিন অথবা ভ্যালু পরিবর্তন করে false করুন এবং উপযুক্ত Edge কম্পোনেন্ট রিস্টার্ট করুন।

JMX-এ SSL

edge-* কম্পোনেন্টে SSL ভিত্তিক JMX চালু করতে:

  1. উপযুক্ত কনফিগারেশন ফাইল এডিট করুন ( কনফিগারেশন ফাইল রেফারেন্স দেখুন)। কনফিগারেশন ফাইল না থাকলে সেটি তৈরি করুন:
    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-এর মালিকানাধীন।
  2. সার্ভার কী সহ একটি কীস্টোর তৈরি করুন এবং উপরে দেওয়া কনফিগারেশনে conf_system_javax_net_ssl_keystore উল্লিখিত পাথে এটি রাখুন। apigee:apigee-এর মাধ্যমে কীস্টোর ফাইল পড়া যাচ্ছে কিনা তা নিশ্চিত করুন।
  3. উপযুক্ত Edge কম্পোনেন্ট রিস্টার্ট করুন:
    apigee-service edge-management-server restart

SSL-ভিত্তিক JMX বন্ধ করতে, প্রপার্টি conf_system_jmxremote_ssl সরিয়ে দিন অথবা ভ্যালু পরিবর্তন করে false করুন। উপযুক্ত Edge কম্পোনেন্ট রিস্টার্ট করুন।

Jconsole-এর মাধ্যমে মনিটর করা

jconsole-এর মাধ্যমে মনিটর করার নির্দেশাবলী https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole লিঙ্কে দেওয়া বিবরণের মতোই থাকে।

একটি লাইন যোগ করা যেতে পারে যে “JMX-এর জন্য SSL চালু করা থাকলে jconsole-কে truststore ও truststore পাসওয়ার্ড দিয়ে চালু করতে হবে।” রেফারেন্স: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

JConsole-এর মাধ্যমে মনিটর করা

JConsole (JMX-এর সাথে মানানসই টুল) ব্যবহার করে হেলথ চেক ও প্রসেস সংক্রান্ত পরিসংখ্যান ম্যানেজ ও মনিটর করুন। JConsole-এর সাহায্যে, আপনার সার্ভার দ্বারা প্রকাশ করা JMX পরিসংখ্যান ব্যবহার করতে এবং সেগুলিকে গ্রাফিক্যাল ইন্টারফেসে দেখাতে পারবেন। আরও তথ্যের জন্য, JConsole ব্যবহার করা দেখুন।

JMX-এর জন্য SSL চালু করা থাকলে, আপনাকে truststore ও truststore পাসওয়ার্ড সহ JConsole চালু করতে হবে। JConsole ব্যবহার করা দেখুন।

JMX অ্যাট্রিবিউট (MBeans) মনিটর করার জন্য JConsole নিম্নলিখিত পরিষেবা URL ব্যবহার করে যা 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 এবং ম্যানেজমেন্ট API মনিটরিং পোর্ট দেখুন।

নিচের সারণীতে সাধারণ JMX পরিসংখ্যান দেখানো হয়েছে:

JMX MBeans JMX অ্যাট্রিবিউট

মেমরি

HeapMemoryUsage

NonHeapMemoryUsage

ব্যবহার

কনফিগারেশন ফাইল রেফারেন্স

JMX সম্পর্কিত কনফিগারেশনের জন্য Edge কম্পোনেন্ট কনফিগারেশন ফাইলে আপনাকে যেসব পরিবর্তন করতে হতে পারে, তা নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে। আরও তথ্যের জন্য মনিটরিং পোর্ট ও কনফিগারেশন ফাইল দেখুন।

উপযুক্ত কম্পোনেন্টের কনফিগারেশন ফাইলে JMX কনফিগারেশন যোগ করতে হবে

  • এজ-কম্পোনেন্টে JMX এজেন্ট চালু করুন। ডিফল্ট হিসেবে False থাকে।
    conf_system_jmxremote_enable=true

পাসওয়ার্ড ভিত্তিক যাচাইকরণের জন্য কনফিগারেশন

  • পাসওয়ার্ড ভিত্তিক যাচাইকরণ চালু করুন। ডিফল্ট হিসেবে False থাকে।
    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
  • এনক্রিপ্টেড ফর্ম্যাটে পাসওয়ার্ড সেভ করার সুবিধা চালু করুন। ডিফল্ট হিসেবে False থাকে।
    conf_system_jmxremote_encrypted_auth=true

SSL-এর উপর ভিত্তি করে JMX-এর জন্য কনফিগারেশন

  • JMX কমিউনিকেশনের জন্য SSL চালু করুন। ডিফল্ট হিসেবে False থাকে।
    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=
  • SSL-এর মাধ্যমে JMX রেজিস্ট্রি সুরক্ষিত করুন। ডিফল্ট মান হল false. SSL চালু করা থাকলে তবেই প্রযোজ্য।
    conf_system_jmxremote_registry_ssl=false

ম্যানেজমেন্ট API-এর মাধ্যমে মনিটর করা

Edge-এ একাধিক API আছে যা আপনি নিজের সার্ভারে পরিষেবা চেক করার পাশাপাশি আপনার ব্যবহারকারী, সংস্থা ও ডেপ্লয়মেন্ট চেক করতে ব্যবহার করতে পারেন। এই বিভাগে এইসব API-এর বর্ণনা দেওয়া আছে।

পরিষেবা চেক করা

আপনার পরিষেবায় সমস্যা মনিটর ও ডায়াগনসিস করার জন্য ম্যানেজমেন্ট API একাধিক এন্ডপয়েন্ট প্রদান করে। এইসব এন্ডপয়েন্টের মধ্যে রয়েছে:

এন্ডপয়েন্ট বিবরণ
/servers/self/up

কোনও পরিষেবা চলছে কিনা তা চেক করে। এই API কলের জন্য আপনাকে যাচাই করতে হবে না।

পরিষেবা চালু থাকলে, এই এন্ডপয়েন্ট নিম্নলিখিত উত্তর দেয়:

<ServerField>
  <Up>true</Up>
</ServerField>

পরিষেবা চালু না থাকলে, আপনি এই ধরনের উত্তর পাবেন (এটি কোন পরিষেবা এবং আপনি কীভাবে এটি চেক করেছেন তার উপর নির্ভর করে):

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

পরিষেবা সম্পর্কে তথ্য ফেরত দেয়, যার মধ্যে এগুলি অন্তর্ভুক্ত:

  • কনফিগারেশন প্রপার্টি
  • শুরু হওয়ার সময় ও আপ টাইম
  • বিল্ড, RPM ও UUID সংক্রান্ত তথ্য
  • ইন্টার্নাল ও এক্সটার্নাল হোস্টনেম ও IP অ্যাড্রেস
  • অঞ্চল ও পড
  • <isUp> প্রপার্টি, যা থেকে বোঝা যায় যে পরিষেবা চলছে কিনা

এই 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 অ্যাড্রেস এবং ইউজারনেম ও পাসওয়ার্ড উল্লেখ করুন।
  • আপনি যে সার্ভার চেক করতে চান তার ম্যানেজমেন্ট API পোর্ট হল port_number। এটি হল প্রতিটি কম্পোনেন্টের জন্য আলাদা পোর্ট। যেমন, ম্যানেজমেন্ট সার্ভারের ম্যানেজমেন্ট API পোর্ট হল ৮০৮০। ব্যবহার করার জন্য ম্যানেজমেন্ট API পোর্ট নম্বরের তালিকা পেতে, এখানে দেখুন: JMX এবং ম্যানেজমেন্ট API মনিটরিং পোর্ট

উত্তরের ফর্ম্যাট পরিবর্তন করতে, আপনি Accept হেডারকে এইভাবে নির্দিষ্ট করতে পারেন: "application/json" বা "application/xml"

নিচের উদাহরণটি লোকালহোস্টে (পোর্ট 8081) রাউটারের স্ট্যাটাস পায়:

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

নিচের উদাহরণটি 216.3.128.12 (port 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:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

যেখানে port_number হল ম্যানেজমেন্ট সার্ভারের জন্য ৮০৮০ অথবা মেসেজ প্রসেসরের জন্য ৮০৮২।

এই কলের জন্য আপনাকে সিস্টেম অ্যাডমিনিস্ট্রেশন ব্যবহারকারীর নাম ও পাসওয়ার্ড দিয়ে যাচাই করতে হবে।

সব কলের জন্য সার্ভারকে "ডিপ্লয় করা হয়েছে" স্ট্যাটাস রিটার্ন করতে হবে। এগুলি কাজ না করলে, নিম্নলিখিত কাজগুলি করুন:

  1. কোনও সমস্যা হয়েছে কিনা তা জানতে সার্ভার লগ চেক করুন। লগ এখানে আছে:
    • ম্যানেজমেন্ট সার্ভার: opt/apigee/var/log/edge-management-server
    • মেসেজ প্রসেসর: opt/apigee/var/log/edge-message-processor
  2. সার্ভারটি সঠিকভাবে কাজ করছে কিনা তা চেক করতে, সেটির বিরুদ্ধে কল করুন।
  3. ELB থেকে সার্ভার সরিয়ে দিন এবং তারপর এটি রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service service_name restart

    service_name কোথায় আছে:

    • edge-management-server
    • edge-message-processor

apigee-service কমান্ডের মাধ্যমে স্ট্যাটাস চেক করা

পরিষেবা চালু থাকা সার্ভারে লগ-ইন করার পরে apigee-service কমান্ড ব্যবহার করে আপনি Edge পরিষেবা সংক্রান্ত সমস্যার সমাধান করতে পারবেন।

apigee-service-এর মাধ্যমে কোনও পরিষেবার স্ট্যাটাস চেক করতে:

  1. সার্ভারে লগ-ইন করে নিম্নলিখিত কমান্ড রান করুন:
    /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
  2. পরিষেবা চালু না থাকলে, এটি চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. পরিষেবা রিস্টার্ট করার পরে, এটি কাজ করছে কিনা তা চেক করুন। এটি করতে, আপনি আগে যে apigee-service status কমান্ড ব্যবহার করেছিলেন সেটি ব্যবহার করুন অথবা Management API-এর মাধ্যমে মনিটর করুন নিবন্ধে বর্ণিত Management 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

সিস্টেমকে সংস্থা ও পরিবেশের নাম দেখাতে হবে।

অ্যানালিটিক্স স্ট্যাটাস যাচাই করা

আপনি নিম্নলিখিত 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.

স্ক্রিপ্ট চালানোর আগে:

  1. আপনাকে প্রতিটি Postgres নোডে check_postgres.pl স্ক্রিপ্ট ইনস্টল করতে হবে।
  2. perl-Time-HiRes.x86_64 ইনস্টল করা আছে কিনা তা নিশ্চিত করুন, এটি একটি Perl মডিউল যা হাই রেজোলিউশন অ্যালার্ম, স্লিপ, gettimeofday এবং ইন্টারভ্যাল টাইমার প্রয়োগ করে। যেমন, আপনি নিচের কমান্ড ব্যবহার করে এটি ইনস্টল করতে পারবেন:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: CentOS v7-এ check_postgres.pl ব্যবহার করার আগে, perl-Data-Dumper.x86_64 RPM ইনস্টল করুন।

check_postgres.pl আউটপুট

check_postgres.pl ব্যবহার করে API কলের ডিফল্ট আউটপুট হল Nagios মানানসই। স্ক্রিপ্ট ইনস্টল করার পরে, নিম্নলিখিত চেকগুলি করুন:

  1. ডেটাবেসের সাইজ চেক করুন:
    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'
  2. ডেটাবেসে আসা কানেকশনের সংখ্যা চেক করে দেখুন এবং সর্বাধিক অনুমোদিত কানেকশনের সাথে তুলনা করুন:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. ডেটাবেস চলছে কিনা এবং উপলভ্য আছে কিনা তা চেক করুন:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. ডিস্ক স্পেস চেক করুন:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. 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 পরিষেবা মনিটর করা সম্পর্কে অতিরিক্ত তথ্য পেতে, নিম্নলিখিত বিষয়গুলি দেখুন:

Apache Cassandra

Cassandra-র জন্য JMX ডিফল্ট হিসেবে চালু করা থাকে এবং Cassandra-তে রিমোট JMX অ্যাক্সেসের জন্য পাসওয়ার্ডের প্রয়োজন হয় না।

Cassandra-র জন্য JMX যাচাইকরণ চালু করা

আপনি Cassandra-র জন্য JMX যাচাইকরণ চালু করতে পারবেন। এটি করার পরে, আপনাকে nodetool ইউটিলিটিতে করা সমস্ত কলের জন্য একটি ইউজারনেম ও পাসওয়ার্ড দিতে হবে।

Cassandra-র জন্য JMX যাচাইকরণ চালু করতে:

  1. cassandra.properties ফাইল তৈরি ও এডিট করুন:
    1. /opt/apigee/customer/application/cassandra.properties ফাইল এডিট করুন। ফাইলটি না থাকলে, এটি তৈরি করুন।
    2. ফাইলে নিম্নলিখিত বিষয়গুলি যোগ করুন:
      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
    3. cassandra.properties ফাইলটি সেভ করুন।
    4. নিচের উদাহরণে দেখানো হয়েছে সেইভাবে ফাইলের মালিককে পরিবর্তন করে apigee:apigee করুন:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    টোকেন সেট করার জন্য প্রপার্টি ফাইল ব্যবহার করা সম্পর্কে আরও তথ্যের জন্য, Edge কীভাবে কনফিগার করতে হয় দেখুন।

  2. jmx_auth.sh তৈরি ও এডিট করুন:
    1. নিম্নলিখিত লোকেশনে ফাইল তৈরি করুন, যদি এটি না থাকে:
      /opt/apigee/customer/application/jmx_auth.sh
    2. ফাইলে নিম্নলিখিত প্রপার্টি যোগ করুন:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. jmx_auth.sh ফাইলটি সেভ করুন।
    4. ফাইল সোর্স করা:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. jmxremote.password ফাইল কপি ও এডিট করুন:
    1. আপনার $JAVA_HOME ডিরেক্টরি থেকে নিম্নলিখিত ফাইলটি /opt/apigee/customer/application/apigee-cassandra/-এ কপি করুন:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. jmxremote.password ফাইল এডিট করুন এবং নিম্নলিখিত সিনট্যাক্স ব্যবহার করে আপনার JMX ইউজারনেম ও পাসওয়ার্ড যোগ করুন:
      JMX_USERNAME JMX_PASSWORD

      যেখানে JMX_USERNAME ও JMX_PASSWORD হল JMX ইউজারনেম ও পাসওয়ার্ড যা আপনি আগে সেট করেছেন।

    3. দেখে নিন যে ফাইলটি "apigee" মালিকানাধীন এবং ফাইল মোড যেন 400 হয়:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. jmxremote.access ফাইল কপি ও এডিট করুন:
    1. আপনার $JAVA_HOME ডিরেক্টরি থেকে নিম্নলিখিত ফাইলটি /opt/apigee/customer/application/apigee-cassandra/-এ কপি করুন:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. jmxremote.access ফাইল এডিট করে নিম্নলিখিত ভূমিকা যোগ করুন:
      JMX_USERNAME readwrite
    3. দেখে নিন যে ফাইলটি "apigee" মালিকানাধীন এবং ফাইল মোড যেন 400 হয়:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
  5. Cassandra-তে configure রান করান:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Cassandra রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. অন্যান্য সব Cassandra নোডে এই প্রসেসটি রিপিট করুন।

JMX পাসওয়ার্ড এনক্রিপশন চালু করা

JMX পাসওয়ার্ড এনক্রিপশন চালু করতে, এইসব ধাপ অনুসরণ করুন:

  1. ফাইল source/conf/casssandra-env.sh খুলুন।
  2. cassandra.properties ফাইল তৈরি ও এডিট করুন:
    1. /opt/apigee/customer/application/cassandra.properties ফাইল এডিট করুন। যদি ফাইলটি না থাকে, তাহলে এটি তৈরি করুন।
    2. ফাইলে নিম্নলিখিত বিষয়গুলি যোগ করুন:
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. cassandra.properties ফাইলটি সেভ করুন।
    4. নিচের উদাহরণে দেখানো মতো, ফাইলের মালিককে apigee:apigee হিসেবে পরিবর্তন করুন:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. কমান্ড লাইনে, কাঙ্ক্ষিত পাসওয়ার্ডের SHA1 হ্যাশ তৈরি করতে echo -n 'Secret' | openssl dgst -sha1 লিখুন
  4. ইউজারনেমের বিপরীতে পাসওয়ার্ড সেট করুন $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (যা আগের বিভাগে তৈরি করা হয়েছে)।
  5. Cassandra-তে কনফিগারেশন রান করান:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Cassandra রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. অন্যান্য সব Cassandra নোডে এই প্রসেসটি রিপিট করুন।

Cassandra-র জন্য SSL সহ JMX চালু করা

SSL সহ JMX চালু করলে, Cassandra-র সাথে JMX-ভিত্তিক কমিউনিকেশনের জন্য অতিরিক্ত নিরাপত্তা ও এনক্রিপশন প্রদান করে। SSL-এর সাথে JMX চালু করতে, SSL-ভিত্তিক JMX কানেকশন গ্রহণ করার জন্য আপনাকে Cassandra-কে একটি কী ও সার্টিফিকেট দিতে হবে। এছাড়াও, আপনাকে SSL-এর জন্য nodetool (এবং JMX-এর মাধ্যমে Cassandra-র সাথে যোগাযোগ করে এমন যেকোনও টুল) কনফিগার করতে হবে।

SSL চালু JMX, প্লেনটেক্সট ও এনক্রিপটেড JMX পাসওয়ার্ড, দু'টিই সাপোর্ট করে।

Cassandra-র জন্য SSL সহ JMX চালু করতে, নিম্নলিখিত পদ্ধতি ব্যবহার করুন:

  1. JMX চালু করুন। প্রয়োজন হলে পাসওয়ার্ড এনক্রিপশন চালু করুন।
  2. Cassandra-র জন্য JMX যাচাইকরণ চালু করুন। উপরে যেভাবে বর্ণনা করা হয়েছে। কনফিগার করা ইউজারনেম ও পাসওয়ার্ড দিয়ে nodetool কাজ করছে কিনা তা নিশ্চিত করুন।
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. কীস্টোর ও ট্রাস্টস্টোর তৈরি করুন।

    • কীস্টোরে একটি কী ও সার্টিফিকেট থাকতে হবে, এবং এটি Cassandra সার্ভার কনফিগার করতে ব্যবহৃত হয়। keystore-এ একাধিক কী পেয়ার থাকলে, SSL চালু করার জন্য Cassandra প্রথম কী পেয়ার ব্যবহার করে।

      মনে রাখবেন, কীস্টোর ও কী-এর পাসওয়ার্ড একই হতে হবে (keytool ব্যবহার করে কী তৈরি করার সময় ডিফল্ট হিসেবে এটি সেট করা থাকে)।

    • ট্রাস্টস্টোরে শুধুমাত্র সার্টিফিকেট থাকতে হবে এবং JMX-এর মাধ্যমে কানেক্ট করার জন্য ক্লায়েন্ট (apigee-service ভিত্তিক কমান্ড বা nodetool) এটি ব্যবহার করে।

    উপরে উল্লিখিত শর্তগুলি যাচাই করার পরে:

    1. /opt/apigee/customer/application/apigee-cassandra/-এ কীস্টোর ফাইলটি রাখুন।
    2. শুধুমাত্র Apigee ব্যবহারকারী যাতে কীস্টোর ফাইলটি পড়তে পারেন তা নিশ্চিত করতে
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. নিম্নলিখিত ধাপগুলি অনুসরণ করে SSL সহ JMX-এর জন্য Cassandra কনফিগার করুন:
    1. Cassandra নোড বন্ধ করতে, এগুলি লিখুন:
      apigee-service apigee-cassandra stop
    2. Cassandra-তে SSL চালু করতে /opt/apigee/customer/application/cassandra.properties ফাইলটি খুলুন এবং নিম্নলিখিত লাইনগুলি যোগ করুন:
      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
    3. নিচের উদাহরণে দেখানো হয়েছে সেইভাবে ফাইলের মালিককে apigee:apigee হিসেবে পরিবর্তন করুন:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. Cassandra-তে কনফিগারেশন রান করান:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. Cassandra রিস্টার্ট করুন:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. অন্যান্য সব Cassandra নোডে এই প্রসেসটি রিপিট করুন।
    7. Cassandra নোড শুরু করতে,
      apigee-service apigee-cassandra start
  5. apigee-service Cassandra কমান্ড কনফিগার করুন। নিচে উল্লেখ করা সহ apigee-service কমান্ড চালানোর সময় আপনাকে নির্দিষ্ট এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হবে:
    apigee-service apigee-cassandra stop
    apigee-service apigee-cassandra wait_for_ready
    apigee-service apigee-cassandra ring
    apigee-service apigee-cassandra backup

    apigee-service-এর জন্য JMX যাচাইকরণ এবং SSL কনফিগার করার জন্য একাধিক বিকল্প আছে। ব্যবহারযোগ্যতা ও আপনার নিরাপত্তা সংক্রান্ত অভ্যাসের উপর ভিত্তি করে একটি বিকল্প বেছে নিন।

    বিকল্প ১ (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

    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
  6. nodetool সেট-আপ করুন। nodetool-এ JMX প্যারামিটার পাস করতে হয়। SSL চালু JMX-এর সাথে চালানোর জন্য nodetool কনফিগার করার দুটি উপায় আছে। নিচে কনফিগারেশন বিকল্পের বর্ণনা দেওয়া হল:

    SSL সম্পর্কিত কনফিগারেশন nodetool-এ পাস করার পদ্ধতিতে বিকল্পগুলি আলাদা হয়। দুটি ক্ষেত্রেই, যে ব্যবহারকারী nodetool চালাচ্ছেন তার truststore ফাইলে READ অনুমতি থাকতে হবে। ব্যবহারযোগ্যতা ও আপনার নিরাপত্তা সংক্রান্ত অভ্যাসের উপর ভিত্তি করে উপযুক্ত বিকল্প বেছে নিন।

    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 অ্যাক্সেস করতে দিতে হবে।

    --ssl বিকল্পের সাথে nodetool রান করুন।

    /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 কনফিগারেশন আগের অবস্থায় ফিরিয়ে আনতে চাইলে নিচে উল্লেখ করা ধাপগুলি অনুসরণ করুন:

  1. apigee-cassandra বন্ধ করতে
    apigee-service apigee-cassandra stop
  2. /opt/apigee/customer/application/cassandra.properties ফাইল থেকে conf_cassandra-env_com.sun.management.jmxremote.ssl=true লাইনটি সরিয়ে দিন।
  3. /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”
  4. apigee-cassandra শুরু করতে
  5. apigee-service apigee-cassandra start
  6. CASS_JMX_SSL এনভায়রনমেন্ট ভেরিয়েবল সেট করা থাকলে সেটি সরিয়ে দিন।

    unset CASS_JMX_SSL
  7. apigee-service-ভিত্তিক কমান্ড যেমন ring, stop, backup ইত্যাদি কাজ করছে কিনা তা চেক করুন।
  8. nodetool-এর সাথে --ssl সুইচ ব্যবহার করা বন্ধ করুন

Cassandra-র জন্য JMX যাচাইকরণ বন্ধ করা

Cassandra-র জন্য JMX যাচাইকরণ বন্ধ করতে:

  1. /opt/apigee/customer/application/cassandra.properties এডিট করুন।
  2. ফাইল থেকে নিম্নলিখিত লাইনটি সরিয়ে দিন:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Cassandra-তে কনফিগারেশন রান করান:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Cassandra রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. অন্যান্য সব Cassandra নোডে এই প্রসেসটি রিপিট করুন।

JConsole ব্যবহার করা: টাস্কের পরিসংখ্যান মনিটর করা

JMX অ্যাট্রিবিউট (MBeans) মনিটর করতে JConsole এবং নিম্নলিখিত পরিষেবা URL ব্যবহার করুন যা JMX-এর মাধ্যমে অফার করা হয়:

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 ক্লাস্টারের সব নোডে নিম্নলিখিত কল করা যেতে পারে:

  1. রিং সংক্রান্ত সাধারণ তথ্য (সিঙ্গেল Cassandra নোডের ক্ষেত্রেও প্রযোজ্য): সব নোডের জন্য "আপ" ও "নরমাল" দেখুন।
    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
  2. নোড সম্পর্কে সাধারণ তথ্য (প্রতিটি নোডের জন্য কল)
    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
  3. থ্রিফ্ট সার্ভারের স্ট্যাটাস (ক্লায়েন্ট API পরিবেশন করা)
    nodetool [-u username -pw password] -h localhost statusthrift

    উপরের কমান্ডের আউটপুটটি নিম্নলিখিতগুলির মতো দেখায়:

    running
  4. ডেটা স্ট্রিমিং অপারেশনের স্ট্যাটাস: ক্যাসান্ড্রা নোডের ট্রাফিক লক্ষ্য করুন:
    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 দেখুন: Cassandra মনিটরিং।

Apache Qpid Broker-J মনিটর করা

আপনি Qpid ম্যানেজমেন্ট কনসোল থেকে Qpid Broker-J মনিটর করতে পারবেন। এই বিভাগে, কীভাবে কনসোল অ্যাক্সেস করতে হয় এবং সেটি ব্যবহার করে প্রাথমিক মনিটরিং ফাংশন পারফর্ম করতে হয় তা ব্যাখ্যা করা হয়েছে। ম্যানেজমেন্ট কনসোল ব্যবহার করা সম্পর্কে আরও বিস্তারিত তথ্য পেতে, Apache Qpid ডকুমেন্টেশনে ওয়েব ম্যানেজমেন্ট কনসোল দেখুন।

ম্যানেজমেন্ট কনসোল অ্যাক্সেস করা

ডিফল্ট ম্যানেজমেন্ট কনসোল পোর্ট হল ৮০৯০। এই ডিফল্ট পোর্টে কনসোল অ্যাক্সেস করতে, আপনার ওয়েব ব্রাউজারকে এখানে পয়েন্ট করুন:

http://QPID_NODE_IP:8090

কনসোলে লগ-ইন করতে, Apigee-এর সেট করা ডিফল্ট ক্রেডেনশিয়াল অথবা Edge কনফিগারেশন ফাইলে সেট করা ক্রেডেনশিয়াল ব্যবহার করুন। আরও বিবরণের জন্য, Edge কনফিগারেশন ফাইল রেফারেন্স দেখুন।

কিউ ও মেসেজ মনিটর করা

বাঁদিকের নেভিগেশন প্যানেলে, Java-Broker > virtualhosts > queues বিকল্পে নেভিগেট করুন। UI-এর মূল অংশে কোনও সারির বিবরণ দেখতে সেটি বেছে নিন। 'বিবরণ' ভিউতে, আপনি কিউ অ্যাট্রিবিউট ও পরিসংখ্যান দেখতে পাবেন, এর মধ্যে ডেলিভার করা, এনকিউ করা মেসেজ, মেসেজ রেট ইত্যাদি সম্পর্কিত তথ্য অন্তর্ভুক্ত।

লগ ফাইল দেখা ও ডাউনলোড করা

বাঁদিকের নেভিগেশন প্যানেলে, Java-Broker > brokerloggers > logfile বিকল্পে নেভিগেট করুন। মূল UI-এর বিবরণের ভিউতে, আপনি লগ ফাইলের বিবরণ দেখতে এবং লগ ফাইল ডাউনলোড করতে পারবেন।

Qpid ম্যানেজমেন্ট API ব্যবহার করা

ম্যানেজমেন্ট টাস্ক অটোমেট করতে এবং ব্রোকার মনিটর করতে, আপনি Apache Qpid Broker-J REST API ব্যবহার করতে পারবেন। বিস্তারিত জানতে, Apache Qpid Broker REST API ডকুমেন্টেশন দেখুন।

এছাড়াও, আপনি ব্রোকার মনিটর করার জন্য কমান্ড লাইন টুল ব্যবহার করতে পারেন। যেমন:

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

Qpid-এর জন্য SSL-এর মাধ্যমে মনিটরিং চালু করা

মনিটর ও ম্যানেজ করার জন্য অতিরিক্ত নিরাপত্তা প্রদান করতে, Qpid-এর ম্যানেজমেন্ট পোর্টাল ও Qpid-এর ম্যানেজমেন্ট API-তে SSL চালু করুন। কী ও সার্টিফিকেট প্রদান করতে নিচে উল্লেখ করা নির্দেশিকা অনুসরণ করুন।

Qpid-এ ফাইল কীস্টোরের বিকল্প আছে, যা Apigee-তে চালু করা আছে। এই ধরনের কীস্টোর Java ও keytool-এর মতো Java টুলের বোঝা স্ট্যান্ডার্ড JKS কীস্টোর ফর্ম্যাট গ্রহণ করে। এছাড়াও, এটি PKCS12 কীস্টোর গ্রহণ করতে পারে, যা OpenSSL-এর মতো টুল ব্যবহার করে তৈরি করা যেতে পারে।

কীস্টোর তৈরি করা

কীস্টোর তৈরি করার জন্য, Java Keytool ডকুমেন্টেশন দেখুন।

PKCS12 কীস্টোর তৈরি করার জন্য, OpenSSL ডকুমেন্টেশন দেখুন।

প্রয়োজনীয়তা যাচাই করার পরে

  1. /opt/apigee/customer/application/apigee-qpidd-এ কীস্টোর ফাইলটি রাখুন।
  2. কীস্টোর ফাইলটি যাতে শুধুমাত্র Apigee ব্যবহারকারী পড়তে পারেন তা নিশ্চিত করুন:
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore

Qpid-এ SSL চালু করা

একবারে একটি 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
  1. ফাইলের মালিককে apigee:apigee হিসেবে পরিবর্তন করুন:
    chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
  2. Qpidd কনফিগার করা:
    apigee-service apigee-qpidd configure
  3. Qpidd রিস্টার্ট করুন:
    apigee-service apigee-qpidd restart
  4. 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
  1. Qpidd কনফিগার করা:
    apigee-service apigee-qpidd configure
  2. Qpidd রিস্টার্ট করুন:
    apigee-service apigee-qpidd restart
  3. wait_for_ready-এর মাধ্যমে স্ট্যাটাস চেক করুন:
    apigee-service apigee-qpidd wait_for_ready

Apache ZooKeeper

ZooKeeper-এর স্ট্যাটাস চেক করা

  1. ZooKeeper প্রসেস চলছে কিনা তা নিশ্চিত করুন। ZooKeeper একটি PID ফাইলকে opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid-এ লেখে।
  2. প্রতিটি ZooKeeper সার্ভারে 2181 এবং 3888 পোর্টে TCP কানেকশন স্থাপন করা যায় কিনা তা নিশ্চিত করতে ZooKeeper পোর্ট পরীক্ষা করুন।
  3. ZooKeeper ডেটাবেস থেকে আপনি ভ্যালু পড়তে পারছেন কিনা তা নিশ্চিত করুন। ZooKeeper ক্লায়েন্ট লাইব্রেরি (বা /opt/apigee/apigee-zookeeper/bin/zkCli.sh) ব্যবহার করে কানেক্ট করুন এবং ডেটাবেস থেকে একটি ভ্যালু পড়ুন।
  4. স্ট্যাটাস চেক করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

ZooKeeper-এর চার অক্ষরের শব্দ ব্যবহার করা

ZooKeeper-কে কমান্ডের (চার অক্ষরের শব্দ) একটি ছোট সেটের মাধ্যমে মনিটর করা যেতে পারে যা netcat (nc) বা telnet ব্যবহার করে পোর্ট ২১৮১-এ পাঠানো হয়।

ZooKeeper কমান্ড সম্পর্কে আরও তথ্যের জন্য, এগুলি দেখুন: Apache ZooKeeper কমান্ড রেফারেন্স।

যেমন:

  • srvr: সার্ভারের সম্পূর্ণ বিবরণ সহ তালিকা।
  • stat: সার্ভার ও কানেক্ট করা ক্লায়েন্টদের সংক্ষিপ্ত বিবরণ সহ তালিকা।

ZooKeeper পোর্টে নিম্নলিখিত কমান্ড ইস্যু করা যেতে পারে:

  1. সার্ভারটি কোনও সমস্যা ছাড়াই চলছে কিনা তা পরীক্ষা করতে, চার অক্ষরের কমান্ড ruok চালান। A সঠিক উত্তর পেলে "imok" রিটার্ন করে।
    echo ruok | nc host 2181

    ফেরত:

    imok
  2. সার্ভারের পারফর্ম্যান্স ও কানেক্ট করা ক্লায়েন্ট সংক্রান্ত পরিসংখ্যানের তালিকা পেতে, 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
  3. 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 লেভেল টেস্ট

নির্দিষ্ট অনুরোধ সঠিকভাবে পূরণ করা হচ্ছে কিনা তা দেখতে আপনি SymasLDAP মনিটর করতে পারেন। অন্য কথায়, সঠিক ফলাফল দেয় এমন নির্দিষ্ট সার্চ চেক করুন।

  1. সিস্টেম অ্যাডমিনের এন্ট্রি কোয়েরি করতে ldapsearch (yum install symasldap-clients) ব্যবহার করুন। সব API কল যাচাই করার জন্য এই এন্ট্রি ব্যবহার করা হয়।
    /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
  2. নিচের কমান্ডের মাধ্যমে ম্যানেজমেন্ট সার্ভার এখনও LDAP-এর সাথে কানেক্ট করা আছে কিনা তা চেক করুন:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    ফেরত:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

এছাড়াও, আপনি SymasLDAP ক্যাশে মনিটর করতে পারেন, যা ডিস্ক অ্যাক্সেসের সংখ্যা কমাতে সাহায্য করে এবং এর ফলে সিস্টেমের পারফর্ম্যান্স উন্নত হয়। SymasLDAP সার্ভারে ক্যাশে সাইজ মনিটর ও টিউন করলে ডিরেক্টরি সার্ভারের পারফর্ম্যান্সের উপর প্রভাব পড়তে পারে। ক্যাশে সম্পর্কে তথ্য পেতে, আপনি লগ ফাইল (opt/apigee/var/log) দেখতে পারেন।