メインコンテンツへスキップ

InfluxDBとGrafanaを使用したGethの監視

クライアント
ノード
中級
マリオ・ハベル
2021年1月13日
8 分で読めます

このチュートリアルは、Gethノードの監視を設定し、そのパフォーマンスをよりよく理解し、潜在的な問題を特定するのに役立ちます。

前提条件

監視スタック

イーサリアムクライアントは、時系列データベースの形式で読み取ることができる大量のデータを収集します。監視を容易にするために、これをデータ視覚化ソフトウェアに入力できます。利用可能なオプションは複数あります:

また、InfluxDBとGrafanaが事前設定されたオプションであるGeth Prometheus Exporter (opens in a new tab)もあります。

このチュートリアルでは、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でメトリクス収集を有効にする必要があります。geth --helpMETRICS AND STATS OPTIONSに注意してください。そこには複数のオプションがありますが、この場合は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 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からデータを読み取るように設定されました。次に、データを解釈して表示するダッシュボードを作成する必要があります。ダッシュボードのプロパティはJSONファイルにエンコードされており、誰でも作成して簡単にインポートできます。左側のバーで、「Create and Import」をクリックします。

Grafana dashboard screenshot for Geth monitoring (panel 7)

Geth監視ダッシュボードの場合は、このダッシュボード (opens in a new tab)のIDをコピーし、Grafanaの「Import page」に貼り付けます。ダッシュボードを保存すると、次のようになります:

Grafana dashboard screenshot for Geth monitoring (panel 8)

ダッシュボードは変更できます。各パネルは編集、移動、削除、追加が可能です。設定を変更することもできます。すべてあなた次第です!ダッシュボードの仕組みについて詳しくは、Grafanaのドキュメント (opens in a new tab)を参照してください。 アラート (opens in a new tab)にも興味があるかもしれません。これにより、メトリクスが特定の値に達したときのアラート通知を設定できます。さまざまな通信チャネルがサポートされています。