1

我有一个返回两列的 postgres 函数

结果,数据(int),(文本)

如果我从 postgres 运行此命令,它会返回正确的值,如果我从 linux 命令行运行它,如下所示:

/usr/local/nagios/libexec/check_postgres.pl -H $HOSTADDRESS$ -u postgres -db monitordb --action=custom_query --critical=1 --query="SELECT * from ops_get_status();"

它还返回正确的值 - 至少看起来是这样,而且我没有收到任何错误。

但是当我将它插入 commands.cfg 并通过 Nagios 前端观看它时,它会返回 (null)。

日志文件不包含任何用于调试的详细信息。那么,我能做些什么来解决这个问题 - 非常感谢任何帮助

结果

4

3 回答 3

2

我刚遇到同样的问题。从查询末尾删除分号使其正常工作。

邮件档案参考这里:

https://mail.endcrypt.com/pipermail/check_postgres/2011-February/000726.html

于 2011-11-14T17:24:22.737 回答
0

在黑暗中拍摄,但尝试用单引号将查询括起来。* 可能会以某种方式得到扩展。

于 2011-03-22T08:40:12.987 回答
0

有点晚了,但我在自定义查询中也遇到了类似的错误,但事实证明你需要返回一个名为“结果”的列,它必须是一个整数。

例如:

check_postgres.pl --action=connection --db=db-name --host=x.x.x.x --dbuser=db-user --action=custom_query --critical=10 --warning=5 --query="SELECT count(id) as result from your-table"
于 2016-11-26T03:31:33.163 回答