跳转至主要内容

使用 InfluxDB 和 Grafana 监测 Geth

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

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

前提条件

监测堆栈

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

还可以选择 Geth Prometheus Exporter(opens in a new tab),它是一个用 InfluxDB 和 Grafana 预先配置的选项。 你可以使用 docker 和适用于树莓派 4 的 Ethbian 操作系统(opens in a new tab) 轻松设置它。

在本教程中,我们将设置你的 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 版本。 下面是通过资源库安装 发行版本的示例安装步骤:

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”。

现在尚未创建任何数据源,点击“Add data source”定义一个数据源。

在本次设置中,请选择“InfluxDB”并继续操作。

如果你在同台一机器上运行工具,数据源配置就相当简单。 你需要设置 InfluxDB 地址和详细信息,以便访问数据库。 请参考下图。

如果所有操作都已完成并且 InfluxDB 可以访问,请点击“Save and test”,等待确认信息弹出。

现在 Grafana 设置为读取 InfluxDB 中的数据。 此时,你需要创建一个解释和显示数据的仪表板。 仪表板属性是在 JSON 文件中编码的,可让任何人创建并轻松导入。 在左侧栏上,点击“Create and Import”。

要创建 Geth 监测仪表板,复制此仪表板(opens in a new tab)的 ID 并粘贴到 Grafana 的“导入页面”中。 保存仪表板后,其外观应该如下所示:

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

本教程对你有帮助吗?