SPO JAPAN GUILD
ステークプール構築

監視ツール設定

プロメテウスはターゲットに指定したメトリックHTTPエンドポイントをスクレイピングし、情報を収集する監視ツールです。オフィシャルドキュメントはこちら
グラファナは収集されたデータを視覚的に表示させるダッシュボードツールです。

1. インストール

prometheusprometheus node exporter をインストールします。
この手順では、Grafana稼働サーバー(リレーサーバー1)prometheusGrafana本体を稼働させ、各サーバーの情報を取得します。

構成図

Grafana稼働サーバー BP リレー2 3000ポート開放 Grafana稼働サーバーのIP指定で9100/12798ポート開放 Grafana稼働サーバーのIP指定で9100/12798ポート開放 ローカルPC Grafana prometheus node-exporter node-exporter

prometheusのインストール

sudo apt update
sudo apt install -y prometheus prometheus-node-exporter
sudo apt update
sudo apt install -y prometheus-node-exporter

grafanaのインストール

sudo apt-get install -y apt-transport-https gnupg
mkdir -p /etc/apt/keyrings
wget -q -O - https://apt.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/grafana.gpg
sudo chmod 644 /etc/apt/keyrings/grafana.gpg
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install -y grafana

サービス有効化とファイアウォールの設定

sudo systemctl enable --now grafana-server.service prometheus.service prometheus-node-exporter.service

Grafanaポートを開放

sudo ufw allow 3000/tcp
sudo ufw reload
sudo systemctl enable --now prometheus-node-exporter.service

PrometheusメトリクスポートをGrafana稼働サーバーのIP限定で開放します。

sudo ufw allow from <Grafana稼働サーバーのIP> to any port 12798
sudo ufw allow from <Grafana稼働サーバーのIP> to any port 9100
sudo ufw reload

2. 設定ファイルの作成

Grafana稼働サーバーにインストールしたPrometheusの設定ファイルを作成します。
ここに記載されたサーバーのデータを取得します。

設定前に置き換える値

  • xxx.xxx.xxx.xxx:BPのパブリックIPアドレス
  • bb.xxx.xxx.xxx:リレー2のパブリックIPアドレス
cat > $HOME/prometheus.yml << EOF
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

scrape_configs:
  # Scrape configuration for system metrics and Cardano node metrics
  - job_name: 'prometheus'

    static_configs:
      - targets: ['localhost:9100']
        labels:
          alias: 'relaynode1'
          type:  'system'
      - targets: ['bb.xxx.xxx.xxx:9100']
        labels:
          alias: 'relaynode2'
          type:  'system'
      - targets: ['xx.xxx.xxx.xxx:9100']
        labels:
          alias: 'block-producing-node'
          type:  'system'
      - targets: ['xxx.xxx.xxx.xxx:12798']
        labels:
          alias: 'block-producing-node'
          type:  'cardano-node'
      - targets: ['localhost:12798']
        labels:
          alias: 'relaynode1'
          type:  'cardano-node'
      - targets: ['bb.xxx.xxx.xxx:12798']
        labels:
          alias: 'relaynode2'
          type:  'cardano-node'
EOF

補足:9100ポートはnode_exporterによるシステムメトリクス、12798ポートはCardanoノードのメトリクス出力ポートです。

prometheus.yml構文チェック

sudo promtool check config $HOME/prometheus.yml

構文エラーがない場合は、以下のように表示されます。

正常時の表示例:
Checking /home/$USER/prometheus.yml
SUCCESS: /home/$USER/prometheus.yml is valid prometheus config file syntax

構文エラーがある場合は、以下のように表示されます。

構文エラー時の表示例:
Checking /home/$USER/prometheus.yml
  FAILED: parsing YAML file /home/$USER/prometheus.yml: yaml: line **: did not find expected '-' indicator

構文エラーだった場合は、$HOME/prometheus.ymlを開き、余分なスペースや記号の有無を確認して修正してください。

sudo nano $HOME/prometheus.yml

修正したら、Ctrl + Oで保存し、Enter。その後Ctrl + Xで閉じます。

prometheus.ymlファイルのバックアップ

sudo cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml.bak

prometheus.ymlファイルの移動

sudo mv $HOME/prometheus.yml /etc/prometheus/prometheus.yml

Grafanaプラグインのインストール

sudo grafana-cli plugins install yesoreyeram-infinity-datasource

GrafanaダッシュボードでJSONデータを取得するため、Infinity datasourceプラグインをインストールします。

サービス再起動

sudo systemctl restart grafana-server.service prometheus.service prometheus-node-exporter.service

サービスが正しく実行されていることを確認します。

sudo systemctl --no-pager status grafana-server.service prometheus.service prometheus-node-exporter.service

以下3つのサービスが緑色の active (running) になっていることを確認してください。

  • grafana-server.service
  • prometheus.service
  • prometheus-node-exporter.service

バージョン確認

GrafanaPrometheusnode_exporterのバージョン確認

grafana-server -v
prometheus --version
prometheus-node-exporter --version

node_exporterのバージョン

prometheus-node-exporter --version

それぞれ以下のような形式で表示されれば正常です。

表示例:
Version 12.4.1
prometheus, version 2.45.3+ds
node_exporter, version 1.7.0

既存の設定ファイルを更新する場合

sudo nano /etc/prometheus/prometheus.yml

修正したら、Ctrl + Oで保存し、Enter。その後Ctrl + Xで閉じます。

prometheus.yml構文チェック

sudo promtool check config /etc/prometheus/prometheus.yml

構文エラーがない場合は、以下のように表示されます。

正常時の表示例:
Checking /etc/prometheus/prometheus.yml
SUCCESS: /etc/prometheus/prometheus.yml is valid prometheus config file syntax

構文エラーがある場合は、以下のように表示されます。

構文エラー時の表示例:
Checking /etc/prometheus/prometheus.yml
  FAILED: parsing YAML file /etc/prometheus/prometheus.yml: yaml: line **: did not find expected '-' indicator

/etc/prometheus/prometheus.ymlを開き、余分なスペースや記号の有無を確認してください。

サービスの再起動

sudo systemctl restart prometheus.service

3. Grafanaダッシュボードの設定

  1. ローカルPCのブラウザから http://Grafana稼働サーバーIPアドレス:3000 を開きます。
  2. ログイン名・PWは admin / admin
  3. パスワードを変更します。
  4. 左ペインの「Connections」→「Data sources」を選択します。
  5. Add data source」を選択し、「Prometheus」を選択します。
  6. Name」は以下を入力します。
Prometheus
  1. URL」は以下を入力します。
http://localhost:9090
  1. 最下部に配置されている「Save & Test」を選択しSuccessfully queried the Prometheus API.と表示されたら再度左ペインから「Data sources」を選択します。
  2. Add new data source」を選択し、検索欄から「Infinity」を検索し、選択します。
  3. 設定内容を変更することなく、「Save & Test」を選択しHealth check successfulと表示されたら問題ありません。
  4. BPサーバーでパネル用JSONファイルをダウンロードします。
curl -s -o $NODE_HOME/SJG_Grafana_Dashboard.json https://raw.githubusercontent.com/akyo3/Extends-SJG-Knowledge/main/SJG_Grafana_Dashboard.json
sed -i \
  -e "s/bech32_id_of_your_pool/$(cat $NODE_HOME/pool.id-bech32)/g" \
  $NODE_HOME/SJG_Grafana_Dashboard.json
  1. BPのcnodeフォルダにあるSJG_Grafana_Dashboard.jsonをローカルPCにダウンロードします。
  2. 左ペインの「Dashboards」→「New」→「Import」を選択します。
  3. Upload dashboard JSON file」を選択し、ダウンロードしたSJG_Grafana_Dashboard.jsonを指定します。
  4. DS_PROMETHEUS」→「Prometheus」を選択し、「DS_YESOREYERAM-INFINITY-DATASOURCE」→「yesoreyeram-infinity-datasource」を選択しImportボタンを選択します。

これで基本的な監視設定は完了です。

以下の追加設定も実施してください。


Last updated on

Cookieの使用について

当サイトでは、ドキュメントの効果測定と利用状況の把握のため、Google Analytics を使用しています。

同意すると、分析用 Cookie が有効になります。