Edge インストール
ongrid-edge は単一の静的 Go バイナリ + 4 つのプラグインサブプロセスです。 compose も DB もインバウンドポートもありません —— frontier ブローカーへの アウトバウンド TCP 接続 1 本と、プラグインごとに 1 本のデータプレーン宛て アウトバウンド HTTPS 接続だけです。
正規のインストールは manager の /install.sh エンドポイントからの curl-pipe です。 manager はインストーラー、エージェントバイナリ、プラグインバイナリ、 アップグレードフックをすべて同じ /edge/ 静的パスから配信するので、 オペレーターに必要なのは manager に戻るネットワーク経路だけです。
前提条件
ターゲットホストには以下が必要:
amd64またはarm64の Linux。macOS edge も動作しますが、ログ + ホストメトリクスプラグインが失われます(アップストリームの Grafana / node_exporter は darwin ビルドを提供していません)—— macOS edge dev を参照。- サービス監督用の systemd。
- manager へのアウトバウンド TCP/40012(コントロールプレーン)。
- manager へのアウトバウンド TCP/443(データプレーン —— ログ + トレース push)。
- curl と root(必要なら sudo 経由で再実行)。
- 特別な RAM/ディスク下限はなし —— エージェントは RSS 50 MB 未満 + プラグインサブプロセスの使用分です。
UI で edge を作成
- manager にサインイン。
- Edges → New edge。
- 名前を付ける(例:
prod-web-01)。説明は任意。 - Create を押す。
詳細ページに以下が表示されます:
- Access key(
AK_...)—— サーバー生成、edge を識別。 - Secret key(
SK_...)—— 一度だけ 表示。失えばローテーション。 - Install command —— access key、secret key、edge トンネルエンドポイント、 HTTP エンドポイントを埋め込んだ
curl ... | sudo bash -s --のワンライナー。
secret key を今すぐキャプチャ
secret key は一度だけ表示されます。インストール前に失った場合、 DB バックアップを掘るより削除して再作成するほうが安全です。
インストールコマンド
UI からワンライナーをコピー。以下のような形式:
curl -k -sSL https://203.0.113.10/install.sh | sudo bash -s -- \
--access-key=AK_xxxxxxxxxxxxxxxx \
--secret-key=SK_yyyyyyyyyyyyyyyy \
--server-edge-addr=203.0.113.10:40012 \
--server-http-addr=203.0.113.10:443フラグの意味:
--access-key/--secret-key—— geminio トンネル用の認証情報。 エージェントがダイヤル時に提示し、frontier が manager の edgeauth に検証を依頼。--server-edge-addr—— コントロールプレーン用host:port。上書きしていなければ常に40012。--server-http-addr—— データプレーンとバイナリダウンロード 用host:port。 ブラウザが UI に到達するのに使う host:port と同じ。host単独も可(デフォルト 443)。 インストーラーはバイナリをhttps://<http-addr>/edge/ongrid-edge-<os>-<arch>からダウンロードします。
実行します。事前に sudo していなければ、インストーラーが sudo 経由で再実行します。
ディスクに何が置かれるか
/usr/local/bin/
└── ongrid-edge # the agent binary (mode 0755)
/usr/local/lib/ongrid-edge/
├── apply-pending-upgrade.sh # ADR-024 ExecStartPre hook (mode 0755)
├── promtail # plugin: logs (Loki push)
├── otelcol-contrib # plugin: traces (OTLP push)
├── node_exporter # plugin: hostmetrics
└── process_exporter # plugin: procmetrics
/etc/ongrid-edge/
└── ongrid-edge.env # access/secret keys (mode 0640,
# owner root:ongrid-edge)
/etc/systemd/system/
└── ongrid-edge.service # systemd unit
/var/lib/ongrid-edge/ # StateDirectory, created at start
└── .upgrade/ # staged bundles, markers
/var/log/ongrid-edge/ # plugin stdout/stderr capture
# (the agent itself logs to journal)インストーラーはさらに:
ongrid-edgeシステムユーザーを作成(home なし、shell なし)。ongrid-edgeをadmとsystemd-journalに追加し、ログプラグイン (promtail)が/var/log/*(root:adm 640)と journal を読めるように。systemctl daemon-reload && systemctl enable --now ongrid-edge。
検証
インストーラーはエージェントが journal に agent: registered with cloud を記録するのを 最大 20 秒 待ちます (ONGRID_INSTALL_WAIT=N で上書き)。正常なインストールは:
[INFO] waiting for tunnel handshake (up to 20s)...
--- self-check ---
[OK] plugin binary present: promtail
[OK] plugin binary present: otelcol-contrib
[OK] plugin binary present: node_exporter
[OK] plugin binary present: process_exporter
[OK] journald readable by ongrid-edge
[OK] data-plane host 203.0.113.10:443 reachable (TCP)
[OK] self-check passed
[OK] installed: ongrid-edge v0.7.159
[OK] connected: edge_id=42 via 203.0.113.10:40012
[OK] tail logs: journalctl -u ongrid-edge -fSTATUS=failed または pending の場合、インストーラーは直近 20 行の journal を 表示し、最も可能性の高い修正方法を提示します。手動チェック:
# Service state
sudo systemctl status ongrid-edge
# Live journal
sudo journalctl -u ongrid-edge -f
# Test the data plane reachability
curl -kI https://203.0.113.10/
# Test the control plane reachability
nc -vz 203.0.113.10 40012最もありがちな失敗と意味:
| 症状 | 推定原因 | 修正 |
|---|---|---|
journal に unauthorized | access/secret key のタイプミスまたは古いキー | UI で edge をローテーション、新しいキーでインストーラー再実行。 |
connection refused on :40012 | frontier ブローカーが公開されていない / ファイアウォール | iptables / クラウド SG を確認、manager で docker compose ps frontier を検証。 |
Self-check: plugin binary MISSING | プラグインバンドル前の古いインストール、または install.sh を一度も実行していない manager からの curl | インストールコマンドを再実行 —— 常にプラグインバイナリを再取得します。 |
| Self-check: journal が読めない | ongrid-edge が systemd-journal グループにない | sudo usermod -aG systemd-journal ongrid-edge && sudo systemctl restart ongrid-edge。 |
| edge は "online" だが Logs/Traces が空 | manager 上の ONGRID_PUBLIC_URL が内部 IP を指している | manager で /opt/ongrid/.env を編集、compose を再起動。 |
UI で確認
- Edges —— edge 名の隣に緑のドット。カードに hostname、kernel、distro、 合計 RAM、ディスク、エージェントバージョンが表示。
- Monitor —— CPU / メモリ / ディスク / ロードパネルが約 30 秒以内に埋まる。
- Logs —— edge を選択、
/var/log/*と journald テールを表示。 - Topology —— ホストノードが表示。
再登録 / キーローテーション
secret key をローテーションする必要がある場合(漏洩、紛失、manager 再インストール):
- UI で Edges → <your edge> → Rotate keys。古い secret は無効化され、新しいものが表示。
- 新しいインストールコマンドをコピー。新しい
--access-key/--secret-keyを持つ 同じ ワンライナーです。 - edge ホストでインストールコマンドを再実行。以下を行います:
- バイナリ上書き前に動作中の
ongrid-edgeをクリーンに停止、 - バイナリを再取得(古い edge は manager のバージョンを取り込み)、
- プラグインバイナリを再取得、
/etc/ongrid-edge/ongrid-edge.envを新しいキーで書き直し(mode 0640、所有者root:ongrid-edge)、systemctl restart ongrid-edge、- セルフチェック再実行。
- バイナリ上書き前に動作中の
新しい manager への edge アップグレード にも同じフローを使います。 再登録は冪等です。
アンインストール
curl -k -sSL https://203.0.113.10/install.sh | sudo bash -s -- --uninstallサービスを停止 + 無効化し、バイナリ、systemd ユニット、env ディレクトリを削除。 /var/log/ongrid-edge は保持 されるので、フォレンジック用に プラグインログファイルを残せます。
企業プロキシ / ファイアウォール背後で
2 つのアウトバウンド宛先:
<manager-host>:40012—— geminio トンネル、平文 TCP(manager の frontier に TLS が設定されていれば回線上で TLS。OSS ビルドは nginx 後ろの geminio で平文 TCP)。<manager-host>:443—— プラグインデータプレーン + バイナリダウンロード + アップグレードバンドル取得用 HTTPS。
エグレスが http プロキシ経由なら、 /etc/systemd/system/ongrid-edge.service.d/proxy.conf に HTTPS_PROXY を設定:
[Service]
Environment=HTTPS_PROXY=http://proxy.corp:3128
Environment=NO_PROXY=127.0.0.1,localhostそして systemctl daemon-reload && systemctl restart ongrid-edge。
次は
- 初回起動チェックリスト —— いくつかの edge が チェックインしたら、オペレーター側のセットアップ(アラート、チャネル、ナレッジベース)。
- アップグレード —— オペレーターのコマンドで
ongrid-edgeが自身を更新する仕組み(UI からのワンボタンアップグレード)。 - Platforms / Linux edge —— distro マトリクス、 動作確認済み distro、SELinux/AppArmor 注意点。