OSSEC Agent捕获按小时生成的Exchange日志的解决方案咨询
OSSEC/Wazuh采集Exchange按小时分片日志解决方案
以下为适配生产环境要求的可落地方案,可根据实际场景选择:
方案1:预配置24条固定localfile规则(最稳定,优先推荐)
该方案仅极小范围使用通配符,不会触发高负载下的Wazuh崩溃问题,操作如下:
- 预先配置24条
<localfile>规则,固定小时位为00到23的数字,仅在结尾分片序号位使用通配符,示例配置如下:
<localfile> <log_format>syslog</log_format> <location>C:\Program Files\microsoft\exchange server\v15\logging\httpproxy\Ecp\HttpProxy_%Y%m%d00-*.log</location> </localfile> <localfile> <log_format>syslog</log_format> <location>C:\Program Files\microsoft\exchange server\v15\logging\httpproxy\Ecp\HttpProxy_%Y%m%d01-*.log</location> </localfile> <!-- 依次类推,补全02到23点共24条规则 -->
- 搭配Windows计划任务,每天凌晨0点0分执行一次Agent重启命令
net stop wazuh && net start wazuh,自动将%Y%m%d解析为当天日期,覆盖全天所有小时的日志。 - 优势:单条规则最多匹配同一小时的2个分片日志,文件遍历压力极低,完全规避高负载崩溃问题,日志采集连续性损失极小,稳定性最高。
方案2:每小时轻量重启Agent(无配置修改成本,次选)
无需修改现有采集规则,直接在Windows服务器添加计划任务,每小时第1分钟执行Agent重启命令即可触发strftime规则重新解析,匹配新生成的小时日志:net stop wazuh && net start wazuh
- 优势:配置成本最低,直接复用现有单条采集规则即可实现全时段采集。
- 注意:仅会产生秒级的采集中断,对日志连续性要求不高的生产场景可直接使用。
方案3:软链接指向最新日志(无采集中断,适合日志连续性要求高的场景)
通过定时脚本生成固定名称的软链接指向最新的小时日志,OSSEC直接采集固定文件名的日志即可:
- 编写PowerShell定时脚本,每小时执行一次,逻辑参考如下:
$logPath = "C:\Program Files\microsoft\exchange server\v15\logging\httpproxy\Ecp\" # 匹配当前小时最新的所有分片日志,也可按需求调整为匹配全天日志 $targetLogs = Get-ChildItem $logPath -Filter "HttpProxy_$((Get-Date).ToString('yyyyMMddHH'))-*.log" $index = 1 foreach ($log in $targetLogs) { New-Item -Path "${logPath}\HttpProxy_current_$index.log" -ItemType SymbolicLink -Value $log.FullName -Force $index++ }
- OSSEC侧配置对应固定文件名的采集规则即可。
- 优势:无需重启Agent,无采集中断。
- 注意:需额外维护脚本执行状态,避免软链接更新不及时导致漏采。
所有方案上线前建议先在测试环境验证采集完整性、资源占用情况,确认符合要求后再部署到生产环境。
内容的提问来源于stack exchange,提问作者Lyle Reger
相关产品推荐
相关产品推荐

