Помощь с пользовательским запросом Nagios check_postgres.pl

У меня есть функция 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).

Файл журнала не содержит подробной информации для отладки этого. Итак, что я могу сделать, чтобы разобраться в этой проблеме - любая помощь очень ценится

результат


person Rick    schedule 24.02.2011    source источник
comment
Вы пробовали su: обращаться к пользователю nagios в командной строке? Эта пользовательская среда может отличаться от вашей обычной оболочки.   -  person Anders Lindahl    schedule 25.02.2011


Ответы (3)


У меня была такая же проблема. Удаление точки с запятой в конце запроса заработало.

Ссылка на почтовые архивы здесь:

https://mail.endcrypt.com/pipermail/check_postgres/2011-февраль/000726.html

person Ben W.    schedule 14.11.2011

Выстрел в темноте, но попробуйте заключить запрос в одинарные кавычки. * может быть каким-то образом расширен.

person opsguy    schedule 22.03.2011

Немного поздно, но я также получил аналогичную ошибку с пользовательским запросом, но оказалось, что вам нужно вернуть столбец с именем «результат», и он должен быть целым числом.

Например:

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"
person mrmuggles    schedule 26.11.2016