EMQX 备份同步(Backup Sync)
该插件通过现有的数据备份(Data Backup)API,定期将选定的备份数据从主 EMQX 集群同步到备用 EMQX 集群。
备用集群调用主集群导出备份文件,然后下载该文件、在本地上传并导入。选定的配置根(configuration roots)按 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。
规则通常依赖连接器(connectors)、动作(actions)、数据源(sources)和 schema registry 对象。如果同步 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
在备用节点上使用以下命令查看本地同步 worker:
emqx ctl backup_sync status该命令会打印本地节点、健康状态、worker 状态、选定的 core 节点、下一次计划同步时间以及非敏感的同步配置。
下载
各 EMQX 版本对应的插件安装包:
| EMQX 版本 | 插件版本 | 安装包 |
|---|---|---|
| 6.1.3 | 0.1.0 | emqx_backup_sync-0.1.0.tar.gz |