无法在OSSEC中分析MySQL错误日志

问题描述

我正在尝试分析OSSEC代理上生成MysqL错误日志,并使用OSSEC服务器发出警报。

下面是在代理端添加到/var/ossec/etc/ossec.conf的代码块,以从代理读取MysqL错误日志:

  <localfile>
    <log_format>MysqL_log</log_format>
    <location>/var/log/MysqL/error.log</location>
  </localfile>

这样做之后,我重新启动了代理和服务器,但是无法测试在代理端生成的任何错误日志,例如:

2020-09-15T04:09:24.164859Z 12 [Note] Access denied for user 'root'@'localhost' (using password: YES)

根据注意事项下的文档https://ossec-docs.readthedocs.io/en/latest/docs/programs/ossec-logtest.html,我们需要将MysqL log:添加到为ossec-logtest生成的日志中。

当我们将这些日志发送到OSSEC服务器以从代理进行分析时,它将自动添加

ossec-logtest result for MySQL error log

在开始添加MysqL log:之后,ossec-logtest可以正常工作,但是它们不能实时工作。

任何人都可以帮助我解决这个问题。

解决方法

ossec-logtest触发警报的事实意味着mysql解码器和规则运行正常

检查代理

  • MySql正在运行。 systemctl status mysqld.service

  • MySql配置(日志级别和输出文件)允许记录此类事件。参见here

如果该值大于1,则中止的连接将写入到 错误日志,以及新连接尝试的拒绝访问错误

  • MySql正在有效地记录“访问被拒绝”:grep "Access denied" /var/log/mysql/error.log
  • Ossec及其进程运行正常:/var/ossec/bin/ossec-control status

检查Manager

    /var/ossec/etc/ossec.conf中的
  • log_alert_level字段小于或等于9(在ossec-logtest中显示的日志级别)