プラットフォーム
Ongrid はプラットフォームの話が大きく異なる 2 つのバイナリを出荷します。
ongrid(クラウド manager)は Linux + Docker ワークロードです。コンテナ内、nginx 後ろ、MySQL 下で住むことを意図しています。ファーストクラスの Windows または macOS サーバービルドはありません。ongrid-edge(edge エージェント)は観測したいすべてのホストで動く単一の静的バイナリです。箱から出した状態で 4 つのターゲットにクロスコンパイルされます:Linux の amd64 / arm64 と macOS の amd64 / arm64。本番グレードのインストールは Linux + systemd のみ。macOS ターゲットは開発者が反復作業中にラップトップ上でエージェントを走らせられるよう存在します。
サポートマトリクス
| コンポーネント | linux/amd64 | linux/arm64 | darwin/amd64 | darwin/arm64 | Windows |
|---|---|---|---|---|---|
ongrid(manager イメージ) | yes | ビルドターゲットとしてテスト済み | no | no | no |
ongrid-edge(バイナリ、監督付き) | yes | yes | 開発のみ、手動 | 開発のみ、手動 | no |
promtail プラグイン(ログ) | yes | yes | no(上流ギャップ) | no(上流ギャップ) | no |
node_exporter プラグイン(ホストメトリクス) | yes | yes | no(上流ギャップ) | no(上流ギャップ) | no |
process-exporter プラグイン(proc メトリクス) | yes | yes | no(上流ギャップ) | no(上流ギャップ) | no |
otelcol-contrib プラグイン(トレース) | yes | yes | no(バンドルなし) | no(バンドルなし) | no |
4 つの edge クロスコンパイルターゲットは Makefile から直接来ます:
build-edge-linux-amd64
build-edge-linux-arm64
build-edge-darwin-amd64
build-edge-darwin-arm64make build-edge-all は 4 つすべてを走らせ、make package はすべてのターゲット + Linux のみのプラグインバイナリをバンドルするリリースタールボールを生成します。
なぜ Windows / BSD edge がないか?
エージェント自体は純粋な Go でクリーンにコンパイルされるはずです。ギャップはプラグインバンドルです。promtail、node_exporter、process-exporter、otelcol-contrib すべてが上流リリースで Linux のみのアーティファクトを出荷します。それら 4 つなしでは Logs / Monitor / Traces パネルはエージェントが接続された後も空のままです。半動作のインストールを出荷するより、隠れて無効化されたプラットフォームを抱えないほうがマシです。
強い Windows または FreeBSD ユースケースがあれば、github.com/ongridio/ongrid で issue を開いてください —— プラガブルなバンドラーは ADR-015 で追跡されています。
クラウド側要件
Docker Engine 24+ と Docker Compose v2 を動かせる場所ならどこでも manager をホストします。以下でテスト:
- Ubuntu 22.04 LTS、24.04 LTS
- Debian 12(bookworm)
- RHEL 9、Rocky Linux 9、AlmaLinux 9
メモリ最低:4 GB。ディスク最低:20 GB(ほとんどが Prometheus + Loki 保存期間、Linux(サーバー) 参照)。
Edge 側要件
公式 curl-pipe インストーラ(deploy/install/edge/install.sh)は明示的に Linux のみを処理します:
if [[ "$OS" != "linux" ]]; then
log_error "only linux is supported by this installer; got: $OS"
exit 1
fiそのインストーラは systemd unit(/etc/systemd/system/ongrid-edge.service)を配置し、システムユーザー ongrid-edge を作成し、Restart=always で systemd 経由でエージェントを監督します。macOS ホストは開発用に手でバイナリを動かせます —— macOS(edge dev) を参照 —— が、監督されたサービス、journald ログソース、プラグインバンドルは得られません。
正しいページの選び方
- manager をインストールする? → Linux(サーバー)
- 実 Linux ホストに edge エージェントをインストールする? → Linux(edge)
- 開発用に Mac でエージェントを走らせる? → macOS(edge dev)
- Kubernetes 上にすべてをデプロイする? → Kubernetes
- エアギャップまたはプライベートコンテナレジストリ? → エアギャップ / オンプレ
バージョニングポリシー
manager とエージェントは単一の VERSION ファイル(/Users/.../ongrid/VERSION)を共有し、1 つのタールボールとしてリリースされます。manager より古い edge エージェントは動き続けます:すべてのトンネル RPC はバージョン付きで、manager は未知の返信フィールドをゼロ値として扱います。manager より 新しい edge エージェントはサポートされません —— manager を先にアップグレードしてください。
ステージドスワップ-then-ロールバックモデル(ADR-024)は アップグレード を参照。