আজ, আমি আপনাকে একটি লোকাল Kibana ইনস্ট্যান্স সেট আপ করার মাধ্যমে যাবো যেটি একটি রিমোট Elasticsearch ক্লাস্টারের সাথে কানেক্ট থাকবে। ObjectRocket for Elasticsearch ইনস্ট্যান্সগুলোর সাথে একটি ফ্রি, হোস্টেড Kibana ইনস্টল থাকে, কিন্তু কিছু কেসে লোকাল মেশিনে Kibana চালানো অতিরিক্ত ফ্লেক্সিবিলিটি দেয়। এছাড়া, আপনি যদি এমন একটি এনভায়রনমেন্টে বা সার্ভিসে থাকেন যা হোস্টেড Kibana প্রদান করে না, এই ওয়াকথ্রু আপনাকে সহজে আপনার মেশিনে লোকালি Kibana চালাতে সাহায্য করবে।
কেন লোকাল Kibana ইনস্ট্যান্স চালাবেন?
আপনি কখনো কি চেয়েছিলেন একটি কাস্টম সেট ভিজ্যুয়ালাইজেশন তৈরি করতে যেটি অন্যান্য Kibana ইউজারদের সাথে শেয়ার্ড নয়? অথবা একটি নতুন Kibana প্লাগইন ট্রাই করতে চেয়েছিলেন শেয়ার্ড Kibana ইনস্ট্যান্সে ইনস্টল না করে? লোকালি Kibana চালানো এই সব কাজ এবং আরও অনেক কিছু করতে পারে।
Kibana লোকালি কিছুই স্টোর করে না এবং, ডিফল্টভাবে, Elasticsearch ক্লাস্টারে এর কনফিগারেশন স্টোর করার জন্য একই ইনডেক্স ব্যবহার করে। এর মানে আপনি যত চাই তত Kibana ইনস্ট্যান্স চালাতে পারেন বা শুধু তখন Kibana চালাতে পারেন যখন আপনি এটি ব্যবহার করছেন। শেয়ার্ড স্টেট/কনফিগারেশনয়ের কারণে, আপনি একটি ইনস্ট্যান্সে ভিজ্যুয়ালাইজেশন তৈরি এবং মডিফাই করতে পারেন, এবং নতুন কন্টেন্টটি ক্লাস্টারের সাথে কানেক্ট করা যেকোনো Kibana ইনস্ট্যান্সে দেখা যাবে। এর সুবিধা হলো ভালো কোলাবোরেশন এনাবল করে কিন্তু নुकসানও রয়েছে যে একটি ইউজারের ভুল সব ইউজারের জন্য ভিজ্যুয়ালাইজেশন ডিলিট বা মডিফাই করতে পারে।
আপনার Kibana ইনস্ট্যান্স ব্যবহার করে অনেক ইউজার থাকলে, আপনি আপনার নিজস্বে একটি ভিন্ন ইনডেক্সের সাথে চালাতে চাইতে পারেন, যাতে আপনার কাস্টম ভিজ্যুয়ালাইজেশন থাকে অন্য ইউজার সেগুলো নষ্ট করবে সেই রিস্ক ছাড়া। অথবা, আপনি আপনার নিজস্ব Kibana ইনস্টলে ভিজ্যুয়ালাইজেশন বা প্লাগইন ট্রাই করতে চাইতে পারেন অন্যের কাছে অ্যাক্সেস দেয়া না kuni সেগুলো রেডি না হওয়া পর্যন্ত।
ফ্লেক্সিবিলিটি কাজে লাগতে পারে, তাই চলুন সেটআপ-এ যাই।
Kibana সেট আপ করা
Kibana শুধু Elasticsearch-এ কানেক্ট করে অন্য যেকোনো Elasticsearch ক্লায়েন্টের মত, তাই আপনি যদি আপনার লোকাল সিস্টেমকে Elasticsearch-এ কানেক্ট করতে পারেন, তবে আপনি লোকালি Kibana চালাতে পারেন। আমরা Kibana-র একটি ডকারাইজড ভার্সন রিকমেন্ড করি লোকালি ইনস্টল করার কম্পোনেন্টের সংখ্যা মিনিমাইজ করতে এবং জিনিসগুলো ভালোভাবে কন্টেইনড রাখতে, তাই আপনার লোকাল সিস্টেমে কমপক্ষে Docker এবং Docker Compose ইনস্টল থাকতে হবে।
একবার আপনি Docker সেট আপ করলে, আমাদের local-kibana GitHub রিপো একটি ডিরেক্টরিতে ক্লোন করুন আপনার সিস্টেমে।
এরপর, আপনাকে অন্তর্ভুক্ত kibana.yml ফাইল কনফিগার করতে হবে আপনার প্রয়োজন অনুযায়ী। নিচে রিপোতে অন্তর্ভুক্ত ভার্সনের একটি কপি দেওয়া হলো:
--- ## Default Kibana configuration from kibana-docker. ## from https://github.com/elastic/kibana-docker/blob/master/build/kibana/config/kibana.yml # # Kibana server name and host. You shouldn't need to change these server.name: kibana server.host: "0" # These are the settings you must set to your target Elasticsearch cluster and user. elasticsearch.url: "https://your-host.es.objectrocket.com:yourport" elasticsearch.username: "youruser" elasticsearch.password: "yourpassword" # The index Kibana should use. By default, Kibana will use an index named ".kibana". # If you want to isolate your visualizations/dashboards/index patterns from others, change This #kibana.index: ".kibana"
কনফিগ ফাইলে, দুটি সেকশনে ফোকাস করতে হবে: elasticsearch.* সেটিংস এবং kibana.index সেটিং।
elasticsearch.* সেটিংস নির্ধারণ করে কোন টার্গেট Elasticsearch ক্লাস্টারের সাথে কানেক্ট করবেন। আপনি যদি ObjectRocket সার্ভিসে থাকেন, আপনি UI-র "Connect" সেকশনে সেটি পূরণের জন্য সব কিছু পাবেন। অন্যথায়, এগুলো সেট করুন একটি Elasticsearch হোস্ট এবং ইউজারনেম/পাসওয়ার্ড যা আপনি Elasticsearch-এ কানেক্ট করার জন্য ব্যবহার করেন। লক্ষ্য করুন Kibana একাধিক Elasticsearch হোস্টনেম এক্সেপ্ট করে না, তাই আপনার যদি একাধিক হোস্ট থাকে, আপনাকে শুধু একটি বেছে নিতে হবে এই Kibana ইনস্ট্যান্সের জন্য কানেক্ট করার জন্য।
দ্বিতীয় সেকশন যেখানে ফোকাস করতে হবে সেটি kibana.index সেটিং। আপনি সবার সাথে একই ভিজ্যুয়ালাইজেশন এবং ড্যাশবোর্ড নিয়ে কাজ করতে চাইলে, এটিকে যেন আছে তেমনই রেখে দিন। আপনি আপনার নিজস্ব কাস্টম সেটিংসে কাজ করতে চাইলে, এটি আনকমেন্ট করুন এবং অন্য কিছুতে পরিবর্তন করুন যাতে আপনি এবং অন্যরা এটিকে আপনার Kibana সেটিংস হিসেবে চিনতে পারেন।
Kibana চালানো
এখন আপনি Kibana ফায়ার আপ করার জন্য প্রস্তুত। আপনি যদি নেটওয়ার্ক সিকিউরিটি/ACLs-সহ একটি সার্ভিসে থাকেন, প্রথম নিশ্চিত করুন আপনি আপনার লোকাল মেশিন থেকে Elasticsearch-এ কানেক্ট করতে পারছেন।
local-kibana ডিরেক্টরি থেকে রান করুন:
$ docker-compose build --no-cache
$ docker-compose up
Kibana শুরু হতে কয়েক মিনিট নেবে এবং নিজেকে কনফিগার করতে, কিন্তু এন্ডে আপনি আপনার টার্মিনালে Kibana স্টেট 'green'-এ আপডেটেড দেখতে পাবেন। এখন, আপনি কানেক্ট করার জন্য প্রস্তুত।
কানেক্ট করা
এখন যেহেতু আপনার Kibana কন্টেইনার আপ এবং রানিং, আপনি ব্রাউজারে localhost:5601-এ নেভিগেট করতে পারেন। Kibana আপনার ইউজারনেম এবং পাসওয়ার্ড চাইবে (এটি উপরের কনফিগ ফাইলে আপনি যা দিয়েছিলেন সেটি) একবার আর, তারপর সব কিছু লোড হবে। আপনি যদি Kibana ইনডেক্স ডিফল্ট থেকে পরিবর্তন করে থাকেন, আপনাকে প্রথম লগইন করার সময় আপনার ইনডেক্স প্যাটার্ন এবং ডিফল্ট ইনডেক্স প্যাটার্ন সেট আপ করতে হবে।
সমাপ্তি
এটিই আপনার দরকার একটি লোকাল Kibana ইনস্ট্যান্স দ্রুত এবং সহজে লঞ্চ করার জন্য। আপনি আরও ডিটেইলড ইনস্ট্রাকশন আমাদের ডকুমেন্টেশনে পেতে পারেন।