Wazuh 4.3本地数据库文件位置及重启后变更丢失问题咨询
Wazuh 4.3 Syscheck 本地数据库位置与变更丢失解决方案
一、Syscheck 本地数据库位置
Wazuh 4.x 弃用了OSSEC时期的纯文本数据库,改用SQLite数据库存储文件完整性监控状态,默认路径如下:
- Linux/Unix 系统:
/var/ossec/queue/db/目录下的agent-<agent_id>.db文件(<agent_id>为对应Agent的ID,例如agent-001.db) - Windows 系统:
C:\Program Files (x86)\ossec-agent\queue\db\下的同命名文件
可通过以下命令查看Agent ID:
/var/ossec/bin/agent_control -i
二、避免重启后变更丢失的机制搭建
针对「每日5点执行syscheck,次日2点重启导致当日5点到次日2点的变更丢失」场景,可通过以下方式解决:
1. 调整Syscheck扫描策略
无需仅依赖每日一次全量扫描,可配置实时监控+增量扫描覆盖空白期,同时保留每日全量扫描作为校验。修改Agent端ossec.conf配置:
<syscheck> <!-- 每日5点全量扫描 --> <frequency>86400</frequency> <scan_time>05:00</scan_time> <!-- Linux/Unix 启用实时监控 --> <directories realtime="yes">/path/to/monitor</directories> <!-- Windows 启用实时监控 --> <directories check_all="yes" realtime="yes" recursion_level="2">C:\path\to\monitor</directories> <!-- 重启后立即执行一次扫描,覆盖重启前的变更 --> <scan_on_start>yes</scan_on_start> <!-- 每30分钟执行一次增量扫描,补充实时监控遗漏 --> <frequency>1800</frequency> </syscheck>
2. 定时备份Syscheck数据库
在系统重启前自动备份SQLite数据库,重启后可通过备份文件对比变更:
- Linux/Unix 添加crontab定时任务,每日1:30(重启前30分钟)执行备份:
30 1 * * * cp /var/ossec/queue/db/agent-<agent_id>.db /var/ossec/queue/db/agent-<agent_id>.db.bak
- 重启后使用
syscheck_test工具对比备份数据与当前系统状态:
/var/ossec/bin/syscheck_test -c /var/ossec/etc/ossec.conf -d /var/ossec/queue/db/agent-<agent_id>.db.bak
3. 启用Manager端状态同步
确保Agent与Manager保持通信,Manager会存储Agent的Syscheck状态快照。重启Agent后,Agent会自动从Manager拉取最近状态,避免变更记录丢失。Agent配置需包含:
<client> <server> <address>MANAGER_IP</address> <port>1514</port> <protocol>tcp</protocol> </server> </client>
内容的提问来源于stack exchange,提问作者Pedro Pereira
相关产品推荐
相关产品推荐

