首页 > 解决方案 > 无法分析 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 服务器以从代理进行分析时,这将自动添加。

MySQL 错误日志的 ossec-logtest 结果

ossec-logtest 在将 MySQL log: 添加到开头后工作正常,但它们不能实时工作。

谁能帮我解决这个问题。

标签: mysqlerror-logossecwazuh

解决方案


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

检查代理

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

  • MySql 配置(日志级别和输出文件)允许记录那种事件。看这里

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

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

检查经理

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

推荐阅读