1

2 つの列を返す 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 に答える