複数のINTMAX Block Builderノードを管理するためのPrometheus + Grafana監視環境です。
開始する前に、以下が必要です:
| 要件 | バージョン | 備考 |
|---|---|---|
| Docker | 20.10+ | インストールガイド |
| Docker Compose | 2.0+ | Docker Desktopに含まれています |
| Git | 2.0+ | リポジトリのクローン用 |
| INTMAX Block Builder | 稼働中 | 監視前に起動している必要があります |
ネットワーク要件:
- ポート 3000: Grafanaダッシュボード
- ポート 9090: Prometheus(オプション、デバッグ用)
- ポート 9100: node_exporter(各監視対象ノード)
┌─────────────────────────────────────────────────────────────────────┐
│ INTMAX Block Builder 運用 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 1. Block Builder セットアップ │
│ └─ 公式スクリプト (builder.sh) でノードを起動 │
│ └─ 詳細: wiki/About-INTMAX.md │
│ │
│ 2. 運用監視 ← このプロジェクト │
│ └─ 複数ノードの一元管理 │
│ └─ 報酬(ETH/sITX)の可視化 │
│ └─ 異常検知とアラート │
│ │
│ 3. 報酬回収 │
│ └─ 自動回収スクリプト(オプション) │
│ └─ INTMAX CLI による手動回収 │
│ │
└─────────────────────────────────────────────────────────────────────┘
Block Builder起動後、このプロジェクトで監視環境を構築することで:
- 複数ノードの状態を1つのダッシュボードで確認
- ノードの停止を即座に検知
- 蓄積された報酬をグラフで可視化
- ウォレット残高(ガス代)を監視
| 機能 | 説明 |
|---|---|
| マルチノードダッシュボード | 全ノードを1つのGrafanaダッシュボードで表示 |
| リアルタイム監視 | コンテナ状態、稼働時間、ヘルスチェック |
| 報酬追跡 | 保留中のETHおよびsITX報酬を監視 |
| ウォレット残高 | ガス代とトークン残高を追跡 |
| アラート | ノード停止や残高低下の設定可能なアラート |
| Raspberry Pi対応 | 64ビットARMデバイスに対応 |
| 簡単セットアップ | エージェントのワンライナーインストール |
| データ保持 | 90日間の履歴データ(設定可能) |
# リポジトリをクローン
git clone https://github.com/Taiyou/intmax-node-monitoring.git
cd intmax-node-monitoring/server
# 設定テンプレートをコピー
cp .env.example .env
cp prometheus/targets/builders.yml.example prometheus/targets/builders.yml
# builders.ymlを編集してノードIPを追加
nano prometheus/targets/builders.ymlbuilders.ymlの例:
- targets:
- 192.168.1.10:9100 # ノード1
- 192.168.1.11:9100 # ノード2監視スタックを起動:
docker compose up -dアクセスポイント:
| サービス | URL | デフォルト認証情報 |
|---|---|---|
| Grafana | http://localhost:3000 | admin / admin |
| Prometheus | http://localhost:9090 | なし |
各Block Builderノードで実行:
curl -fsSL https://raw.githubusercontent.com/Taiyou/intmax-node-monitoring/main/agent/setup.sh | sudo bash設定ファイルを作成:
sudo nano /etc/default/intmax-builder-metricsNODE_NAME="builder-01"
BUILDER_CONTAINER_NAME="block-builder"
BUILDER_DATA_DIR="/home/pi/intmax2"エージェントの動作を確認:
curl -s localhost:9100/metrics | grep intmax_builder- Grafanaを開く: http://localhost:3000
- Dashboards > INTMAX Builders Overview に移動
- 1〜2分以内にノードが表示されます
| ページ | 説明 |
|---|---|
| INTMAX について | Block Builderの概要、セットアップ、報酬構造 |
| サーバーセットアップ | Prometheus + Grafanaのセットアップ |
| ノードセットアップ | 各ノードへのエージェントセットアップ |
| ページ | 説明 |
|---|---|
| 報酬 | 報酬監視と自動回収 |
| メトリクスリファレンス | 収集されるメトリクスの完全なリストとPromQL例 |
| アップグレード | 監視システムのアップグレード方法 |
| ページ | 説明 |
|---|---|
| セキュリティベストプラクティス | セキュリティ推奨事項とハードニング |
| Raspberry Pi | 対応モデルと注意事項 |
| トラブルシューティング & FAQ | よくある問題、解決策、よくある質問 |
┌─────────────────────────────────────────────────────────────────────────┐
│ 監視サーバー │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Prometheus │ │ Grafana │ │ Exporters │ │
│ │ (port 9090) │←─│ (port 3000) │ │ wallet: 9101 │ │
│ │ │ │ │ │ reward: 9102 │ │
│ └────────┬────────┘ └─────────────────┘ └────────┬────────┘ │
│ │ スクレイプ (15秒) │ │
│ └──────────────────┬──────────────────────┘ │
└──────────────────────────────┼──────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ ノード 1 │ │ ノード 2 │ │ ノード N │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │
│ │Block Builder│ │ │ │Block Builder│ │ │ │Block Builder│ │
│ └─────────────┘ │ │ └─────────────┘ │ │ └─────────────┘ │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │
│ │node_exporter│ │ │ │node_exporter│ │ │ │node_exporter│ │
│ │ (port 9100) │ │ │ │ (port 9100) │ │ │ │ (port 9100) │ │
│ └─────────────┘ │ │ └─────────────┘ │ │ └─────────────┘ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
intmax-node-monitoring/
├── agent/ # ノード側監視エージェント
│ ├── setup.sh # リモートインストールスクリプト
│ ├── install.sh # ローカルインストールスクリプト
│ ├── uninstall.sh # 削除スクリプト
│ └── intmax_builder_metrics.sh # メトリクス収集(cron)
│
├── server/ # Dockerベース監視サーバー
│ ├── docker-compose.yml # サービスオーケストレーション
│ ├── .env.example # 設定テンプレート
│ ├── prometheus/ # Prometheus設定
│ │ ├── prometheus.yml # スクレイプ設定
│ │ ├── rules/ # アラートルール
│ │ └── targets/ # ノード検出
│ ├── wallet-exporter/ # ウォレット残高監視
│ ├── reward-exporter/ # 報酬残高監視
│ └── scripts/ # 自動化スクリプト
│
├── grafana/ # Grafana設定
│ ├── provisioning/ # 自動プロビジョニング
│ └── dashboards/ # ダッシュボードJSONファイル
│
└── wiki/ # ドキュメント
| メトリクス | 説明 | ソース |
|---|---|---|
intmax_builder_up |
ノード可用性(1=稼働中, 0=停止) | Agent |
intmax_builder_container_running |
Dockerコンテナ状態 | Agent |
intmax_builder_uptime_seconds |
コンテナ稼働時間 | Agent |
intmax_builder_data_size_bytes |
データディレクトリサイズ | Agent |
intmax_wallet_eth |
ウォレットETH残高 | Wallet Exporter |
intmax_wallet_sitx |
ウォレットsITX残高 | Wallet Exporter |
intmax_builder_reward_eth |
保留中ETH報酬 | Reward Exporter |
intmax_builder_reward_sitx |
保留中sITX報酬 | Reward Exporter |
最新バージョンへの更新:
# 監視サーバー上で
cd intmax-node-monitoring
git pull origin main
docker compose down
docker compose pull
docker compose up -d
# 各ノード上で(インストールを再実行)
curl -fsSL https://raw.githubusercontent.com/Taiyou/intmax-node-monitoring/main/agent/setup.sh | sudo bashコントリビューションを歓迎します!お気軽にPull Requestを送ってください。
- リポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add some amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - Pull Requestを作成
このプロジェクトはMITライセンスの下でライセンスされています - 詳細はLICENSEファイルを参照してください。
- INTMAX - INTMAXネットワーク
- Prometheus - 監視システム
- Grafana - 可視化プラットフォーム