Моніторинг Geth за допомогою InfluxDB та Grafana
Цей посібник допоможе вам налаштувати моніторинг для вашого вузла Geth, щоб ви могли краще розуміти його продуктивність та виявляти потенційні проблеми.
Передумови
- У вас вже має бути запущений екземпляр Geth.
- Більшість кроків та прикладів призначені для середовища Linux, тому базові знання термінала будуть корисними.
- Перегляньте цей відеоогляд набору метрик Geth: Моніторинг інфраструктури Етеріуму від Péter Szilágyi (opens in a new tab).
Стек моніторингу
Клієнт Етеріуму збирає багато даних, які можна читати у вигляді хронологічної бази даних. Щоб полегшити моніторинг, ви можете передавати їх у програмне забезпечення для візуалізації даних. Доступно кілька варіантів:
- Prometheus (opens in a new tab) (модель pull)
- InfluxDB (opens in a new tab) (модель push)
- 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.
Базове налаштування визначає кінцеву точку, де доступний InfluxDB, та автентифікацію для бази даних.
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. Спочатку налаштуйте джерело даних. Натисніть на значок конфігурації на лівій панелі та виберіть «Data sources» (Джерела даних).
Ще не створено жодного джерела даних, натисніть «Add data source» (Додати джерело даних), щоб визначити його.
Для цього налаштування виберіть «InfluxDB» та продовжуйте.
Конфігурація джерела даних досить проста, якщо ви запускаєте інструменти на одній машині. Вам потрібно вказати адресу InfluxDB та дані для доступу до бази даних. Зверніться до зображення нижче.
Якщо все заповнено і InfluxDB доступний, натисніть «Save and test» (Зберегти та перевірити) і дочекайтеся появи підтвердження.
Тепер Grafana налаштована на читання даних з InfluxDB. Далі вам потрібно створити інформаційну панель (дашборд), яка буде їх інтерпретувати та відображати. Властивості інформаційних панелей кодуються у файлах JSON, які може створити будь-хто і легко імпортувати. На лівій панелі натисніть «Create and Import» (Створити та імпортувати).
Для інформаційної панелі моніторингу Geth скопіюйте ID цієї панелі (opens in a new tab) та вставте його на сторінці «Import» (Імпорт) у Grafana. Після збереження інформаційна панель має виглядати так:
Ви можете змінювати свої інформаційні панелі. Кожну панель можна редагувати, переміщувати, видаляти або додавати. Ви можете змінювати свої конфігурації. Все залежить від вас! Щоб дізнатися більше про те, як працюють інформаційні панелі, зверніться до документації Grafana (opens in a new tab). Вас також може зацікавити Сповіщення (Alerting) (opens in a new tab). Це дозволяє налаштувати сповіщення, коли метрики досягають певних значень. Підтримуються різні канали зв'язку.







