OpenTelemetry Collector + Elastic APM দিয়ে Kibana-তে সিস্টেম তথ্য প্রদর্শন করা (Elasticsearch সহ)
হ্যালো, আমি অযোগ্য।
সিস্টেম তথ্য পেতে চেষ্টা করেছি।
OpenTelemetry সম্পর্কে শেখার সুযোগের কারণে এবং
❄ NixOS এবং Raspberry Pi দিয়ে হোম সার্ভার | পার্ট 5 CPU তাপমাত্রা মেট্রিক হিসাবে সংগ্রহ করা এটিও দেখেছি, তাই শেষ পর্যন্ত আমি একদিন CPU তাপমাত্রা সংগ্রহ করতে চাই...।
সেই পথের একটি অংশ হিসাবে, আমি এটি চেষ্টা করব।
ইনস্টলেশন
আগের পোস্টেElasticsearch এবং Kibana ইনস্টল করা হয়েছে) তাই এবার OpenTelemetry Collector এবং Elastic APM ইনস্টল করার চেষ্টা করব।
এছাড়াও, এবারও যথারীতি Supervisor দিয়ে ডেমন পরিচালনা করা হচ্ছে, তাই পোস্টের নির্দেশিকা অনুসরণ করলে যে কেউ সফল হবে...।
এবং তার আগে, আমরা ইলাস্টিক ব্যবহারকারীর সেটিংস কনফিগার করব।
cd /usr/share/elasticsearch/
bin/elasticsearch-setup-passwords interactive
এটি কয়েকটি ইলাস্টিক-সম্পর্কিত ব্যবহারকারী তৈরি করবে, তাই নিশ্চিত করুন যে আপনি সঠিকভাবে পাসওয়ার্ড সেট করেছেন।
এবং তারপর vim/elasticsearasticsearch.yml এ
xpack.security.enabled: true
xpack.security.authc.api_key.enabled: true
যোগ করুন।
এখন অবশেষে opentelemetry-collector ইনস্টল করা যাক। নিচের লিঙ্ক থেকে .deb প্যাকেজটি ডাউনলোড করুন।
httpithub.cen-telemetentelemetry-collector-releasleases
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.109.0/otelcol_0.109.0_linux_amd64.deb
sudo dpkg -i otelcol_0.109.0_linux_amd64.deb
এরপর Elastic APM Server ইনস্টল করব।
httpww.elastic.i/arvtup-repositories.html
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo update-rc.d apm-server defaults 95 10
apm-server এর সেটিংস কনফিগার করব।vim/apm-servm-server.yml
apm-server:
host: "0.0.0.0:8200"
protocol: "http"
username: "elastic"
password: "ইলাস্টিক ব্যবহারকারীর পাসওয়ার্ড"
rum:
enabled: true
ilm:
enabled: "auto"
output.elasticsearch:
username: "elastic"
password: "ইলাস্টিক ব্যবহারকারীর পাসওয়ার্ড"
instrumentation:
enabled: true
setup.kibana:
host: "kibana:5601"
এখন, আমি ভাবছি এই সেটিংস কি সঠিক...।
এবং তারপর, opentelemetry-collector এর সেটিংস। অনেক কিছু পরিবর্তন করতে হবে, তাই একবার ব্যাকআপ নেওয়ার পর এডিট করুন।
sudo cp -p /etc/otelcol/config.yaml /etc/otelcol/bak.config.yaml
sudo vim /etc/otelcol/config.yaml
receivers:
hostmetrics:
collection_interval: 10s
scrapers:
cpu:
memory:
disk:
filesystem:
network:
load:
paging:
processors:
batch:
exporters:
otlp:
endpoint: "localhost:8200"
tls:
insecure: true
service:
pipelines:
metrics:
receivers: [hostmetrics]
processors: [batch]
exporters: [otlp]
telemetry:
logs:
level: "info"
metrics:
level: "detailed"
address: "0.0.0.0:8888"
বিশেষ করে যে জিনিসটি আমাকে আটকে দিয়েছিল তা হল insecure: true এখানে, এটি ছাড়া কিছুতেই কাজ করছিল না...।
যাইহোক, init.d এ ডেমন স্ক্রিপ্ট তৈরি করা হয়েছিল কিন্তু এটি সঠিকভাবে কাজ করছিল না, তাই আমি এটি Supervisor দিয়ে সেট আপ করব।
কমান্ডের ডেমন এক্সিকিউশনের জন্য, নিশ্চিত করুন যে আপনি এটি সঠিকভাবে which দিয়ে পরীক্ষা করেছেন এবং সঠিক পথ ব্যবহার করেছেন।
APM-সার্ভার এটি
sudo cat /etc/supervisor/conf.d/apm-server.conf
[program:apm-server]
command=/usr/bin/apm-server -e -c /etc/apm-server/apm-server.yml
autostart=true
autorestart=true
redirect_stderr=true
stderr_logfile=/var/log/apm-server/apm-server.error.log
stdout_logfile=/var/log/apm-server/apm-server.out.log
user=apm-server
OpenTelemetry Collector এটি
sudo cat/supervisnfelcol.conf
[program:otelcol]
commanr/belcol --confic/otelcnfig.yaml
autostart=true
autorestart=true
stderr_logfilr/lelcelcol.err.log
stdout_logfilr/lelcelcol.out.log
user=otel
environment=OTEL_EXPORTER_OTLP_ENDPOINT="httocalhost:4317"
OTEL_EXPORTER_OTLP_ENDPOINT সম্পর্কে
Supervisor দিয়ে প্রয়োগ করুন।
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start apm-server
sudo supervisorctl start otelcol
এছাড়াও, নিশ্চিত করার জন্য elasticsearch এবং kibana পুনরায় চালু করুন।
ব্রাউজারের Kibana থেকে যাচাই করুন

যদি APM সার্ভারের সাথে সঠিকভাবে সংযোগ স্থাপন করা হয়, Observability -> APM থেকে যাচাই করা যাবে।
এছাড়াও Analytics -> Dashboard থেকে এইভাবে সেট আপ করা যেতে পারে।

আমি হোঁচট খেয়েছিলাম, কিন্তু

এখানে TSVB
থেকে

এটি নির্বাচন করলে প্রদর্শিত হবে। এছাড়াও, যদি ডিসপ্লেটি অদ্ভুত হয়, তাহলে চার্টের অংশে স্পর্শ করলে প্রদর্শিত টাইমস্ট্যাম্প স্বয়ংক্রিয়ভাবে পরিবর্তিত হতে পারে, তাই উপরের ডানদিকে

এখান থেকে সময়সীমা পরিবর্তন করে দেখুন।
যাইহোক, আমি এটি নিয়ে খেলতে গিয়ে অর্ধেক দিন চলে গেল।
তাহলে আবার দেখা হবে।
ধন্যবাদ। (পান করতে গিয়ে ফাঁকি দিয়েছিলাম বলে দ্রুত 3টি পোস্ট আপডেট করেছি!)