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

InfluxDBとGrafanaを使ったGethの監視

クライアント
ノード
中級
Mario Havel
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ベースのディストリビューションの場合は、以下のようになります:

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 --helpMETRICS 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)でログインしてください。 プロンプトが表示されたら、デフォルトのパスワードを変更して保存してください。

Geth モニタリング用の Grafana ダッシュボードのスクリーンショット (パネル 1)

Grafanaのホームページに転送されます。 まず、ソースデータを設定します。 左のバーにある設定アイコンをクリックし、「Data sources」を選択します。

Geth モニタリング用の Grafana ダッシュボードのスクリーンショット (パネル 2)

まだデータソースは作成されていません。「Add data source」をクリックして定義します。

Geth モニタリング用の Grafana ダッシュボードのスクリーンショット (パネル 3)

この設定では、「InfluxDB」を選択して続行します。

Geth モニタリング用の Grafana ダッシュボードのスクリーンショット (パネル 4)

同じマシンでツールを実行している場合、データソースの設定は非常に簡単です。 データベースにアクセスするには、InfluxDBのアドレスと詳細を設定する必要があります。 以下の画像を参照してください。

すべてが完了し、InfluxDBにアクセスできるようになったら、「Save and test」をクリックし、確認のポップアップが表示されるのを待ちます。

GrafanaがInfluxDBからデータを読み取るように設定されました。 次に、データを解釈して表示するダッシュボードを作成する必要があります。 ダッシュボードのプロパティはJSONファイルにエンコードされており、誰でも簡単に作成してインポートできます。 左のバーで、「Create and Import」をクリックしてください。

Gethのモニタリングダッシュボードには、このダッシュボード (opens in a new tab)のIDをコピーして、Grafanaの「Import page」に貼り付けてください。 ダッシュボードを保存すると、次のようになります:

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

最終更新: 2026年2月26日

このチュートリアルは役に立ちましたか?