1

我可以使用 nxlog(om_dbi) 将数据插入 PostgreSQL。

但我无法使用 nxlog 从 PostgreSQL 中选择数据(或获取数据)。我尝试了很多选择,但没有任何效果。

而在 nxlog 文档中,对于 IM_DBI 模块的描述也只提到了“FIXME”。

文档链接: http: //nxlog.org/documentation/nxlog-community-edition-reference-manual-v20928#im_dbi

请帮我解决这个问题。

日志:

<Input dbiin>
Module im_dbi
SavePos TRUE
SQL SELECT * FROM NEW_TABLE
Driver pgsql
Option host 127.0.0.1
Option username chitta
Option password ''
Option dbname db
</Input>

2014-10-16 14:29:17 WARNING nxlog-ce received a termination request signal, exiting...
2014-10-16 14:29:18 INFO nxlog-ce-2.8.1248 started
2014-10-16 14:29:18 ERROR im_dbi failed to execute SQL statement. ERROR: column "id" does not exist;LINE 1: SELECT * FROM NEW_TABLE WHERE id = 1;

Note:
the module will automatically prepends a "WHERE id > %d" clause.
4

2 回答 2

2

不是答案,但这里有一些帮助。

缺少最重要的指令:SQL Select ID as id, DateOccured as EventTime, data from logtable

来源:https ://www.mail-archive.com/nxlog-ce-users@lists.sourceforge.net/msg00225.html

我目前在同一条船上。我的假设是您的数据未以 nxlog 可以解释的方式格式化。故障排除,如果我能找到解决方案,我会回复您。

还挖掘了 im_dbi 模块的源代码。

https://github.com/lamby/pkg-nxlog-ce/blob/master/src/modules/input/dbi/im_dbi.c

于 2014-11-13T16:34:21.737 回答
0

SoMuchToGrok 的回答是有效的。实际上问题已经有了这个:“错误:列“id”不存在“。该表必须有一个id列,或者您必须使用SELECT x 作为 id以便结果集中有id

于 2014-12-18T19:12:27.387 回答