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

InfluxDBとGrafanaを使ったGethの監視

クライアント
ノード
中級
Mario Havel
2021年1月13日
8 分の読書

このチュートリアルでは、Gethノードの監視を設定することで、パフォーマンスをよりよく理解し、潜在的な問題を特定する方法を説明します。

前提条件

監視スタック

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

また、InfluxDBとGrafanaで事前設定されたオプションであるGeth Prometheus Exporteropens 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)でログインしてください。 プロンプトが表示されたら、デフォルトのパスワードを変更して保存してください。

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の「Import page」に貼り付けてください。 ダッシュボードを保存すると、次のようになります:

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

最終更新: 2025年8月25日

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