Wazuh无法解码CloudWatch导入的MariaDB日志但logtest可识别
问题描述
我尝试将CloudWatch中的日志推送至Wazuh,已在ossec.conf中添加以下aws-s3 wodle配置并重启服务,但日志未显示在Wazuh Dashboard(Kibana)中:
<wodle name="aws-s3"> <disabled>no</disabled> <interval>2m</interval> <run_on_start>yes</run_on_start> <service type="cloudwatchlogs"> <aws_profile>default</aws_profile> <aws_log_groups>/aws/rds/instance/my-oltp-rds/audit</aws_log_groups> <regions>ap-south-1</regions> <only_logs_after>2023-APR-25</only_logs_after> </service> </wodle>
开启调试并启用logall_json后,archive.json中的日志条目显示未被解码器识别:
{ "timestamp": "2023-04-25T20:34:32.597+0530", "agent": { "id": "000", "name": "REW-Wazuh" }, "manager": { "name": "REW-Wazuh" }, "id": "1682435072.11369736", "full_log": "DEBUG: The message is \"20230425 15:03:08,ip-10-30-0-100,karmendra,10.1.12.11,15514,681264,QUERY,REWOLTPDB,'/* ApplicationName=DataGrip 2022.3.2 */ select * from pg_transactions_thin',0,,\"", "decoder": {}, "location": "aws-s3" }
但使用wazuh-logtest测试同一条日志内容时,却能成功匹配mariadb-syslog解码器并触发规则:
20230425 15:03:08,ip-10-30-0-100,karmendra,10.1.12.11,15514,681264,QUERY,REWOLTPDB,'/* ApplicationName=DataGrip 2022.3.2 */ select * from pg_transactions_thin',0,, **Phase 1: Completed pre-decoding. full event: '20230425 15:03:08,ip-10-30-0-100,karmendra,10.1.12.11,15514,681264,QUERY,REWOLTPDB,'/* ApplicationName=DataGrip 2022.3.2 */ select * from pg_transactions_thin',0,,' **Phase 2: Completed decoding. name: 'mariadb-syslog' mariadb.action: 'QUERY' mariadb.host: '10.1.12.11' mariadb.ip: '10-30-0-100' mariadb.resource: 'REWOLTPDB,'/* ApplicationName=DataGrip 2022.3.2 */ select * from pg_transactions_thin',0,,' mariadb.username: 'karmendra' **Phase 3: Completed filtering (rules). id: '88100' level: '0' description: 'MariaDB group messages.' groups: '['mariadb']' firedtimes: '1' mail: 'False'
问题原因
从archive.json的日志内容可以看出,aws-s3 wodle抓取到的日志被额外包裹了DEBUG: The message is "..."前缀,而wazuh-logtest测试的是原始无前缀的日志内容。Wazuh的mariadb-syslog解码器无法识别带该前缀的日志,导致解析失败,最终日志无法在Kibana中展示。
解决步骤
- 关闭aws-s3 wodle的调试模式:打开Wazuh管理器的
/var/ossec/etc/ossec.conf配置文件,检查aws-s3 wodle段是否存在<debug>yes</debug>配置,若有则改为<debug>no</debug>;若没有则确保不添加该调试配置。 - 重启Wazuh管理器:执行命令
systemctl restart wazuh-manager使配置生效。 - 验证日志格式:等待2分钟(配置的抓取间隔)后,查看
archive.json中的日志条目,确认full_log字段为原始的RDS审计日志内容,不再带有DEBUG:前缀。 - 确认解析正常:使用
wazuh-logtest重新测试抓取到的日志,确认解码器能正常匹配,之后日志会被正确解析并显示在Wazuh Dashboard中。
内容的提问来源于stack exchange,提问作者karmendra
相关产品推荐
相关产品推荐

