跳转至主要内容

使用 InfluxDB 和 Grafana 监控 Geth

客户端
节点
中级
Mario Havel
2021年1月13日
7 分钟阅读

本教程将帮助你为你的 Geth 节点设置监控,以便更好地了解其性能并发现潜在问题。

前提条件

监控堆栈

以太坊客户端收集大量数据,可以通过时序数据库读取这些数据。 为了便于监控,你可以将数据输入数据可视化软件。 有多种可用选项:

还可以选择 Geth Prometheus Exporteropens in a new tab,它是一个用 InfluxDB 和 Grafana 预先配置的选项。

在本教程中,我们将设置你的 Geth 客户端,将数据推送到 InfluxDB 以创建数据库,并设置 Grafana 来对数据进行图形可视化。 手动操作将帮助你更好地理解这一过程,你可以加以改动,并在不同的环境中部署。

设置 InfluxDB

首先,我们来下载并安装 InfluxDB。 可以在 Influxdata 发布页面opens in a new tab找到各种下载选项。 选择适合你环境的版本。 你也可以从资源库opens in a new tab安装。 例如,在基于 Debian 的发行版中:

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

成功安装 InfluxDB 后,请确保它正在后台运行。 默认情况下,可以通过 localhost:8086 访问它。 在使用 influx 客户端之前,你必须创建一个拥有管理员权限的新用户。 此用户将用于高级别管理,例如创建数据库和用户。

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

现在你可以用此用户通过 influx 客户端进入 InfluxDB 命令行opens in a new tab

1influx -username 'username' -password 'password'

在其命令行中与 InfluxDB 直接通信,你可以为 geth 指标创建数据库和用户。

1create database geth
2create user geth with password choosepassword

使用以下命令验证创建的条目:

1show databases
2show users

退出 InfluxDB 命令行。

1exit

InfluxDB 正在运行,并已配置为存储来自 Geth 的指标。

准备 Geth

设置好数据库后,我们需要在 Geth 中启用指标收集功能。 请注意 geth --help 中的 METRICS AND STATS OPTIONS。 那里有多个选项,在本例中,我们希望 Geth 将数据推送到 InfluxDB。 基本设置指定了 InfluxDB 的可访问端点以及数据库的身份验证信息。

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

这些标志可以附加到启动客户端的命令中,或保存到配置文件中。

你可以通过在数据库中列出指标等方式,验证 Geth 是否正在成功推送数据。 在 InfluxDB 命令行中:

1use geth
2show measurements

设置 Grafana

下一步是安装 Grafana,它将以图形方式解译数据。 请遵照 Grafana 文档中适用于你的环境的安装流程进行操作。 若无其他特殊需求,请确保安装 OSS 版本。 使用资源库为 Debian 发行版安装的示例步骤:

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

Grafana 运行后,应该可以通过 localhost:3000 访问。 使用你偏好的浏览器访问此路径,然后使用默认凭据(用户:admin,密码:admin)登录。 出现提示时,请更改默认密码并保存。

你将被重定向到 Grafana 主页。 首先,设置你的数据源。 点击左侧栏的配置图标,然后选择“Data sources”。

目前还没有创建任何数据源,点击“添加数据源”来定义一个。

对于此设置,选择“InfluxDB”并继续。

如果你在同一台机器上运行这些工具,数据源配置会非常简单。 你需要设置 InfluxDB 地址和用于访问数据库的详细信息。 请参考下图。

如果一切都已完成且 InfluxDB 可访问,请点击“保存并测试”,然后等待确认信息弹出。

Grafana 现已设置为从 InfluxDB 读取数据。 现在,你需要创建一个仪表板来解译和显示数据。 仪表板属性在 JSON 文件中编码,任何人都可以创建并轻松导入。 在左侧栏上,点击“创建和导入”。

对于 Geth 监控仪表板,请复制此仪表板opens in a new tab的 ID,并将其粘贴到 Grafana 的“导入页面”中。 保存仪表板后,它应如下所示:

你可以修改你的仪表板。 每个面板都可以编辑、移动、移除或添加。 你可以更改你的配置。 一切由你决定! 要详细了解仪表板的工作原理,请参阅 Grafana 的文档opens in a new tab。 你可能还对警报opens in a new tab感兴趣。 这使你可以设置当指标达到特定值时的警报通知。 支持多种通信渠道。

页面最后更新: 2025年8月25日

本教程对你有帮助吗?