コンテンツにスキップ

9.監視ツールセットアップ

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

1.インストール

概要

「prometheus」および「prometheus node exporter」をインストールします。 この手順では、リレーノード1でprometheusとGrafana本体を稼働させ、リレーノード1およびブロックプロデューサーノードの情報を取得する手順です。

prometheusインストール

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

grafanaインストール

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" > grafana.list
sudo mv grafana.list /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install -y grafana

サービスを有効にして、自動的に開始されるように設定します。

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

2.定義ファイルの作成

注意

targets:の「xxx.xxx.xxx」は、BPのパブリックIP(静的)アドレスに置き換えて下さい

cat > 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'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label job=<job_name> to any timeseries scraped from this config.
  - job_name: 'prometheus'

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

prometheus.ymlを移動します

sudo mv prometheus.yml /etc/prometheus/prometheus.yml

サービスを起動します。

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

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

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

3.ノード設定ファイルの更新

cd $NODE_HOME
sed -i ${NODE_CONFIG}-config.json -e "s/127.0.0.1/0.0.0.0/g"

ファイアウォールの設定を確認してください

ファイアウォールを設定している場合は、ブロックプロデューサーノードにて9100番と12798番ポートをリレーノード1のパブリックIP(静的)指定で開放して下さい。
リレーノード1では、Grafana用に3000番ポートを開放してください。

ノードを再起動し設定ファイルを有効化します。

sudo systemctl reload-or-restart cardano-node

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

  1. ローカルブラウザから http://<リレーノードIPアドレス>:3000 を開きます。 事前に3000番ポートを開いておく必要があります。
  2. ログイン名・PWは次のとおりです。 admin / admin
  3. パスワードを変更します。
  4. 左メニューの歯車アイコンから データソースを追加します。
  5. 「Add data source」をクリックし、「Prometheus」を選択します。
  6. 名前は Prometheusとしてください。
  7. URLhttp://localhost:9090に設定します。
  8. Save & Testをクリックします。
  9. こちらのJSONファイルを開き、内容を全選択してコピーします。
  10. 左メニューからCreate + iconを選択 > Importをクリックします。
  11. 9でコピーした内容を「Import via panel json」に貼り付けます
  12. Loadボタンをクリックし、次の画面で*Importボタンをクリックします。

Grafana system health dashboard

🎊おめでとうございます🎊

これで基本的な監視設定は完了です。必要に応じてノード異常時の通知設定を行ってください