【问题标题】:Parse SQL logs using NXLog, Logstash使用 NXLog、Logstash 解析 SQL 日志
【发布时间】:2026-02-10 08:55:01
【问题描述】:

我想使用NXLog将数据库中的所有日志[表创建、行插入、数据删除、数据选择等]发送到Logstash,我已经阅读了以下博客,

  1. Nxlog im_dbi is not working
  2. https://groups.google.com/forum/#!topic/logstash-users/t71AkNH5Ojc

但是哪些接缝不适合我。任何帮助都将是非常可观的。

我的 nxlog 配置文件:

<Input sql-logs>        
    Module im_dbi
    SavePos TRUE
    Driver mysql
    Option dbname MySample
</Input>

<Output sql-out>
    Module      om_tcp
    Host        192.168.1.14
    Port        5222
</Output>

在logstash配置文件中,

tcp {
    port => 5222
    type => "sqllogs"
}

然后我创建了新表,插入了许多记录,但在 kibana 中看不到日志。

【问题讨论】:

  • 我建议您在问题中添加一些您尝试使用的配置文件示例,以及您遇到的任何错误,或者什么不起作用
  • @Rumbles 我已经更新了
  • 请发布您的整个 logstash 配置文件。您发布的输入节的片段不会帮助我们调试输出。
  • 有关更多调试建议,请查看此页面:svops.com/blog/?p=26
  • 我已经在SO 中提出了关于此的新问题,请查看@Rumbles

标签: logging elasticsearch logstash kibana nxlog


【解决方案1】:

您应该首先调试 sql-logs 输入是否真的有效。 我认为不会。检查 nxlog.log 有一个 SQL 指令指定了 select 语句:

<Input sql-logs>        
    Module im_dbi
    SavePos TRUE
    Driver mysql
    Option dbname MySample
    SQL SELECT a, b as id FROM tbl
</Input>

请注意,id 列必须存在于结果集中。

【讨论】: