মূল কন্টেন্টে যান

InfluxDB এবং Grafana দিয়ে Geth মনিটরিং

ক্লায়েন্ট
নোড
মধ্যবর্তী
মারিও হাভেল
13 জানুয়ারী, 2021
5 মিনিট পড়ার সময়

এই টিউটোরিয়ালটি আপনাকে আপনার Geth নোডের জন্য মনিটরিং সেট আপ করতে সাহায্য করবে যাতে আপনি এর পারফরম্যান্স আরও ভালোভাবে বুঝতে পারেন এবং সম্ভাব্য সমস্যাগুলি চিহ্নিত করতে পারেন।

পূর্বশর্ত

মনিটরিং স্ট্যাক

একটি ইথেরিয়াম ক্লায়েন্ট প্রচুর ডেটা সংগ্রহ করে যা একটি ক্রমানুক্রমিক ডেটাবেস আকারে পড়া যায়। মনিটরিং সহজ করতে, আপনি এটি ডেটা ভিজ্যুয়ালাইজেশন সফ্টওয়্যারে ফিড করতে পারেন। এর জন্য একাধিক বিকল্প উপলব্ধ রয়েছে:

এছাড়াও Geth Prometheus Exporter (opens in a new tab) রয়েছে, যা InfluxDB এবং Grafana-এর সাথে আগে থেকেই কনফিগার করা একটি বিকল্প।

এই টিউটোরিয়ালে, আমরা আপনার Geth ক্লায়েন্টকে InfluxDB-তে ডেটা পুশ করে একটি ডেটাবেস তৈরি করতে এবং Grafana-তে ডেটার একটি গ্রাফ ভিজ্যুয়ালাইজেশন তৈরি করতে সেট আপ করব। এটি ম্যানুয়ালি করলে আপনি প্রক্রিয়াটি আরও ভালোভাবে বুঝতে পারবেন, এটি পরিবর্তন করতে পারবেন এবং বিভিন্ন পরিবেশে ডিপ্লয় করতে পারবেন।

InfluxDB সেট আপ করা

প্রথমে, চলুন InfluxDB ডাউনলোড এবং ইনস্টল করি। বিভিন্ন ডাউনলোডের বিকল্প Influxdata রিলিজ পেজে (opens in a new tab) পাওয়া যাবে। আপনার পরিবেশের জন্য উপযুক্ত একটি বেছে নিন। আপনি এটি একটি রিপোজিটরি (opens in a new tab) থেকেও ইনস্টল করতে পারেন। উদাহরণস্বরূপ Debian ভিত্তিক ডিস্ট্রিবিউশনে:

curl -tlsv1.3 --proto =https -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update
sudo apt install influxdb -y
sudo systemctl enable influxdb
sudo systemctl start influxdb
sudo apt install influxdb-client

সফলভাবে InfluxDB ইনস্টল করার পর, নিশ্চিত করুন যে এটি ব্যাকগ্রাউন্ডে চলছে। ডিফল্টরূপে, এটি localhost:8086-এ পৌঁছানো যায়। influx ক্লায়েন্ট ব্যবহার করার আগে, আপনাকে অ্যাডমিন সুবিধা সহ নতুন ব্যবহারকারী তৈরি করতে হবে। এই ব্যবহারকারী উচ্চ স্তরের পরিচালনা, ডেটাবেস এবং ব্যবহারকারী তৈরির জন্য কাজ করবে।

curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"

এখন আপনি এই ব্যবহারকারীর সাথে InfluxDB শেলে (opens in a new tab) প্রবেশ করতে influx ক্লায়েন্ট ব্যবহার করতে পারেন।

influx -username 'username' -password 'password'

এর শেলে সরাসরি InfluxDB-এর সাথে যোগাযোগ করে, আপনি geth মেট্রিক্সের জন্য ডেটাবেস এবং ব্যবহারকারী তৈরি করতে পারেন।

create database geth
create user geth with password choosepassword

তৈরি করা এন্ট্রিগুলি যাচাই করুন:

show databases
show users

InfluxDB শেল থেকে প্রস্থান করুন।

exit

InfluxDB চলছে এবং Geth থেকে মেট্রিক্স সংরক্ষণ করার জন্য কনফিগার করা হয়েছে।

Geth প্রস্তুত করা

ডেটাবেস সেট আপ করার পর, আমাদের Geth-এ মেট্রিক্স সংগ্রহ সক্ষম করতে হবে। geth --help-এ METRICS AND STATS OPTIONS-এর দিকে মনোযোগ দিন। সেখানে একাধিক বিকল্প পাওয়া যেতে পারে, এই ক্ষেত্রে আমরা চাই Geth যেন InfluxDB-তে ডেটা পুশ করে। বেসিক সেটআপ সেই এন্ডপয়েন্ট নির্দিষ্ট করে যেখানে InfluxDB পৌঁছানো যায় এবং ডেটাবেসের জন্য প্রমাণীকরণ (authentication) থাকে।

geth --metrics --metrics.influxdb --metrics.influxdb.endpoint "http://0.0.0.0:8086" --metrics.influxdb.username "geth" --metrics.influxdb.password "chosenpassword"

এই ফ্ল্যাগগুলি ক্লায়েন্ট শুরু করার কমান্ডের সাথে যুক্ত করা যেতে পারে বা কনফিগারেশন ফাইলে সংরক্ষণ করা যেতে পারে।

আপনি যাচাই করতে পারেন যে Geth সফলভাবে ডেটা পুশ করছে, উদাহরণস্বরূপ ডেটাবেসে মেট্রিক্স তালিকাভুক্ত করে। InfluxDB শেলে:

use geth
show measurements

Grafana সেট আপ করা

পরবর্তী ধাপ হল Grafana ইনস্টল করা যা ডেটাকে গ্রাফিকভাবে ব্যাখ্যা করবে। Grafana ডকুমেন্টেশনে আপনার পরিবেশের জন্য ইনস্টলেশন প্রক্রিয়া অনুসরণ করুন। আপনি যদি অন্য কিছু না চান তবে OSS সংস্করণ ইনস্টল করার বিষয়টি নিশ্চিত করুন। রিপোজিটরি ব্যবহার করে Debian ডিস্ট্রিবিউশনের জন্য উদাহরণস্বরূপ ইনস্টলেশন ধাপ:

curl -tlsv1.3 --proto =https -sL https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

যখন আপনার Grafana চালু হবে, তখন এটি localhost:3000-এ পৌঁছানো উচিত। এই পাথে অ্যাক্সেস করতে আপনার পছন্দের ব্রাউজার ব্যবহার করুন, তারপর ডিফল্ট ক্রেডেনশিয়াল (ব্যবহারকারী: admin এবং পাসওয়ার্ড: admin) দিয়ে লগইন করুন। প্রম্পট করা হলে, ডিফল্ট পাসওয়ার্ড পরিবর্তন করুন এবং সেভ করুন।

Grafana dashboard screenshot for Geth monitoring (panel 1)

আপনাকে Grafana হোম পেজে রিডাইরেক্ট করা হবে। প্রথমে, আপনার সোর্স ডেটা সেট আপ করুন। বাম বারের কনফিগারেশন আইকনে ক্লিক করুন এবং "Data sources" নির্বাচন করুন।

Grafana dashboard screenshot for Geth monitoring (panel 2)

এখনও কোনো ডেটা সোর্স তৈরি করা হয়নি, একটি সংজ্ঞায়িত করতে "Add data source"-এ ক্লিক করুন।

Grafana dashboard screenshot for Geth monitoring (panel 3)

এই সেটআপের জন্য, "InfluxDB" নির্বাচন করুন এবং এগিয়ে যান।

Grafana dashboard screenshot for Geth monitoring (panel 4)

আপনি যদি একই মেশিনে টুলগুলি চালান তবে ডেটা সোর্স কনফিগারেশন বেশ সহজ। ডেটাবেস অ্যাক্সেস করার জন্য আপনাকে InfluxDB ঠিকানা এবং বিবরণ সেট করতে হবে। নিচের ছবিটি দেখুন।

Grafana dashboard screenshot for Geth monitoring (panel 5)

যদি সবকিছু সম্পূর্ণ হয় এবং InfluxDB পৌঁছানো যায়, তবে "Save and test"-এ ক্লিক করুন এবং কনফার্মেশন পপ আপ হওয়ার জন্য অপেক্ষা করুন।

Grafana dashboard screenshot for Geth monitoring (panel 6)

Grafana এখন InfluxDB থেকে ডেটা পড়ার জন্য সেট আপ করা হয়েছে। এখন আপনাকে একটি ড্যাশবোর্ড তৈরি করতে হবে যা এটি ব্যাখ্যা করবে এবং প্রদর্শন করবে। ড্যাশবোর্ডের বৈশিষ্ট্যগুলি JSON ফাইলে এনকোড করা থাকে যা যে কেউ তৈরি করতে পারে এবং সহজেই ইমপোর্ট করা যায়। বাম বারে, "Create and Import"-এ ক্লিক করুন।

Grafana dashboard screenshot for Geth monitoring (panel 7)

একটি Geth মনিটরিং ড্যাশবোর্ডের জন্য, এই ড্যাশবোর্ডের (opens in a new tab) আইডি কপি করুন এবং Grafana-এর "Import page"-এ পেস্ট করুন। ড্যাশবোর্ড সেভ করার পর, এটি দেখতে এমন হওয়া উচিত:

Grafana dashboard screenshot for Geth monitoring (panel 8)

আপনি আপনার ড্যাশবোর্ডগুলি পরিবর্তন করতে পারেন। প্রতিটি প্যানেল সম্পাদনা, সরানো, মুছে ফেলা বা যোগ করা যেতে পারে। আপনি আপনার কনফিগারেশন পরিবর্তন করতে পারেন। এটি আপনার উপর নির্ভর করে! ড্যাশবোর্ডগুলি কীভাবে কাজ করে সে সম্পর্কে আরও জানতে, Grafana-এর ডকুমেন্টেশন (opens in a new tab) দেখুন। আপনি অ্যালার্টিং (Alerting) (opens in a new tab)-এও আগ্রহী হতে পারেন। এটি আপনাকে মেট্রিক্স নির্দিষ্ট মানগুলিতে পৌঁছালে অ্যালার্ট নোটিফিকেশন সেট আপ করতে দেয়। বিভিন্ন যোগাযোগের চ্যানেল সমর্থিত।