জুনিপার নেটওয়ার্ক - লোগোRouting Active Testing Streaming API
গাইড

ভূমিকা

This guide describes how to extract data from Routing Active Testing via the product’s streaming API.
The API as well as the streaming client are included in the Routing Active Testing installation. However, a bit of configuration is needed before you can use the API. This is covered in the “Configuring the Streaming API” on page 1 chapter.
স্ট্রিমিং API কনফিগার করা হচ্ছে

ওভারview

এই অধ্যায়টি বর্ণনা করে যে কীভাবে কাফকার মাধ্যমে মেট্রিক্স বার্তাগুলিতে সদস্যতা নেওয়ার জন্য স্ট্রিমিং API কনফিগার করতে হয়।
নীচে আমরা মাধ্যমে যেতে হবে:

  • কিভাবে স্ট্রিমিং এপিআই সক্ষম করবেন
  • বহিরাগত ক্লায়েন্টদের কথা শোনার জন্য কাফকাকে কীভাবে কনফিগার করবেন
  • ACL ব্যবহার করার জন্য কাফকাকে কীভাবে কনফিগার করবেন এবং উল্লিখিত ক্লায়েন্টদের জন্য SSL এনক্রিপশন সেট আপ করবেন

কাফকা কি?
কাফকা হল একটি ইভেন্ট-স্ট্রিমিং প্ল্যাটফর্ম যা ইভেন্ট স্ট্রীম আকারে বিভিন্ন ইভেন্ট সোর্স (সেন্সর, ডাটাবেস, মোবাইল ডিভাইস) থেকে প্রেরিত ডেটা রিয়েল-টাইম ক্যাপচার করার পাশাপাশি পরবর্তীতে পুনরুদ্ধার এবং ম্যানিপুলেশনের জন্য এই ইভেন্ট স্ট্রীমগুলির টেকসই সঞ্চয় করার অনুমতি দেয়।
কাফকার সাহায্যে ইভেন্ট স্ট্রিমিং এন্ড-টু-এন্ড ডিস্ট্রিবিউটেড, অত্যন্ত স্কেলেবল, ইলাস্টিক, ত্রুটি-সহনশীল এবং নিরাপদ পদ্ধতিতে পরিচালনা করা সম্ভব।
দ্রষ্টব্য: Kafka can be configured in many different ways and was designed for scalability and redundant systems. This document focuses only on how to configure it to make use of the Streaming API feature found in Routing Active Testing Control Center. For more advanced setups we refer to the official Kafka documentation: kafka.apache.org/26/documentation.html.
পরিভাষা

  • কাফকা: ইভেন্ট-স্ট্রিমিং প্ল্যাটফর্ম।
  • কাফকা বিষয়: ঘটনা সংগ্রহ।
  • কাফকা গ্রাহক/ভোক্তা: একটি কাফকা বিষয়ের মধ্যে সংরক্ষিত ঘটনা পুনরুদ্ধারের জন্য দায়ী উপাদান।
  • কাফকা ব্রোকার: একটি কাফকা ক্লাস্টারের স্টোরেজ লেয়ার সার্ভার।
  • SSL/TLS: SSL হল একটি নিরাপদ প্রোটোকল যা ইন্টারনেটে নিরাপদে তথ্য পাঠানোর জন্য তৈরি করা হয়েছে। TLS হল SSL-এর উত্তরসূরি, 1999 সালে প্রবর্তিত হয়।
  • SASL: ফ্রেমওয়ার্ক যা ব্যবহারকারীর প্রমাণীকরণ, ডেটা অখণ্ডতা পরীক্ষা এবং এনক্রিপশনের জন্য প্রক্রিয়া প্রদান করে।
  • Streaming API subscriber: Component responsible for retrieval of events stored in topics defined in Routing Active Testing and meant for external access.
  • সার্টিফিকেট অথরিটি: একটি বিশ্বস্ত সত্তা যা পাবলিক কী সার্টিফিকেট ইস্যু করে এবং প্রত্যাহার করে।
  • শংসাপত্র কর্তৃপক্ষের মূল শংসাপত্র: সর্বজনীন কী শংসাপত্র যা একটি শংসাপত্র কর্তৃপক্ষকে চিহ্নিত করে।

স্ট্রিমিং API কিভাবে কাজ করে
পূর্বে উল্লিখিত হিসাবে, স্ট্রিমিং API বহিরাগত ক্লায়েন্টদের কাফকা থেকে মেট্রিক্স সম্পর্কে তথ্য পুনরুদ্ধার করার অনুমতি দেয়।
একটি পরীক্ষা বা পর্যবেক্ষণ কাজের সময় টেস্ট এজেন্টদের দ্বারা সংগৃহীত সমস্ত মেট্রিক স্ট্রিম পরিষেবাতে পাঠানো হয়।
একটি প্রক্রিয়াকরণ পর্যায়ের পরে, স্ট্রিম পরিষেবা অতিরিক্ত মেটাডেটা সহ কাফকাতে সেই মেট্রিক্সগুলি প্রকাশ করে৷
কাফকা বিষয়
Kafka has the concept of topics to which all data is published. In Routing Active Testing there are many such Kafka topics available; however, only a subset of these are meant for external access.
Each Routing Active Testing account in Control Center has two dedicated topics. Below, ACCOUNT is the account short name:

  • paa.public.accounts৷ACCOUNT}.metrics৷
  • প্রদত্ত অ্যাকাউন্টের জন্য সমস্ত মেট্রিক্স বার্তা এই বিষয়ে প্রকাশিত হয়েছে৷
  • প্রচুর পরিমাণে ডেটা
  • উচ্চ আপডেট ফ্রিকোয়েন্সি
  • paa.public.accounts৷ACCOUNT}.metadata৷
  • মেট্রিক্স ডেটা সম্পর্কিত মেটাডেটা রয়েছে, যেমনampমেট্রিক্সের সাথে সম্পর্কিত পরীক্ষা, মনিটর বা টেস্ট এজেন্ট
  • অল্প পরিমাণে ডেটা
  • কম আপডেট ফ্রিকোয়েন্সি

স্ট্রিমিং এপিআই সক্ষম করা হচ্ছে
দ্রষ্টব্য: These instructions are to be run on the Control Center server using sudor.
যেহেতু স্ট্রিমিং এপিআই কন্ট্রোল সেন্টারে কিছু ওভারহেড যোগ করে, তাই এটি ডিফল্টরূপে সক্ষম হয় না। এপিআই সক্ষম করার জন্য, আমাদের প্রথমে মূল কনফিগারেশনে কাফকার মেট্রিক্স প্রকাশ করতে হবে file:

  • /etc/netrounds/netrounds.conf

KAFKA_METRICS_ENABLED = সত্য
KAFKA_PUBLISH_METADATA_FOR_STREAMS = True

বৈদ্যুতিক সতর্কতা আইকন সতর্কতা: এই বৈশিষ্ট্যটি সক্ষম করা হলে তা নিয়ন্ত্রণ কেন্দ্রের কর্মক্ষমতা প্রভাবিত করতে পারে। নিশ্চিত করুন যে আপনি সেই অনুযায়ী আপনার দৃষ্টান্তের মাত্রা করেছেন।
এর পরে, সঠিক কাফকা বিষয়গুলিতে এই মেট্রিকগুলি ফরওয়ার্ডিং সক্ষম করতে:

  • /etc/netrounds/metrics.yaml

স্ট্রিমিং-এপিআই: সত্য
স্ট্রিমিং API পরিষেবাগুলি সক্ষম এবং শুরু করতে, চালান:

  • sudo এনসিসি পরিষেবা টাইমস্কেলডবি মেট্রিক্স সক্ষম করে
  • সুডো এনসিসি পরিষেবাগুলি টাইমস্কেলডবি মেট্রিক্স শুরু করে

অবশেষে, পরিষেবাগুলি পুনরায় চালু করুন:

  • sudo এনসিসি পরিষেবা পুনরায় চালু করুন

দ্রষ্টব্য: The KAFKA_PUBLISH_RESOURCES setting has been deprecated. It should be removed from your configuration. Use KAFKA_PUBLISH_METADATA_FOR_STREAMS = True instead.
স্ট্রিমিং API নিয়ন্ত্রণ কেন্দ্রে কাজ করে তা যাচাই করা হচ্ছে
দ্রষ্টব্য: এই নির্দেশাবলী নিয়ন্ত্রণ কেন্দ্র সার্ভারে চালানো হবে.
You can now verify that you are receiving metrics on the correct Kafka topics. To do so, install the Kafka cat utility:

  • sudo apt- আপডেট পান
  • sudo apt-get install kafkacat

If you have a test or monitor running in Control Center, you should be able to use Kafka cat to receive metrics and metadata on these topics.
আপনার অ্যাকাউন্টের সংক্ষিপ্ত নাম দিয়ে myaccount প্রতিস্থাপন করুন (এটি আপনি আপনার নিয়ন্ত্রণ কেন্দ্রে দেখতে পাচ্ছেন URL):

  • METRICS_TOPIC=paa.public.accounts.myaccount.metrics রপ্তানি করুন
  • METADATA_TOPIC=paa.public.accounts.myaccount.metadata রপ্তানি করুন

আপনি এখন এই কমান্ড চালানোর মাধ্যমে মেট্রিক্স দেখতে হবে:

  • kafkacat -b ${KAFKA_FQDN}:9092 -t ${METRICS_TOPIC} -C -e

প্রতি view মেটাডেটা, নিম্নলিখিত কমান্ডটি চালান (মনে রাখবেন যে এটি ঘন ঘন আপডেট হবে না):

  • kafkacat -b ${KAFKA_FQDN}:9092 -t ${METADATA_TOPIC} -C -e

দ্রষ্টব্য: This is just a sanity check to make sure things are being published correctly. The data you see being published will be in binary form, which kafkacat will not decode by default. For properly subscribing to these topics, please see the “Client Examples” on page 13 section.
এটি যাচাই করে যে আমাদের নিয়ন্ত্রণ কেন্দ্রের মধ্যে থেকে একটি কার্যকরী স্ট্রিমিং API আছে। যাইহোক, সম্ভবত আপনি পরিবর্তে একটি বহিরাগত ক্লায়েন্ট থেকে ডেটা অ্যাক্সেস করতে আগ্রহী। পরবর্তী বিভাগে বহিরাগত অ্যাক্সেসের জন্য কাফকাকে কীভাবে খুলতে হয় তা বর্ণনা করা হয়েছে।
বহিরাগত হোস্টদের জন্য কাফকা খোলা
দ্রষ্টব্য: এই নির্দেশাবলী নিয়ন্ত্রণ কেন্দ্র সার্ভারে চালানো হবে।
ডিফল্টরূপে কন্ট্রোল সেন্টারে চলমান কাফকা শুধুমাত্র অভ্যন্তরীণ ব্যবহারের জন্য লোকালহোস্টে শোনার জন্য কনফিগার করা হয়েছে।
কাফকা সেটিংস পরিবর্তন করে বহিরাগত ক্লায়েন্টদের জন্য কাফকা খোলা সম্ভব।
কাফকার সাথে সংযোগ করা: সতর্কতা
সতর্কতা আইকন সতর্কতা:
দয়া করে এটি মনোযোগ সহকারে পড়ুন, যেহেতু আপনি যদি এই ধারণাগুলি না বুঝে থাকেন তবে কাফকার সাথে সংযোগের সমস্যাগুলি চালানো সহজ।
এই নথিতে বর্ণিত কন্ট্রোল সেন্টার সেটআপে, শুধুমাত্র একজন কাফকা ব্রোকার আছে।
যাইহোক, মনে রাখবেন যে একজন কাফকা ব্রোকার বলতে বোঝানো হয় একটি কাফকা ক্লাস্টারের অংশ হিসাবে চালানো যা অনেক কাফকা দালাল নিয়ে গঠিত হতে পারে।
কাফকা ব্রোকারের সাথে সংযোগ করার সময়, কাফকা ক্লায়েন্ট দ্বারা একটি প্রাথমিক সংযোগ স্থাপন করা হয়। এই সংযোগে কাফকা দালাল "বিজ্ঞাপিত শ্রোতাদের" একটি তালিকা ফেরত দেবে, যা এক বা একাধিক কাফকা দালালের তালিকা।
এই তালিকাটি পাওয়ার পর, কাফকা ক্লায়েন্ট সংযোগ বিচ্ছিন্ন করবে, তারপর এই বিজ্ঞাপনী শ্রোতাদের একজনের সাথে পুনরায় সংযোগ স্থাপন করবে। বিজ্ঞাপিত শ্রোতাদের অবশ্যই হোস্টনাম বা আইপি ঠিকানা থাকতে হবে যা কাফকা ক্লায়েন্টের কাছে অ্যাক্সেসযোগ্য, নতুবা ক্লায়েন্ট সংযোগ করতে ব্যর্থ হবে।
যদি SSL এনক্রিপশন ব্যবহার করা হয়, একটি SSL শংসাপত্রের সাথে জড়িত যা একটি নির্দিষ্ট হোস্টনামের সাথে সংযুক্ত থাকে, এটি আরও বেশি গুরুত্বপূর্ণ যে কাফকা ক্লায়েন্ট সংযোগ করার জন্য সঠিক ঠিকানা পায়, কারণ অন্যথায় সংযোগটি প্রত্যাখ্যান করা হতে পারে।
এখানে কাফকা শ্রোতাদের সম্পর্কে আরও পড়ুন: www.confluent.io/blog/kafka-listeners-explained
SSL/TLS এনক্রিপশন
শুধুমাত্র বিশ্বস্ত ক্লায়েন্টদের কাফকা এবং স্ট্রিমিং API অ্যাক্সেস করার অনুমতি দেওয়া হয়েছে তা নিশ্চিত করতে, আমাদের অবশ্যই নিম্নলিখিতগুলি কনফিগার করতে হবে:

  • প্রমাণীকরণ: ক্লায়েন্টদের অবশ্যই ক্লায়েন্ট এবং কাফকার মধ্যে একটি SSL/TLS সুরক্ষিত সংযোগের মাধ্যমে ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রদান করতে হবে।
  • অনুমোদন: প্রমাণীকৃত ক্লায়েন্টরা ACL দ্বারা নিয়ন্ত্রিত কার্য সম্পাদন করতে পারে।

এখানে একটি ওভার আছেview:
কাফকার জন্য SSL/TLS এনক্রিপশন কীভাবে কাজ করে তা সম্পূর্ণরূপে বোঝার জন্য, অনুগ্রহ করে অফিসিয়াল ডকুমেন্টেশন দেখুন: docs.confluent.io/platform/current/kafka/encryption.html
SSL/TLS শংসাপত্র শেষview
দ্রষ্টব্য:
এই উপধারায় আমরা নিম্নলিখিত পরিভাষা ব্যবহার করব:
শংসাপত্র: একটি শংসাপত্র কর্তৃপক্ষ (CA) দ্বারা স্বাক্ষরিত একটি SSL শংসাপত্র। প্রতিটি কাফকা দালালের একজন থাকে।
কীস্টোর: কীস্টোর file যে শংসাপত্র সংরক্ষণ করে. চাবির দোকান file শংসাপত্রের ব্যক্তিগত কী রয়েছে; অতএব, এটা নিরাপদে রাখা প্রয়োজন.
ট্রাস্টস্টোর: এ file বিশ্বস্ত CA শংসাপত্র সমেত।
কন্ট্রোল সেন্টারে চলমান একটি বহিরাগত ক্লায়েন্ট এবং কাফকার মধ্যে প্রমাণীকরণ সেট আপ করার জন্য, উভয় পক্ষের একটি সার্টিফিকেট অথরিটি (CA) দ্বারা স্বাক্ষরিত একটি সম্পর্কিত শংসাপত্র সহ CA রুট শংসাপত্রের সাথে সংজ্ঞায়িত একটি কীস্টোর থাকতে হবে৷
এটি ছাড়াও, ক্লায়েন্টের অবশ্যই CA রুট সার্টিফিকেট সহ একটি ট্রাস্টস্টোর থাকতে হবে।
CA রুট সার্টিফিকেট কাফকা ব্রোকার এবং কাফকা ক্লায়েন্টের কাছে সাধারণ।
প্রয়োজনীয় সার্টিফিকেট তৈরি করা
এটি 16 পৃষ্ঠার "পরিশিষ্ট" এ কভার করা হয়েছে।
কন্ট্রোল সেন্টারে কাফকা ব্রোকার SSL/TLS কনফিগারেশন
দ্রষ্টব্য: এই নির্দেশাবলী নিয়ন্ত্রণ কেন্দ্র সার্ভারে চালানো হবে.
দ্রষ্টব্য: Before continuing, you must create the keystone which contains the SSL certificate by following the instructions in the “Appendix” on page 16. The paths mentioned below come from these instructions. The SSL keystore is a file এর সাথে ডিস্কে সংরক্ষিত file এক্সটেনশন .jks.
একবার আপনার কাছে কাফকা ব্রোকার এবং কাফকা ক্লায়েন্ট উভয়ের জন্য প্রয়োজনীয় শংসাপত্র তৈরি হয়ে গেলে, আপনি কন্ট্রোল সেন্টারে চলমান কাফকা ব্রোকার কনফিগার করে চালিয়ে যেতে পারেন। আপনাকে নিম্নলিখিতগুলি জানতে হবে:

  • : কন্ট্রোল সেন্টারের সর্বজনীন হোস্টনাম; এটি অবশ্যই কাফকা ক্লায়েন্টদের দ্বারা সমাধানযোগ্য এবং অ্যাক্সেসযোগ্য হতে হবে।
  • : SSL সার্টিফিকেট তৈরি করার সময় দেওয়া কীস্টোর পাসওয়ার্ড।
  • এবং : এই পাসওয়ার্ডগুলি আপনি যথাক্রমে অ্যাডমিন এবং ক্লায়েন্ট ব্যবহারকারীর জন্য সেট করতে চান৷ মনে রাখবেন যে আপনি আরও ব্যবহারকারী যোগ করতে পারেন, যেমনটি পূর্বে নির্দেশিত হয়েছেampলে

Edit or append (with sudo access) the properties below in /etc/kafka/server.properties, inserting the above
variables as shown:
বৈদ্যুতিক সতর্কতা আইকন সতর্কতা: অপসারণ করবেন না PLAINTEXT://localhost:9092; এটি কন্ট্রোল সেন্টারের কার্যকারিতা ভেঙে দেবে কারণ অভ্যন্তরীণ পরিষেবাগুলি যোগাযোগ করতে সক্ষম হবে না৷

# যে ঠিকানাগুলো কাফকা দালাল শোনে।
listeners=PLAINTEXT://localhost:9092,SASL_SSL://0.0.0.0:9093
# এই হোস্ট যে কোনো ক্লায়েন্ট সংযোগ করার জন্য ফিরে বিজ্ঞাপন.
advertised.listeners=PLAINTEXT://localhost:9092,SASL_SSL:// :9093
… ####### CUSTOM CONFIG
# SSL কনফিগারেশন
ssl.endpoint.identification.algorithm=
ssl.keystore.location=/var/ssl/private/kafka.server.keystore.jks
ssl.keystore.password=
ssl.key.password=
ssl.client.auth=কোনটি নয়
ssl.protocol=TLSv1.2
# SASL কনফিগারেশন
sasl.enabled.mechanisms=PLAIN
listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginMo
dule প্রয়োজন \
ব্যবহারকারীর নাম = "প্রশাসন" \
পাসওয়ার্ড=” ” \
User:admin=”<admin_pwd>” \
user client=”<client_pwd>”;
# উল্লেখ্য ব্যবহারকারীর সাথে আরও ব্যবহারকারী যোগ করা যেতে পারে_ =
# অনুমোদন, ACL চালু করুন
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
superusers=User:admin
অ্যাক্সেস কন্ট্রোল লিস্ট (ACLs) সেট আপ করা হচ্ছে
লোকালহোস্টে ACL চালু করা
বৈদ্যুতিক সতর্কতা আইকন  সতর্কতা: আমাদের প্রথমে লোকালহোস্টের জন্য ACL সেট আপ করতে হবে, যাতে কন্ট্রোল সেন্টার নিজেই কাফকা অ্যাক্সেস করতে পারে। এটি করা না হলে, জিনিসগুলি ভেঙে যাবে।
######### বেনামী ব্যবহারকারীদের জন্য ACL এন্ট্রি
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal User: ANONYMOUS –allow-host 127.0.0.1 –cluster
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
-যোগ করুন -অনুমতি-প্রধান ব্যবহারকারী: বেনামী -অনুমতি-হোস্ট 127.0.0.1 -বিষয় '*'
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal User: ANONYMOUS –allow-host 127.0.0.1 –group ‘*’
আমাদের তখন বহিরাগত পঠনযোগ্য অ্যাক্সেসের জন্য ACL সক্ষম করতে হবে, যাতে বহিরাগত ব্যবহারকারীরা paa.public.* বিষয়গুলি পড়ার অনুমতি পান।
দ্রষ্টব্য: আরও সূক্ষ্ম নিয়ন্ত্রণের জন্য, অনুগ্রহ করে কাফকার অফিসিয়াল ডকুমেন্টেশন দেখুন।
########## বহিরাগত ব্যবহারকারীদের জন্য ACL এন্ট্রি
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
-add -allow-principal User:* -operation read -operation describe \
-গ্রুপ 'এনসিসি'
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
-add -allow-principal User:* -operation read -operation describe \
-বিষয় paa.public. -রিসোর্স-প্যাটার্ন-টাইপ উপসর্গযুক্ত
একবার এটি সম্পন্ন হলে, আপনাকে পরিষেবাগুলি পুনরায় চালু করতে হবে:
sudo এনসিসি পরিষেবা পুনরায় চালু করুন
একটি ক্লায়েন্ট একটি নিরাপদ সংযোগ স্থাপন করতে পারে তা যাচাই করতে, একটি বহিরাগত ক্লায়েন্ট কম্পিউটারে (কন্ট্রোল সেন্টার সার্ভারে নয়) নিম্নলিখিত কমান্ডটি চালান। নীচে, PUBLIC_HOSTNAME হল নিয়ন্ত্রণ কেন্দ্রের হোস্টনাম:
openssl s_client -debug -connect ${PUBLIC_HOSTNAME}:9093 -tls1_2 | grep "নিরাপদ পুনর্বিবেচনা সমর্থিত"
কমান্ড আউটপুটে আপনাকে সার্ভার শংসাপত্রের পাশাপাশি নিম্নলিখিতগুলি দেখতে হবে:
নিরাপদ পুনর্নিবেদন IS সমর্থিত
কাফকা সার্ভারে অভ্যন্তরীণ পরিষেবাগুলিকে অ্যাক্সেস দেওয়া হয়েছে তা নিশ্চিত করতে, অনুগ্রহ করে নিম্নলিখিত লগটি পরীক্ষা করুন৷files:

  • /var/log/kafka/server.log
  • /var/log/kafka/kafka-authorizer.log

বহিরাগত ক্লায়েন্ট সংযোগ যাচাই করা হচ্ছে
কাফকাত
দ্রষ্টব্য: এই নির্দেশাবলী একটি ক্লায়েন্ট কম্পিউটারে চালানো হবে (কন্ট্রোল সেন্টার সার্ভারে নয়)।
দ্রষ্টব্য: মেট্রিক্স তথ্য প্রদর্শন করতে, নিশ্চিত করুন যে অন্তত একটি মনিটর নিয়ন্ত্রণ কেন্দ্রে চলছে।
একটি বহিরাগত ক্লায়েন্ট হিসাবে সংযোগ যাচাই এবং যাচাই করতে, পৃষ্ঠা 4-এ "স্ট্রিমিং API কাজ করে তা যাচাই করা" বিভাগে ইনস্টল করা কাফকাক্যাট ইউটিলিটি ব্যবহার করা সম্ভব।
নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
দ্রষ্টব্য: নীচে, CLIENT_USER হল পূর্বে উল্লেখিত ব্যবহারকারী৷ file /etc/kafka/ server.properties in Control Center: namely, user_client and the password set there. The CA root certificate used to sign the server side SSL certificate must be present on the client.
সৃষ্টি a file নিম্নলিখিত বিষয়বস্তু সহ client.properties:
security.protocol=SASL_SSL
ssl.ca.location={PATH_TO_CA_CERT}
sasl.mechanisms=PLAIN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
যেখানে

  • {PATH_TO_CA_CERT} হল কাফকা ব্রোকার দ্বারা ব্যবহৃত CA রুট সার্টিফিকেটের অবস্থান
  • {CLIENT_USER} এবং {CLIENT_PASSWORD} হল ক্লায়েন্টের জন্য ব্যবহারকারীর শংসাপত্র৷
  • kafkacat দ্বারা গ্রাস করা বার্তা দেখতে নিম্নলিখিত কমান্ডটি চালান:

KAFKA_FQDN= রপ্তানি করুন
METRICS_TOPIC=paa.public.accounts রপ্তানি করুন। .মেট্রিক্স
kafkacat -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
যেখানে {METRICS_TOPIC} হল "paa.public" উপসর্গ সহ কাফকা বিষয়ের নাম।
দ্রষ্টব্য: kafkacat-এর পুরানো সংস্করণগুলি a থেকে ক্লায়েন্ট সেটিংস পড়ার জন্য -F বিকল্প প্রদান করে না file. আপনি যদি এই ধরনের একটি সংস্করণ ব্যবহার করেন, তাহলে আপনাকে অবশ্যই নীচের দেখানো কমান্ড লাইন থেকে একই সেটিংস প্রদান করতে হবে।
kafkacat -b ${KAFKA_FQDN}:9093 \
-X security.protocol=SASL_SSL \
-X ssl.ca.location={PATH_TO_CA_CERT} \
-X sasl.mechanisms=PLAIN \
-X sasl.username={CLIENT_USER} \
-X sasl.password={CLIENT_PASSWORD} \
-t ${METRICS_TOPIC} -C -e
সংযোগ ডিবাগ করতে, আপনি -d বিকল্পটি ব্যবহার করতে পারেন:
ভোক্তা যোগাযোগ ডিবাগ করুন
kafkacat -d ভোক্তা -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
# ডিবাগ ব্রোকার যোগাযোগ
kafkacat -d ব্রোকার -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
ব্যবহার করা কাফকা ক্লায়েন্ট লাইব্রেরির জন্য ডকুমেন্টেশন উল্লেখ করতে ভুলবেন না, কারণ বৈশিষ্ট্যগুলি client.properties থেকে আলাদা হতে পারে।
বার্তা বিন্যাস
The messages used for the metrics and metadata topics are serialized in the Protocol buffers (protobuf)format (see developers.google.com/protocol-buffers) এই বার্তাগুলির স্কিমাগুলি নিম্নলিখিত বিন্যাসে মেনে চলে:
মেট্রিক্স প্রোটোবাফ স্কিমা
সিনট্যাক্স = "প্রোটো3";
"google/protobuf/timest" আমদানি করুনampপ্রোটো";
প্যাকেজ paa.streamingapi;
বিকল্প go_package = ".;paa_streamingapi";
বার্তা মেট্রিক্স {
google.protobuf.Timestamp সময়amp = 1;
মানচিত্র মান = 2;
int32 stream_id = 3;
}
/**
* একটি মেট্রিক মান হয় একটি পূর্ণসংখ্যা বা একটি ফ্লোট হতে পারে।
*/
MetricValue {
এক প্রকার {
int64 int_val = 1;
float float_val = 2;
}
}
মেটাডেটা প্রোটোবাফ স্কিমা
সিনট্যাক্স = "প্রোটো3";
প্যাকেজ paa.streamingapi;
বিকল্প go_package = ".;paa_streamingapi";
মেসেজ মেটাডেটা {
int32 stream_id = 1;
স্ট্রিং স্ট্রিম_নাম = 2;
মানচিত্র tags = 13;
}
ক্লায়েন্ট প্রাক্তনampলেস
দ্রষ্টব্য:
এই কমান্ডগুলি একটি বহিরাগত ক্লায়েন্টে চালানোর উদ্দেশ্যে, প্রাক্তনের জন্যampআপনার ল্যাপটপ বা অনুরূপ, এবং নিয়ন্ত্রণ কেন্দ্রে নয়।
দ্রষ্টব্য: মেট্রিক্স তথ্য প্রদর্শন করতে, নিশ্চিত করুন যে অন্তত একটি মনিটর নিয়ন্ত্রণ কেন্দ্রে চলছে।
কন্ট্রোল সেন্টার টারবলের মধ্যে রয়েছে paa-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-প্রাক্তন সংরক্ষণাগারamples.tar.gz (ক্লায়েন্ট-প্রাক্তনamples), যার মধ্যে একটি প্রাক্তন রয়েছেample Python স্ক্রিপ্ট দেখানো হচ্ছে কিভাবে স্ট্রিমিং API ব্যবহার করতে হয়।
ক্লায়েন্ট ইনস্টল এবং কনফিগারিং এক্সampলেস
আপনি ক্লায়েন্ট প্রাক্তন খুঁজেamples in the Routing Active Testing Control Center folder:
এক্সপোর্ট CC_VERSION=4.6.0
cd ./paa-control-center_${CC_VERSION}
ls paa-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-প্রাক্তনampলেস*
ক্লায়েন্ট-প্রাক্তন ইনস্টল করতেampআপনার বাহ্যিক ক্লায়েন্ট কম্পিউটারে, নিম্নরূপ এগিয়ে যান:
# ক্লায়েন্ট এক্সের কন্টেন্ট এক্সট্র্যাক্ট করার জন্য ডিরেক্টরি তৈরি করুনampলেস টারবল
mkdir paa-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-প্রাক্তনampলেস
# ক্লায়েন্টের বিষয়বস্তু এক্সট্রাক্ট করুনampলেস টারবল
tar xzf paa-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-প্রাক্তনamples.tar.gz -C paa-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-প্রাক্তনampলেস
# নতুন তৈরি ডিরেক্টরিতে যান
cd paa-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-প্রাক্তনampলেস
ক্লায়েন্ট-প্রাক্তনampলেস চালানোর জন্য ডকার প্রয়োজন। ডকারের জন্য ডাউনলোড এবং ইনস্টলেশন নির্দেশাবলী এখানে পাওয়া যাবে https://docs.docker.com/engine/install.
ক্লায়েন্ট এক্স ব্যবহার করেampলেস
ক্লায়েন্ট-প্রাক্তনamples টুলগুলি প্রাক্তন নির্মাণের জন্য মৌলিক বা উন্নত মোডে চলতে পারেampবিভিন্ন জটিলতার লেস। উভয় ক্ষেত্রে, প্রাক্তন চালানোও সম্ভবampএকটি কনফিগারেশন সঙ্গে les file ক্লায়েন্ট পক্ষের আরও কাস্টমাইজেশনের জন্য অতিরিক্ত বৈশিষ্ট্য রয়েছে।
বেসিক মোড
মৌলিক মোডে, মেট্রিক্স এবং তাদের মেটাডেটা আলাদাভাবে স্ট্রিম করা হয়। এই লক্ষ্যে, ক্লায়েন্ট বাহ্যিক অ্যাক্সেসের জন্য উপলব্ধ প্রতিটি কাফকা বিষয় শোনে এবং প্রাপ্ত বার্তাগুলিকে কনসোলে প্রিন্ট করে।
বেসিক এক্সিকিউশন শুরু করতেampলেস, রান:
./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
যেখানে ACCOUNT_SHORTNAME হল সেই অ্যাকাউন্টের সংক্ষিপ্ত নাম যেটি থেকে আপনি মেট্রিক্স পেতে চান৷
প্রাক্তনের মৃত্যুদণ্ড কার্যকর করা বন্ধ করাample, Ctrl + C টিপুন। (সম্পাদনা বন্ধ হওয়ার আগে সামান্য বিলম্ব হতে পারে কারণ ক্লায়েন্ট একটি টাইমআউট ইভেন্টের জন্য অপেক্ষা করে।)
উন্নত মোড
দ্রষ্টব্য: মেট্রিক্স শুধুমাত্র কন্ট্রোল সেন্টারে চলমান HTTP মনিটরের জন্য প্রদর্শিত হয়।
উন্নত মোডে এক্সিকিউশন মেট্রিক্স এবং মেটাডেটা বার্তাগুলির মধ্যে পারস্পরিক সম্পর্ক দেখায়। একটি স্ট্রিম আইডি ক্ষেত্রের প্রতিটি মেট্রিক্স বার্তায় উপস্থিতির জন্য এটি সম্ভব হয়েছে যা সংশ্লিষ্ট মেটাডেটা বার্তাকে নির্দেশ করে।
উন্নত প্রাক্তন চালানোর জন্যampলেস, রান:
./build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
যেখানে ACCOUNT_SHORTNAME হল সেই অ্যাকাউন্টের সংক্ষিপ্ত নাম যেটি থেকে আপনি মেট্রিক্স পেতে চান৷
প্রাক্তনের মৃত্যুদণ্ড কার্যকর করা বন্ধ করাample, Ctrl + C টিপুন। (সম্পাদনা বন্ধ হওয়ার আগে সামান্য বিলম্ব হতে পারে কারণ ক্লায়েন্ট একটি টাইমআউট ইভেন্টের জন্য অপেক্ষা করে।)
অতিরিক্ত সেটিংস
প্রাক্তন চালানো সম্ভবamp-config- ব্যবহার করে ক্লায়েন্টের অতিরিক্ত কনফিগারেশন সহfile একটি দ্বারা অনুসরণ করা বিকল্প file ফর্ম কী=মানে বৈশিষ্ট্য ধারণকারী নাম।
./build.sh রান-অ্যাডভান্সড \
-কাফকা-দালাল স্থানীয় হোস্ট:9092 \
-অ্যাকাউন্ট ACCOUNT_SHORTNAME \
কনফিগারেশন-file client_config.properties
দ্রষ্টব্য: সব fileউপরের কমান্ডে উল্লেখ করা s অবশ্যই বর্তমান ডিরেক্টরিতে অবস্থিত এবং শুধুমাত্র আপেক্ষিক পাথ ব্যবহার করে উল্লেখ করা উচিত। এটি -config- উভয় ক্ষেত্রেই প্রযোজ্যfile আর্গুমেন্ট এবং কনফিগারেশনের সমস্ত এন্ট্রিতে file যে বর্ণনা file অবস্থান
বহিরাগত ক্লায়েন্ট প্রমাণীকরণ যাচাই করা হচ্ছে
ক্লায়েন্ট-এক্স ব্যবহার করে কন্ট্রোল সেন্টারের বাইরে থেকে ক্লায়েন্ট প্রমাণীকরণ যাচাই করতেamples, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  • From the Routing Active Testing Control Center folder, switch to the paa-streaming-api-client-exampলেস ফোল্ডার:
    cd paa-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-প্রাক্তনampলেস
  • বর্তমান ডিরেক্টরিতে CA রুট সার্টিফিকেট ca-cert কপি করুন।
  • একটি client.properties তৈরি করুন file নিম্নলিখিত বিষয়বস্তু সহ:
    security.protocol=SASL_SSL
    ssl.ca.location=ca-সার্ট
    sasl.mechanism=PLAIN
    sasl.username={CLIENT_USER}
    sasl.password={CLIENT_PASSWORD}
    যেখানে {CLIENT_USER} এবং {CLIENT_PASSWORD} হল ক্লায়েন্টের জন্য ব্যবহারকারীর শংসাপত্র৷
  • প্রাক্তন মৌলিক চালানampলেস:
    KAFKA_FQDN= রপ্তানি করুন
    ./build.sh run-basic –kafka-brokers ${KAFKA_FQDN}:9093 \
    -অ্যাকাউন্ট ACCOUNT_SHORTNAME
    কনফিগারেশন-file client.properties
    যেখানে ACCOUNT_SHORTNAME হল সেই অ্যাকাউন্টের সংক্ষিপ্ত নাম যেটি থেকে আপনি মেট্রিক্স পেতে চান৷
  • উন্নত প্রাক্তন চালানampলেস:
    KAFKA_FQDN= রপ্তানি করুন
    ./build.sh run-advanced –kafka-brokers ${KAFKA_FQDN}:9093 \
    -অ্যাকাউন্ট ACCOUNT_SHORTNAME
    কনফিগারেশন-file client.properties

পরিশিষ্ট

এই পরিশিষ্টে আমরা কীভাবে তৈরি করব তা বর্ণনা করি:

  • একটি কীস্টোর file কাফকা ব্রোকার SSL সার্টিফিকেট সংরক্ষণের জন্য
  • একটি ট্রাস্ট স্টোর file কাফকা ব্রোকার শংসাপত্রে স্বাক্ষর করতে ব্যবহৃত শংসাপত্র কর্তৃপক্ষ (CA) মূল শংসাপত্র সংরক্ষণের জন্য।

একটি কাফকা ব্রোকার সার্টিফিকেট তৈরি করা
একটি বাস্তব শংসাপত্র কর্তৃপক্ষ ব্যবহার করে একটি শংসাপত্র তৈরি করা (প্রস্তাবিত)
এটি সুপারিশ করা হয় যে আপনি একটি বিশ্বস্ত CA থেকে একটি বাস্তব SSL শংসাপত্র পান৷
একবার আপনি একটি CA সম্পর্কে সিদ্ধান্ত নিলে, তাদের CA রুট সার্টিফিকেট ca-cert অনুলিপি করুন৷ file নীচে দেখানো হিসাবে আপনার নিজের পথে:
এক্সপোর্ট CA_PATH=~/my-ca
mkdir ${CA_PATH}
cp ca-cert ${CA_PATH}
আপনার নিজস্ব শংসাপত্র কর্তৃপক্ষ তৈরি করুন
দ্রষ্টব্য:
সাধারণত আপনার একটি প্রকৃত শংসাপত্র কর্তৃপক্ষ দ্বারা স্বাক্ষরিত আপনার শংসাপত্র থাকা উচিত; পূর্ববর্তী উপধারা দেখুন। নিম্নলিখিত কি শুধুমাত্র একটি প্রাক্তনampলে
এখানে আমরা আমাদের নিজস্ব সার্টিফিকেট অথরিটি (CA) রুট সার্টিফিকেট তৈরি করি file 999 দিনের জন্য বৈধ (উৎপাদনে প্রস্তাবিত নয়):
# CA সংরক্ষণের জন্য একটি ডিরেক্টরি তৈরি করুন
এক্সপোর্ট CA_PATH=~/my-ca
mkdir ${CA_PATH}
# CA শংসাপত্র তৈরি করুন
openssl req -new -x509 -keyout ${CA_PATH}/ca-key -out ${CA_PATH}/ca-cert -days 999
ক্লায়েন্ট ট্রাস্টস্টোর তৈরি করা
এখন আপনি একটি ট্রাস্টস্টোর তৈরি করতে পারেন file যেটিতে উপরে উত্পন্ন ca-cert রয়েছে। এই file will be needed by the Kafka client that will access the Streaming API: keytool -keystore kafka.client.truststore.jks \
- ওরফে ক্যারুট \
-আমদানি শংসাপত্র -file ${CA_PATH}/ca-সার্ট
এখন যেহেতু CA শংসাপত্রটি ট্রাস্টস্টোরে রয়েছে, ক্লায়েন্ট এটির সাথে স্বাক্ষরিত যেকোনো শংসাপত্রকে বিশ্বাস করবে৷
আপনি অনুলিপি করা উচিত file আপনার ক্লায়েন্ট কম্পিউটারে একটি পরিচিত অবস্থানে kafka.client.truststore.jks এবং সেটিংসে নির্দেশ করুন।
কাফকা ব্রোকারের জন্য কীস্টোর তৈরি করা
কাফকা ব্রোকার SSL সার্টিফিকেট এবং তারপর কীস্টোর kafka.server.keystore.jks জেনারেট করতে, নিম্নরূপ এগিয়ে যান:
SSL সার্টিফিকেট তৈরি করা হচ্ছে
Use these commands to generate the SSL certificate. Below, 999 is the number of days of validity of the keystore.
sudo mkdir -p /var/ssl/private
sudo chown -R $USER: /var/ssl/private
cd/var/ssl/private
export CC_IP=<Control Center IP>
keytool -keystore kafka.server.keystore.jks \
-অরফে সার্ভার \
বৈধতা 999 \
-genkey -keyalg RSA -ext SAN=ip:${CC_IP}
To verify the SSL certificate, you can use the following command:
keytool -v -list -keystore kafka.server.keystore.jks -alias server
You should ensure that the port 9093 is accessible from external clients.
একটি শংসাপত্র স্বাক্ষর অনুরোধ তৈরি করুন এবং এটি সংরক্ষণ করুন file সার্টি-সার্ভার-অনুরোধের নাম:
keytool -keystore kafka.server.keystore.jks \
-অরফে সার্ভার \
- certreq \
-file cert-server-request
আপনি এখন পাঠাতে হবে file আপনার সার্টিফিকেট অথরিটি (CA) এর কাছে cert-server-অনুরোধ যদি আপনি একটি বাস্তব ব্যবহার করেন। তারপর তারা স্বাক্ষরিত সার্টিফিকেট ফেরত দেবে। আমরা এটিকে নীচে সার্টি-সার্ভার-স্বাক্ষরিত হিসাবে উল্লেখ করব।
একটি স্ব-নির্মিত CA শংসাপত্র ব্যবহার করে SSL শংসাপত্রে স্বাক্ষর করা
দ্রষ্টব্য: আবার, আপনার নিজস্ব CA ব্যবহার করা একটি উত্পাদন সিস্টেমে সুপারিশ করা হয় না।
এর মাধ্যমে CA ব্যবহার করে শংসাপত্রে স্বাক্ষর করুন file শংসাপত্র-সার্ভার-অনুরোধ, যা স্বাক্ষরিত শংসাপত্র তৈরি করে সার্ভার-স্বাক্ষরিত। নিচে দেখ; ca-password হল CA সার্টিফিকেট তৈরি করার সময় সেট করা পাসওয়ার্ড।
cd/var/ssl/private
openssl x509 -req \

  • -CA ${CA_PATH}/ca-cert \
  • -CAkey ${CA_PATH}/ca-key \
  • শংসাপত্র-সার্ভার-অনুরোধে \
  • -আউট সার্টি-সার্ভার স্বাক্ষরিত \
  • -দিন 999 -CAcreateserial \
  • -প্যাসিন পাস:{ca-password}

কীস্টোরে স্বাক্ষরিত শংসাপত্র আমদানি করা হচ্ছে
কীস্টোরে ca-cert রুট সার্টিফিকেট আমদানি করুন:
keytool -keystore kafka.server.keystore.jks \
-alias ca-cert \
-আমদানি \
-file ${CA_PATH}/ca-সার্ট
শংসাপত্র-সার্ভার-স্বাক্ষরিত হিসাবে উল্লেখ করা স্বাক্ষরিত শংসাপত্রটি আমদানি করুন:
keytool -keystore kafka.server.keystore.jks \
-অরফে সার্ভার \
-আমদানি \
-file সার্টি-সার্ভার-স্বাক্ষরিত
দ file kafka.server.keystore.jks কন্ট্রোল সেন্টার সার্ভারের একটি পরিচিত স্থানে অনুলিপি করা উচিত এবং তারপরে /etc/kafka/server.properties-এ উল্লেখ করা উচিত।
স্ট্রিমিং API ব্যবহার করে

সাধারণ

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

কাফকা বিষয়ের নাম

স্ট্রিমিং API-এর জন্য কাফকা বিষয়ের নামগুলি নিম্নরূপ, যেখানে %s হল কন্ট্রোল সেন্টার অ্যাকাউন্টের সংক্ষিপ্ত নাম (অ্যাকাউন্ট তৈরি করার সময় নির্দেশিত):
const (
রপ্তানিকারক নাম = "কাফকা"
metadataTopicTpl = "paa.public.accounts.%s.metadata"
metricsTopicTpl = "paa.public.accounts.%s.metrics"
)
Exampস্ট্রিমিং এপিআই ব্যবহার করে
প্রাক্তনampযেগুলি অনুসরণ করে তা টারবল পা-স্ট্রিমিং-এপিআই-ক্লায়েন্ট-এক্সে পাওয়া যায়amples.tar.gz কন্ট্রোল সেন্টার টারবলের মধ্যে থাকে।
প্রথমত, একটি মৌলিক প্রাক্তন আছেample প্রদর্শন করে কিভাবে মেট্রিক্স এবং তাদের মেটাডেটা আলাদাভাবে স্ট্রিম করা হয় এবং সহজভাবে প্রাপ্ত বার্তাগুলি কনসোলে প্রিন্ট করা হয়। আপনি এটি নিম্নরূপ চালাতে পারেন:
sudo ./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME There is also a more advanced example যেখানে মেট্রিক্স এবং মেটাডেটা বার্তাগুলি পারস্পরিক সম্পর্কযুক্ত। এটি চালানোর জন্য এই কমান্ডটি ব্যবহার করুন:
sudo ./build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME You need to use sudo to run Docker commands such as the ones above. Optionally, you can follow the Linux post-installation steps to be able to run Docker commands without sudo. For details, go to docs.docker.com/engine/install/linux-postinstall.
জুনিপার নেটওয়ার্ক, জুনিপার নেটওয়ার্কের লোগো, জুনিপার এবং জুনোস মার্কিন যুক্তরাষ্ট্র এবং অন্যান্য দেশে জুনিপার নেটওয়ার্ক, ইনকর্পোরেটেডের নিবন্ধিত ট্রেডমার্ক। অন্যান্য সমস্ত ট্রেডমার্ক, পরিষেবা চিহ্ন, নিবন্ধিত চিহ্ন, বা নিবন্ধিত পরিষেবা চিহ্নগুলি তাদের নিজ নিজ মালিকদের সম্পত্তি। জুনিপার নেটওয়ার্ক এই নথিতে কোনো ভুলের জন্য কোনো দায় স্বীকার করে না। জুনিপার নেটওয়ার্ক নোটিশ ছাড়াই এই প্রকাশনাটি পরিবর্তন, পরিবর্তন, স্থানান্তর বা অন্যথায় সংশোধন করার অধিকার সংরক্ষণ করে। কপিরাইট © 2025 জুনিপার নেটওয়ার্ক,
Inc. সর্বস্বত্ব সংরক্ষিত।

জুনিপার নেটওয়ার্ক - লোগো

দলিল/সম্পদ

JUNIPER NETWORKS Routing Active Testing Solution Brief [পিডিএফ] ব্যবহারকারীর নির্দেশিকা
Routing Active Testing Solution Brief, Active Testing Solution Brief, Testing Solution Brief, Solution Brief

তথ্যসূত্র

একটি মন্তব্য করুন

আপনার ইমেল ঠিকানা প্রকাশ করা হবে না. প্রয়োজনীয় ক্ষেত্রগুলি চিহ্নিত করা হয়েছে *