EMQX Backup Sync
このプラグインは、既存のデータバックアップAPIを使用して、プライマリEMQXクラスターからセカンダリEMQXクラスターへ選択されたバックアップデータを定期的に同期します。
セカンダリクラスターはプライマリクラスターに対してバックアップファイルのエクスポートを要求し、そのファイルをダウンロードしてローカルにアップロードし、インポートします。選択された設定ルートはEMQXの既存の設定インポートのセマンティクスに従ってインポートされます。選択されたMnesiaテーブルセットはスナップショットとしてインポートされるため、セカンダリクラスターにのみ存在するそれらのテーブルセット内のレコードは削除されます。選択されていないルートおよびテーブルセットは変更されません。
設定
各セカンダリクラスターにプラグインをインストールして起動してください。プライマリクラスターにはこのプラグインをインストールする必要はなく、セカンダリクラスターからアクセス可能なDashboardのデータバックアップAPIが必要です。
primary {
base_url = "https://primary.example.com:18083/api/v5"
api_key = "sync-key"
api_secret = "sync-secret"
ssl {
enable = true
server_name_indication = "primary.example.com"
verify = "verify_peer"
cacertfile = "/etc/emqx/certs/primary-ca.pem"
certfile = ""
keyfile = ""
}
}
sync {
interval = "5m"
root_keys = [
"connectors",
"actions",
"sources",
"rule_engine",
"listeners",
"schema_registry"
]
table_sets = [
"banned",
"builtin_authn",
"builtin_authz"
]
timeout = "30s"
retain_remote_backup = false
retain_backup_after_import = true
}設定されたAPIキーはプライマリクラスターのデータバックアップエンドポイントへのアクセスが許可されている必要があります。primary.api_keyおよびprimary.api_secretは直接設定するか、file://パス(例:file:///etc/emqx/backup-sync-api-key)として指定できます。
サポートされているsync.root_keysの値はconnectors、actions、sources、rule_engine、listeners、schema_registry、authentication、およびauthorizationです。
ルールは一般的にコネクター、アクション、ソース、およびスキーマレジストリのオブジェクトに依存します。rule_engineを依存関係なしで同期すると、インポートに失敗したり、実行時動作が不完全になる可能性があります。セカンダリクラスターに存在しない限り、それらの依存ルートをsync.root_keysに含めてください。
デフォルトでは、同期にはbanned、builtin_authn、builtin_authzのテーブルセットも含まれます。これらの選択されたテーブルセットはセカンダリクラスター上で置き換えられます。設定のみの同期が必要な場合はsync.table_sets = []に設定してください。サポートされているsync.table_setsの値はbanned、builtin_authn、builtin_authz、builtin_retainer、psk、およびmtです。プライマリのデータバックアップAPIはAPIキーで呼び出された場合、dashboard_usersやapi_keysは含まれません。
CLI
セカンダリノード上で以下のコマンドを使用して、ローカルの同期ワーカーを確認できます。
emqx ctl backup_sync statusこのコマンドはローカルノード、ヘルス状態、ワーカー状態、選択されたコアノード、次回の同期予定、および機密情報を含まない同期設定を表示します。
ダウンロード
各EMQXリリースのtarball:
| EMQXバージョン | プラグインバージョン | パッケージ |
|---|---|---|
| 6.1.3 | 0.1.0 | emqx_backup_sync-0.1.0.tar.gz |