مراقبة Geth باستخدام InfluxDB وGrafana
سيساعدك هذا البرنامج التعليمي على إعداد المراقبة لعقدة Geth الخاصة بك حتى تتمكن من فهم أدائها بشكل أفضل وتحديد المشكلات المحتملة.
المتطلبات الأساسية
- يجب أن تكون تقوم بالفعل بتشغيل مثيل لـ Geth.
- معظم الخطوات والأمثلة مخصصة لبيئة Linux، وستكون المعرفة الأساسية بالطرفية (terminal) مفيدة.
- تحقق من نظرة عامة بالفيديو على مجموعة مقاييس Geth: مراقبة البنية التحتية لإيثيريوم بواسطة Péter Szilágyi (opens in a new tab).
حزمة المراقبة
يجمع عميل إيثيريوم الكثير من البيانات التي يمكن قراءتها في شكل قاعدة بيانات زمنية. لجعل المراقبة أسهل، يمكنك إدخال هذه البيانات في برنامج تصور البيانات. هناك خيارات متعددة متاحة:
- Prometheus (opens in a new tab) (نموذج السحب)
- InfluxDB (opens in a new tab) (نموذج الدفع)
- Telegraf (opens in a new tab)
- Grafana (opens in a new tab)
- Datadog (opens in a new tab)
- Chronograf (opens in a new tab)
هناك أيضًا 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. أولاً، قم بإعداد بيانات المصدر الخاصة بك. انقر على أيقونة التكوين في الشريط الأيسر وحدد "Data sources" (مصادر البيانات).
لا توجد أي مصادر بيانات تم إنشاؤها بعد، انقر على "Add data source" (إضافة مصدر بيانات) لتحديد واحد.
لهذا الإعداد، حدد "InfluxDB" وتابع.
تكوين مصدر البيانات واضح ومباشر إذا كنت تقوم بتشغيل الأدوات على نفس الجهاز. تحتاج إلى تعيين عنوان InfluxDB والتفاصيل للوصول إلى قاعدة البيانات. راجع الصورة أدناه.
إذا اكتمل كل شيء وكان InfluxDB قابلاً للوصول، انقر على "Save and test" (حفظ واختبار) وانتظر ظهور التأكيد.
تم إعداد Grafana الآن لقراءة البيانات من InfluxDB. الآن تحتاج إلى إنشاء لوحة معلومات (dashboard) ستقوم بتفسيرها وعرضها. يتم تشفير خصائص لوحات المعلومات في ملفات JSON التي يمكن لأي شخص إنشاؤها واستيرادها بسهولة. في الشريط الأيسر، انقر على "Create and Import" (إنشاء واستيراد).
للحصول على لوحة معلومات مراقبة Geth، انسخ مُعرّف (ID) لوحة المعلومات هذه (opens in a new tab) والصقه في "Import page" (صفحة الاستيراد) في Grafana. بعد حفظ لوحة المعلومات، يجب أن تبدو هكذا:
يمكنك تعديل لوحات المعلومات الخاصة بك. يمكن تحرير كل لوحة أو نقلها أو إزالتها أو إضافتها. يمكنك تغيير تكويناتك. الأمر متروك لك! لمعرفة المزيد حول كيفية عمل لوحات المعلومات، راجع وثائق Grafana (opens in a new tab). قد تكون مهتمًا أيضًا بـ التنبيهات (Alerting) (opens in a new tab). يتيح لك هذا إعداد إشعارات التنبيه عندما تصل المقاييس إلى قيم معينة. يتم دعم قنوات اتصال مختلفة.







