2011-02-24 79 views
1

我有一个Postgres的函数,返回两列帮助Nagios的check_postgres.pl自定义查询

结果,数据 (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)。

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

结果

+0

你试过'su':荷兰国际集团Nagios监控用户在命令行上?该用户环境可能与常规shell不同。 – 2011-02-25 15:51:55

回答

0

瞎猜,但尽量封闭在单引号中查询。 *可能会以某种方式扩大。

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"