تخطي إلى المحتوى الرئيسي

مراقبة ⁦Geth⁩ باستخدام ⁦InfluxDB⁩ و⁦Grafana⁩

العملاء
العقد
متوسط
ماريو هافيل
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"

الآن يمكنك استخدام عميل influx للدخول إلى صدفة InfluxDB (opens in a new tab) باستخدام هذا المستخدم.

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. انتبه إلى METRICS AND STATS OPTIONS في geth --help. يمكن العثور على خيارات متعددة هناك، في هذه الحالة نريد من Geth دفع البيانات إلى InfluxDB. يحدد الإعداد الأساسي نقطة النهاية (endpoint) التي يمكن الوصول إلى InfluxDB من خلالها والمصادقة لقاعدة البيانات.

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

يمكن إلحاق هذه العلامات (flags) بأمر بدء تشغيل العميل أو حفظها في ملف التكوين.

يمكنك التحقق من أن 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. الآن تحتاج إلى إنشاء لوحة معلومات (dashboard) ستقوم بتفسيرها وعرضها. يتم تشفير خصائص لوحات المعلومات في ملفات JSON التي يمكن لأي شخص إنشاؤها واستيرادها بسهولة. في الشريط الأيسر، انقر على "Create and Import" (إنشاء واستيراد).

Grafana dashboard screenshot for Geth monitoring (panel 7)

للحصول على لوحة معلومات مراقبة Geth، انسخ مُعرّف (ID) لوحة المعلومات هذه (opens in a new tab) والصقه في "Import page" (صفحة الاستيراد) في Grafana. بعد حفظ لوحة المعلومات، يجب أن تبدو هكذا:

Grafana dashboard screenshot for Geth monitoring (panel 8)

يمكنك تعديل لوحات المعلومات الخاصة بك. يمكن تحرير كل لوحة أو نقلها أو إزالتها أو إضافتها. يمكنك تغيير تكويناتك. الأمر متروك لك! لمعرفة المزيد حول كيفية عمل لوحات المعلومات، راجع وثائق Grafana (opens in a new tab). قد تكون مهتمًا أيضًا بـ التنبيهات (Alerting) (opens in a new tab). يتيح لك هذا إعداد إشعارات التنبيه عندما تصل المقاييس إلى قيم معينة. يتم دعم قنوات اتصال مختلفة.