Skip to content

Edge インストール

ongrid-edge は単一の静的 Go バイナリ + 4 つのプラグインサブプロセスです。 compose も DB もインバウンドポートもありません —— frontier ブローカーへの アウトバウンド TCP 接続 1 本と、プラグインごとに 1 本のデータプレーン宛て アウトバウンド HTTPS 接続だけです。

正規のインストールは manager の /install.sh エンドポイントからの curl-pipe です。 manager はインストーラー、エージェントバイナリ、プラグインバイナリ、 アップグレードフックをすべて同じ /edge/ 静的パスから配信するので、 オペレーターに必要なのは manager に戻るネットワーク経路だけです。

前提条件

ターゲットホストには以下が必要:

  • amd64 または arm64Linux。macOS edge も動作しますが、ログ + ホストメトリクスプラグインが失われます(アップストリームの Grafana / node_exporter は darwin ビルドを提供していません)—— macOS edge dev を参照。
  • サービス監督用の systemd
  • manager へのアウトバウンド TCP/40012(コントロールプレーン)。
  • manager へのアウトバウンド TCP/443(データプレーン —— ログ + トレース push)。
  • curlroot(必要なら sudo 経由で再実行)。
  • 特別な RAM/ディスク下限はなし —— エージェントは RSS 50 MB 未満 + プラグインサブプロセスの使用分です。

UI で edge を作成

  1. manager にサインイン。
  2. Edges → New edge
  3. 名前を付ける(例:prod-web-01)。説明は任意。
  4. Create を押す。

詳細ページに以下が表示されます:

  • Access keyAK_...)—— サーバー生成、edge を識別。
  • Secret keySK_...)—— 一度だけ 表示。失えばローテーション。
  • Install command —— access key、secret key、edge トンネルエンドポイント、 HTTP エンドポイントを埋め込んだ curl ... | sudo bash -s -- のワンライナー。

secret key を今すぐキャプチャ

secret key は一度だけ表示されます。インストール前に失った場合、 DB バックアップを掘るより削除して再作成するほうが安全です。

インストールコマンド

UI からワンライナーをコピー。以下のような形式:

bash
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 経由で再実行します。

ディスクに何が置かれるか

text
/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-edgeadmsystemd-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 で上書き)。正常なインストールは:

text
[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 -f

STATUS=failed または pending の場合、インストーラーは直近 20 行の journal を 表示し、最も可能性の高い修正方法を提示します。手動チェック:

bash
# 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 に unauthorizedaccess/secret key のタイプミスまたは古いキーUI で edge をローテーション、新しいキーでインストーラー再実行。
connection refused on :40012frontier ブローカーが公開されていない / ファイアウォールiptables / クラウド SG を確認、manager で docker compose ps frontier を検証。
Self-check: plugin binary MISSINGプラグインバンドル前の古いインストール、または install.sh を一度も実行していない manager からの curlインストールコマンドを再実行 —— 常にプラグインバイナリを再取得します。
Self-check: journal が読めないongrid-edgesystemd-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 再インストール):

  1. UI で Edges → <your edge> → Rotate keys。古い secret は無効化され、新しいものが表示。
  2. 新しいインストールコマンドをコピー。新しい --access-key / --secret-key を持つ 同じ ワンライナーです。
  3. edge ホストでインストールコマンドを再実行。以下を行います:
    • バイナリ上書き前に動作中の ongrid-edge をクリーンに停止、
    • バイナリを再取得(古い edge は manager のバージョンを取り込み)、
    • プラグインバイナリを再取得、
    • /etc/ongrid-edge/ongrid-edge.env を新しいキーで書き直し(mode 0640、所有者 root:ongrid-edge)、
    • systemctl restart ongrid-edge
    • セルフチェック再実行。

新しい manager への edge アップグレード にも同じフローを使います。 再登録は冪等です。

アンインストール

bash
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.confHTTPS_PROXY を設定:

ini
[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 注意点。