Wazuh Manager 备份与恢复:client.keys、global.db 和共享配置怎么备份?
2026/9/14 8:47:26 网站建设 项目流程

Wazuh Manager 备份与恢复:client.keys、global.db 和共享配置怎么备份?

【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh

当你需要升级 Wazuh Manager、做重大配置变更,或者单纯为灾难恢复留后路时,必须先备份 Manager 上的关键数据。Wazuh 官方备份文档(backup-restore)列出的核心对象包括:/var/wazuh-manager/etc/client.keys(所有已注册 agent 的加密密钥)、/var/wazuh-manager/var/db/global.db(agent 注册信息、元数据与分组归属),以及/var/wazuh-manager/etc/shared/下的各 agent 组共享配置目录。三者缺任何一个,恢复后 agent 都可能出现身份丢失或配置漂移。

本文只覆盖 Linux 上的 Wazuh Manager 单机场景:如何备份这三项数据、如何校验备份完整性、以及如何恢复。集群部署的差异在文末单独说明。

备份前确认三件事

按文档的 Pre-Backup Checklist,创建备份前确认:

  1. 备份目标位置有足够磁盘空间;
  2. 备份目标位置可访问;
  3. 你对备份命令有相应权限(命令均使用sudo)。

文档还指出可以「考虑停止 Manager 以获得一致性的备份(可选)」:如果追求完全一致的数据快照,使用后文的「停止服务备份」变体;否则推荐在生产环境使用不停机方式。

备份哪些文件

数据路径作用
主配置/var/wazuh-manager/etc/wazuh-manager.confManager 主配置文件
内部选项/var/wazuh-manager/etc/wazuh-manager-internal-options.conf内部配置覆盖项
Agent 密钥/var/wazuh-manager/etc/client.keys注册 agent 的加密密钥,agent 通信的关键
证书/var/wazuh-manager/etc/certs/Manager 证书、私钥与根 CA
全局数据库/var/wazuh-manager/var/db/global.dbagent 注册信息、分组分配数据
共享配置/var/wazuh-manager/etc/shared/各组的agent.conf与分发给 agent 的共享文件

其中共享配置目录按 agent 组组织,每个组一个子目录,例如/var/wazuh-manager/etc/shared/default/agent.conf(所有 agent 默认属于default组)。这些文件会被 Manager 自动分发给组内 agent,详见 agent 组文档与集中配置文档。

日志目录/var/wazuh-manager/logs/属于可选备份项:文件可能很大,文档建议按保留策略处理,本文不将其纳入主备份。

主路径:不停机备份

以下命令来自官方文档的 Option 1(推荐用于生产环境,备份期间 Manager 继续运行)。命令中的BACKUP_DIR指向备份目标目录,示例使用/backup/下的时间戳目录,如果你的备份位置不同,替换整个BACKUP_DIR赋值即可,前提是文档中要求的「备份目标可访问、空间足够」。

# 创建带时间戳的备份目录 BACKUP_DIR="/backup/wazuh-manager-$(date +%Y%m%d-%H%M%S)" sudo mkdir -p $BACKUP_DIR # 备份整个 etc/ 目录(包含 wazuh-manager.conf、client.keys、certs/ 以及 shared/ 各组的 agent.conf) sudo tar -czf $BACKUP_DIR/wazuh-etc.tar.gz -C /var/wazuh-manager etc/ # 备份 global.db:用 SQLite 官方在线备份保证一致性 sudo mkdir -p $BACKUP_DIR/db sudo sqlite3 /var/wazuh-manager/var/db/global.db ".backup '$BACKUP_DIR/db/global.db'" # 将备份目录归属设为当前用户 sudo chown -R $(whoami):$(whoami) $BACKUP_DIR

这条主路径一次性覆盖了标题中的三类对象:client.keysshared/都在etc/内被 tar 打包,global.db则单独用sqlite3 .backup在线复制(文档特意要求用 SQLite backup 而非直接拷文件,以保证一致性)。

如果这次备份是为了关键操作(文档称为 critical operations),改用 Option 2:先sudo systemctl stop wazuh-manager,把etc/var/db/global.db一起 tar 打包,再sudo systemctl start wazuh-manager并用sudo systemctl status wazuh-manager确认服务恢复。这种方式停机时间稍长,但数据完全一致。

只备份单项时的替代命令

如果只想单独备份某一项,文档给出了三个独立命令:

# 仅配置(含 client.keys 与 shared/) sudo tar -czf wazuh-manager-config-$(date +%Y%m%d).tar.gz -C /var/wazuh-manager etc/ # 仅 agent keys sudo cp /var/wazuh-manager/etc/client.keys wazuh-client-keys-$(date +%Y%m%d).backup # 仅全局数据库 sudo sqlite3 /var/wazuh-manager/var/db/global.db ".backup 'wazuh-global-db-$(date +%Y%m%d).db'"

验证备份完整性

备份完成后,用以下命令校验,不要跳过:

# 校验 tar 归档可读 tar -tzf $BACKUP_DIR/wazuh-etc.tar.gz > /dev/null && echo "Configuration backup verified" || echo "Backup verification failed" # 校验数据库完整性 sudo sqlite3 $BACKUP_DIR/db/global.db "PRAGMA integrity_check" && echo "Database backup verified" || echo "Database verification failed" # 查看备份大小 du -sh $BACKUP_DIR # 列出备份内容 tar -tzf $BACKUP_DIR/wazuh-etc.tar.gz | head -20

判断标准:tar 校验输出Configuration backup verifiedPRAGMA integrity_check返回通过、tar -tzf列表里能看到etc/client.keysetc/shared/各组目录,说明这份备份可用。

如果希望例行化,文档提供了自动化脚本示例(写入/usr/local/bin/wazuh-manager-backup.sh,配合 cron 每天 2 点执行),脚本执行备份后自动做上面同样的两项校验并记录到/var/log/wazuh-backup.log。注意脚本内置保留策略:会删除 30 天前的旧备份目录(find ... -mtime +30 -exec rm -rf),部署前确认该删除行为符合你的保留要求。

恢复:从备份还原 Manager

恢复前的文档检查清单:确认备份文件完整性、确认 Wazuh 版本兼容、确认磁盘空间、安排服务停机、通知相关方。

完整恢复(六步)

第 1 步,停止服务:

sudo systemctl stop wazuh-manager

第 2 步,先把现有数据移开留档(文档标注为可选但推荐):

sudo mv /var/wazuh-manager/etc /var/wazuh-manager/etc.old.$(date +%Y%m%d) sudo mv /var/wazuh-manager/var/db/global.db /var/wazuh-manager/var/db/global.db.old.$(date +%Y%m%d)

第 3 步,从备份还原:

# 还原配置(含 client.keys、certs/、shared/ 共享配置) sudo tar -xzf $BACKUP_DIR/wazuh-etc.tar.gz -C /var/wazuh-manager # 还原全局数据库 sudo cp $BACKUP_DIR/db/global.db /var/wazuh-manager/var/db/global.db

第 4 步,设置权限。这一步直接影响 Manager 能否启动、agent 能否连接:

sudo chown -R wazuh-manager:wazuh-manager /var/wazuh-manager/etc sudo chown -R wazuh-manager:wazuh-manager /var/wazuh-manager/var/db sudo chmod 640 /var/wazuh-manager/etc/client.keys sudo chmod 500 /var/wazuh-manager/etc/certs sudo chmod 400 /var/wazuh-manager/etc/certs/*

第 5 步,启动服务:

sudo systemctl start wazuh-manager

第 6 步,验证恢复结果:

# 服务状态 sudo systemctl status wazuh-manager # 数据库完整性 sudo sqlite3 /var/wazuh-manager/var/db/global.db "PRAGMA integrity_check" # 观察日志有无报错 sudo tail -f /var/wazuh-manager/logs/wazuh-manager.log

单项恢复

如果只损坏了某一项,文档给出了对应命令,模式都是「停服务 → 还原 → 修属主和权限 → 启服务」:

# 仅恢复 agent keys sudo systemctl stop wazuh-manager sudo cp wazuh-client-keys-YYYYMMDD.backup /var/wazuh-manager/etc/client.keys sudo chown wazuh-manager:wazuh-manager /var/wazuh-manager/etc/client.keys sudo chmod 640 /var/wazuh-manager/etc/client.keys sudo systemctl start wazuh-manager # 仅恢复全局数据库 sudo systemctl stop wazuh-manager sudo cp wazuh-global-db-YYYYMMDD.db /var/wazuh-manager/var/db/global.db sudo chown wazuh-manager:wazuh-manager /var/wazuh-manager/var/db/global.db sudo chmod 640 /var/wazuh-manager/var/db/global.db sudo systemctl start wazuh-manager

命令中的YYYYMMDD按你实际备份文件的日期替换(文件名由备份命令中的$(date +%Y%m%d)生成)。共享配置shared/目录随etc/整体还原,因此「仅恢复配置」的单项命令会同时还原各组的agent.conf

恢复后常见问题排查

文档针对 Manager 侧给出三个具体问题的处理路径:

Manager 启动不了。先修正属主和 client.keys 权限(sudo chown -R wazuh-manager:wazuh-manager /var/wazuh-managersudo chmod 640 /var/wazuh-manager/etc/client.keys),再看日志:sudo tail -100 /var/wazuh-manager/logs/wazuh-manager.log

恢复后 agent 连不上。按文档顺序核对:

# 确认 client.keys 已还原 sudo ls -l /var/wazuh-manager/etc/client.keys # 确认 global.db 中仍有 agent 记录 sudo sqlite3 /var/wazuh-manager/var/db/global.db "SELECT id, name FROM agent" # 重启 Manager 并跟踪 remoted 日志 sudo systemctl restart wazuh-manager sudo tail -f /var/wazuh-manager/logs/wazuh-manager.log | grep remoted

这条路径正是验证「client.keys 与 global.db 是否配对一致」的手段:keys 文件和agent表必须来自同一次备份。

恢复后数据库损坏。PRAGMA integrity_check确认,若损坏则停服务、重新从备份覆盖global.db并修正属主后启动。

集群部署的边界说明

集群场景下备份范围不同:master 节点包含权威的 agent 注册与分组数据,需要按本文完整流程备份(etc/全量 +global.db);worker 节点只需备份配置(wazuh-manager.confwazuh-manager-internal-options.conf),因为global.db和共享文件由 master 同步。各节点备份分开存放,并记录集群拓扑与节点角色。恢复 master 后,用sudo /var/wazuh-manager/bin/cluster_control -l-i查看集群状态,用cluster.log确认同步。

相关文档

  • 完整备份恢复指南:docs/ref/backup-restore.md
  • agent 组与共享目录结构:docs/ref/modules/agent-management/agent-groups.md
  • 集中配置(agent.conf):docs/ref/modules/agent-management/centralized-configuration.md
  • 配置文件总览:docs/ref/configuration/README.md

【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询