別サーバーへの移設
バックアップはこのデプロイを復元するものです。設定バンドルが運ぶのは構成です。別サーバーへの 移設はその 3 つめ —— 同じ暗号鍵、同じアカウント、同じアラート履歴を持ったまま、デプロイ丸ごとを別の サーバーへ移します。
画面は 1 つです。Settings ▸ 別サーバーへ移設。移設先のアドレスとログインするアカウントを入れて ボタンを押し、進んでいくのを見ているだけです。移設先に Docker が無ければ、Yagra が入れます。
運ぶもの: 暗号鍵(と、その隣にあるセッション鍵・バス鍵)、PostgreSQL のデータベース全体 ——
ノード・グループ・しきい値・ユーザー・アラート履歴・監査ログ ——、メトリクス、このデプロイの .env
と構成ファイル(独自の上書きも含む)。チェックを付ければイベントとフローのストア、そして 3 つの
Yagra イメージも運びます。
運ばないもの: Redis(データベースの写しです)、ディスク上の証明書ファイル(初回起動時に データベースの行から作り直します)、core のログファイル、ポーラーの送信バッファ。
版は移設元が動かしていたものに固定されます。上げるのは移設後に、移設先自身の Settings ▸ Upgrade で。
移設先に必要なもの
Section titled “移設先に必要なもの”- x86-64 の Linux。
sh・tar・SSH デーモンがあること。 - Docker と
docker composev2 プラグイン —— またはsudoとインターネット接続。公式スクリプトで Yagra が導入します。 - Yagra のものが何も無いこと。 復元は、すでに Yagra のボリュームやコンテナを持つホストを拒みます。 既存のデプロイを置き換えることも、混ぜることも、アップグレードすることもありません。
書庫にはすべての秘密が入る
Section titled “書庫にはすべての秘密が入る”作られるファイルには、暗号鍵とデータベースが一緒に入ります。手にした人は、そのデプロイが保存している SNMP コミュニティ・機器のログイン情報・API トークン・通知の秘密を、すべて読めます。暗号鍵そのものと 同じ扱いにしてください。移設が終わったら、経由したすべての機械から削除します。
そのため、この画面は Admin 限定で、3 つの権限を同時に要求します。書庫の作成もダウンロードも監査ログに 残ります。
移設先への SSH を Yagra に渡したくない場合は、代わりに書庫を作るを押してダウンロードし、移設先で 3 つのコマンドを打ちます。
mkdir yagra && cd yagratar -xzf ~/yagra-relocation-<stamp>.tar.gz./yagra-relocate.shこの経路では Docker は先に入っている必要があります。それ以外は同じで、成功を宣言する前にスクリプトが 行う確認も同じです。
成功したあと
Section titled “成功したあと”機構が代わりに決められないことが 5 つあります。
- 移設元を止める。 止めるまでは 2 つのデプロイが同じ機器をポーリングし、通知も 2 回来ます。
- 拠点を繋ぎ直す。 分散ポーラーを運用していてアドレスが変わったなら必要です。ここが一番長い 工程です —— 下を見てください。
- OIDC のリダイレクト URI は移設元を指したままです。
- 機器が syslog・SNMP トラップ・フローを移設元へ送っているなら、向け直します。
- ファイアウォールが移設先で動いているなら、WebUI のポートを開けます。
WebUI の証明書は移設元のものなので、差し替えるまでブラウザが警告します。
拠点を繋ぎ直す
Section titled “拠点を繋ぎ直す”遠隔ポーラーは移設に付いてきません。どのポーラーも、自分の .env に書かれたアドレスへ dial し、
自分の手元にある証明書を pin します。移設先はそのどちらも変えられません —— 拠点への唯一の通り道は
バスであり、アドレスが変われば、まさにそれが動かなくなるからです。
移設先の WebUI で、この順に行います。
-
Settings ▸ Pollers ▸ 証明書を再発行… に新しいアドレスを入れます。証明書は保存されますが、 バスは古いものを配り続けます(証明書を読むのは起動時だけです)。画面もそう表示します。
-
反映させる。 受け入れを停止を押し、続けて遠隔ポーラーを受け入れるを新しいアドレスで 押します。そのたびに監視が短く止まります。ここを飛ばすと、拠点にはバスが配っていない証明書が渡り、 接続に失敗したまま中央からは何も見えません。
-
各拠点の配布物を発行し直す。 新しいアドレスを指定します。いま使われている証明書と新しい トークンが入り、前のトークンは無効になります。
-
拠点で入れる。 すでにあるディレクトリの上に展開し、ポーラーを作り直します。
Terminal window cd ~/yagra-pollertar -xzf ~/yagra-poller-<id>.tar.gz -C ~/yagra-pollerdocker compose -p yagra-poller -f docker-compose.poller.yml up -d --force-recreate
各ポーラーは 10 秒ほどで戻ってきます。online はポーリングしていることではありません。 Settings ▸ Pollers の Working set と Results の列が動くまで見てください。
失敗したとき
Section titled “失敗したとき”切り戻しはありませんし、必要でもありません。移設は、移設先に動くデプロイを作るか、何も作らないかの どちらかです —— 拒否したときは何も書いておらず、途中で失敗したときは作られたものを消してやり直すだけ です。
秘密がちゃんと渡ったかは、いつでも移設先に聞けます。
docker compose -p yagra -f docker-compose.deploy.yml exec -T core yagra-core verify-secretsJSON が 1 行返ります。封印済みの秘密がいくつあり、そのうちいくつを手元の鍵で開けたか。この 2 つに差が あることは、復元が唯一隠しうる失敗です —— それ以外は次のポーリングまで健全に見えてしまうからです。