7.9. バックアップ&リストア

7.9.1. はじめに

Shieldには、重要なシステム構成とログの可用性を維持するためのバックアップと復元のサービスが含まれています。システム障害が発生した場合は、復元サービスを使用して、構成やログ情報を復元できます。

参考

すべてのバックアップファイルはローカルで作成されます。ただし、バックアップファイルをリモートで保存するか、NFSフォルダに保存することを強くお勧めします。マルチマシンShieldシステムでは、これは必須です。

左側のメニューで定期的にバックアップする必要があるShieldの3つのコンポーネントを参照してください。

  • システムファイル
  • サービス設定
  • ログ

7.9.2. サービス設定

Ericom Shieldサービス設定は、ローカルデータベースに保存されます。管理コンソールで保存するたびに、システムはこのデータベースのバックアップを自動的に作成します。さらに、システムは毎晩完全バックアップを作成します。

これらのバックアップのデフォルトの場所は /home/ericom/ericomshield です。

デフォルトの場所を変更する

これらのバックアップの場所を変更するには、custom-management.yamlファイル(〜/ ericomshieldにあります)を編集して、ローカルバックアップパスを更新します。localPath変数(consulBackupセクションの下にあります)のコメントを解除し、指定されたパスに設定します。

localPath:<SPECIFIC_FOLDER_PATH>

変更を保存してShieldをデプロイし、以下を実行します。

./install-shield.sh -p <パスワード>

リモートバックアップ

Shieldは、バックアップファイルのリモートストレージとしてSFTPをサポートしています。次の手順に従って、システムのバックアップ設定を定義します。

この目的のために専用のアカウントを作成します。このアカウントは、バックアップファイルを保存し、Shieldを復元するときにこれらのファイルを取得するために使用されます。

注意

SFTPサーバーがない場合は、Shieldノードの1つ(特定のノード)を使用できますが、これはお勧めしません。

  • SSH アプリケーションを作成する

ルートではないユーザー(例:ericom)として、次のコマンドを実行します。

sudo ssh-keygen

キーを保存するファイル名を入力します(例:./ shield.pem)

パスフレーズ(セキュリティを強化するための証明書のパスワード)を入力します。オプション。パスフレーズがない場合は空のままにします)。

2つのファイルが作成されます。例:shield.pem.pub(公開鍵)およびshield.pem(秘密鍵)。

公開鍵をSFTPサーバー(またはローカルノード)にコピーし、.sshフォルダーの下に配置します

ssh-copy-id -ishield.pem.pub <ユーザー名> @ <SFTP_SERVER_IP>

秘密鍵ファイルに接続できることを確認します(パスワードは不要です)。

ssh -i ./shield.pem <USERNAME> @ <SFTP_SERVER_IP>
  • YAMLファイルを更新する

Rancher Serverマシンで、custom-management.yamlファイル(~/ericomshieldの下にあります)を編集してSFTPアカウント(バックアップパス、SFTPサーバーのIPとユーザー名)を構成し、SSH秘密鍵をコピーします。更新する必要のある設定は「<>」でマークされています):

remotePath:"SFTPStorage:<BACKUP_PATH>"
config:|
  rclone.conf:|
    [SFTPStorage]
    type= sftp
    host= <SFTP_SERVER_IP>
    user= <ユーザー名>
    key_file = /keys/key_file.pem

key:|
  key_file.pem:|
  ---- BEGIN RSA PRIVATE KEY-----
  <PRIVATE_KEY>
  ----END RSA PRIVATE KEY-----

例:

../_images/restore_es2111_01.jpg

変更を保存してShieldを再起動します。

./start.sh

注意

yamlファイルを編集するときは、冗長な文字(空白、タブなど)を避けることが重要です。また、このファイルをバックアップすることをお勧めします。

Shieldサービス設定の復元

システム障害が発生した場合、再起動時に、Shieldは自動的に最新のバックアップからの復元を試みます。

特定のバックアップファイルを使用して手動復元を実行するには、次の手順に従います。

管理コンソールで、[設定]、[設定]の順に移動します。

復元するファイルを選択してアップロードし、[Shieldの復元]オプションをクリックします。

詳細については、管理コンソール|にアクセスしてください。設定|セクションを復元します。

ランチャー証明書のローテーション

ランチャー証明書の有効期限が切れたら、スクリプトを実行して証明書をローテーションする必要があります

cd /home/ericom/ericomshield/
sudo ./rotate_rancher_cert.sh

7.9.3. Shieldログ

システムは、ログデータのスナップショットを1時間ごと、1日ごと、1週間ごとに自動的に取得します。これらのスナップショットは、/var/elk/snapshots にローカルに保存されます。

設定は custom-values-elk.yaml ファイル(/ericomshield にあります)で定義されています。カスタマイズするには、関連する設定を編集します。

../_images/restore_es2111_02.jpg

注意

yamlファイルを編集するときは、冗長な文字(空白、タブなど)を避けることが重要です。また、このファイルをバックアップすることをお勧めします。

デフォルトの場所を変更する

これらのバックアップの場所を変更するには、elasticsearchSnapshotPath設定をローカルにマウントされたNFSフォルダーに更新します。

デフォルトのスケジュールを変更する

バックアップスケジュール設定をカスタマイズするには、fullSnapshotSchedule設定とdailySnapshotSchedule設定をそれぞれ更新します(CRON構文を使用)。

Shieldログの復元

ログデータが失われ、復元する必要がある場合は、[管理者] | [管理者]に移動します。レポート|高度でオープンなKibana。Open Kibana | Dev Tools | Console.以下に詳述する手順に従います-Kibanaコンソールにクエリを入力し、矢印を押します

例:

../_images/restore_es2111_03.jpg

登録されているすべてのリポジトリを一覧表示して、目的のリポジトリが登録されているかどうかを確認します。

GET _cat/repositories

上記の検索結果に目的のリポジトリがないが、ファイルシステムに存在する場合は、次のように登録します。

PUT /_snapshot/<REPOSITORY_NAME>
{
  "type": "fs",
  "settings": {
      "location": "REPOSITORY_NAME",
      "compress": true
  }
}

リポジトリ内のスナップショットを一覧表示します。

GET _cat/snapshots/<REPOSITORY_NAME>

特定のスナップショットを復元します。

POST /_snapshot/<REPOSITORY_NAME>/<SNAPSHOT_NAME>/_restore
{
  "indices": "-.*kibana*",
  "ignore_unavailable": true
}

7.9.4. システムファイル

EricomShieldシステムファイルは次の2つの場所にあります。

  • ~/ericomshield/
  • ~/.kube/config

これらの2つの場所は、定期的にバックアップする必要があります。