2011-02-24 80 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"