Nagios strips quotes from command arguments
Andrew Cruse
andrew at profitability.net
Fri Dec 14 23:08:12 CET 2007
Paul Lathrop wrote:
> Hi all,
>
> I've been banging my head against this for days, and Googled my eyes
> out to no avail, so I think it is time to bring this to the list.
>
> I have written a plugin in Python which connects to a database on
> another host, runs an arbitrary query, and (depending on the options
> passed to it) returns an appropriate Nagios return code. Here is a
> typical invocation of this script from the command line:
>
> nagios at monitor:~$ /usr/local/lib/nagios/plugins/dbmon.py -H 10.0.2.9
> -u monitor -p password -d testdb -w 10: -c 20: "select count(*) from
> users"
> OK: 24
>
> As you can see, I'm running this as the Nagios user with no problems.
>
> Here is my command definition:
>
> define command{
> command_name check-db-count
> command_line /usr/local/lib/nagios/plugins/dbmon.py
> -H $HOSTADDRESS$ -u $USER3$ -p $USER4$ -d $ARG1$ -w $ARG3$ -c $ARG4$
> $ARG2$
> }
>
> $USER3$ and $USER4$ are set in resource.cfg to the appropriate values.
>
> Here is my service definition:
>
> define service{
> use generic-service
> host_name data.zicasso.com
> service_description Example DB Monitor
> check_command check-db-count!testdb!"select count(*)
> from users"!10:!20:
> contact_groups sysadmin
> }
>
> I would expect this to work, but the plugin returns '(No output!)'
> Basic debugging step is to make sure the command is being run the way
> I think it is. So I changed my command definition to:
>
> define command{
> command_name check-db-count
> command_line echo
> /usr/local/lib/nagios/plugins/dbmon.py -H $HOSTADDRESS$ -u $USER3$ -p
> $USER4$ -d $ARG1$ -w $ARG3$ -c $ARG4$ $ARG2$ >> /tmp/nagios.log
> }
>
> And here is what I see:
>
> /usr/local/lib/nagios/plugins/dbmon.py -H 10.0.2.9 -u monitor -p
> password -d testdb -w 10: -c 20: select count(*) from users
>
> Somewhere, the quotes around the SQL statement disappear. And no
> amount of backslashing, double-quoting, or anything else will convince
> nagios to pass those quotes along to the plugin! I am using Nagios 2.6
> on Debian Etch.
>
> I'm also going somewhat nuts over this issue. Any help would be much
> appreciated.
How about putting the quotes in your command definition?
define command{
command_name check-db-count
command_line /usr/local/lib/nagios/plugins/dbmon.py -H
$HOSTADDRESS$ -u $USER3$ -p $USER4$ -d $ARG1$ -w $ARG3$ -c $ARG4$ "$ARG2$"
aNDREW
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue.
::: Messages without supporting info will risk being sent to /dev/null
More information about the Users
mailing list