The SNMPv3 noAuthNoPriv security level, somewhat unintuitively, requires
a security name to be passed along together with the request. Check_snmp
previously did not do this, causing snmpget to throw an error:
"External command error: No log handling enabled - turning on stderr
logging
snmpget: No securityName specified"
This patch fixes the issue by always providing the security name when
noAuthNoPriv is specified.
See also:
https:://bugs.op5.com/view.php?id=8385.
Signed-off-by: Anton Lofgren <alofgren@op5.com>
thats because check_procs verifys there is a user for a
given uid filter. So even we use sample data for this
test, we still need a real user.
Signed-off-by: Sven Nierlein <Sven.Nierlein@consol.de>
check_snmp becomes capable of evaluating negative values properly,
but it might be returning CRITICALs where it used to return OK and was ignored,
if a negative value turns out to actually be a valid value.
If negative values are valid, this can be worked around,
by adding "~:" to the warning/critical threshold : 100 -> ~:100
When a timeout value is specified with the -t option, dig will sometimes
timeout before the timer is actually reached.
The problem occurs because the check_dig plugin does not pass the specified
timeout value to dig, leaving dig to timeout with it's default value which
seems to be around 10-15seconds.
To reproduce:
time ./check_dig -H 127.0.0.2 -l www.google.com -t 30
It will not run for 30secs, which is the expected behaviour.
The following will work, because the timeout is less than the default dig
timeout, so the plugin cancels the dig command:
time ./check_dig -H 127.0.0.2 -l www.google.com -t 2
This fix passes the timeout value to dig, and sets the number of retries which tends to vary from system to system by default.
Closes#1168
Check_swap used to allow no swap when thresholds were only specified in
percent. This is no longer the case and the state now must be specified
explicitly. The default is to always return CRITICAL when the swap is
absent regardless of thresholds.
Also default to "-u test -ptest" which are default MySQL accounts only
missing the prescribed privileges.
The database is no longer specified as it is not used.
If wanted is should be its own parameter/tests.
by Geoff Oakham <goakham at oanda.com>
Patch of check_ping that allows it to gracefully handle when ping outputs
to stderr "Warning: time of day goes back (-XXXXus), taking countermeasures."
Closes: #809 and #1195
The more important change: A fix for a bug which caused the check_ntp_time
and check_ntp_time check to always take the first response from ntp and not
the avarage since "j" is not increased anywhere. "i" should be used there
instead.
Partly Closes#956 and Closes#1166Closes: #1089
Each S.M.A.R.T. attribute is compared against a threshold. If it is LESSTHAN
that threshold an error is reported. This patch fixes the problem, that
attribute values EQUAL to the threshold are reported as error, which is wrong.
Only LESSTHAN the threshold is an error.
For more information see: http://www.hdsentinel.com/smart/index.php
My SSD has some attributes which value and threshold are "0". Without the patch
this is reported as errornous.
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
...
172 Unknown_Attribute 0x0032 000 000 000 Old_age Always - 0
174 Unknown_Attribute 0x0030 000 000 000 Old_age Offline - 13
177 Wear_Leveling_Count 0x0000 000 000 000 Old_age Offline - 0
...
See also:
* http://sourceforge.net/p/nagiosplug/patches/365/
* https://bugzilla.redhat.com/913085
check_ide_smart could disable offline auto tests but could not re-enable
them. For this reason all SMART command modes have been disabled
The disabled commands are -0/--auto-off, -1/--auto-on and
-i/--immediate
check_ide_smart was originally a smard control utility later converted
to a monitoring plugin. the -n option (Nagios check) should therefore be
the default.
This patch deprecates the -n and -q switches, and make the other
switches return nagios-compatible output (they are most likely used in
eventhandlers, but returning nagios-compatible output makes it clear and
easy to handle the return status)
while compiling i keep receiving an warning statement as follow:
warning: zero-length gnu_printf format string
using an unorthodox method to remove them
Signed-off-by: Ricardo Maraschini <ricardo.maraschini@gmail.com>
* maint:
check_ssh: Get rid of sshd: Read from socket failed: Connection reset by peer
fixed tests when there is no direct internet connection
NEWS: Mention fix for check_http's -S option
Fix for SSL Versioning when multiple options are used.
Fix#1217 spec file fails to build due to duplicate files and unused files
check_http: Don't let "-N" expect an argument
README: Change GitHub URL
README: Clarify license notice
Update URLs and mailing list addresses
Just using the posix conform extended regular expression grep
check_oracle: --db +ASM bad string matching check_oracle doesn't correctly check for pmon +ASM instance from at least Oracle 11 as the pmon proces was renamed from ora_pmon_.* to asm_pmon_.*. -- Just turning attached patch of github issue #1207 into a push request. (Closes#1207)
Update web site URLs
Conflicts:
FAQ
NEWS
README
SUPPORT
configure.in
monitoring-plugins.spec.in
pkg/solaris/pkginfo.in
plugins-root/check_dhcp.c
plugins-root/check_icmp.c
plugins-scripts/check_ifoperstatus.pl
plugins-scripts/check_mssql.pl
plugins/check_apt.c
plugins/check_by_ssh.c
plugins/check_cluster.c
plugins/check_dbi.c
plugins/check_dig.c
plugins/check_disk.c
plugins/check_dns.c
plugins/check_dummy.c
plugins/check_fping.c
plugins/check_game.c
plugins/check_hpjd.c
plugins/check_http.c
plugins/check_ide_smart.c
plugins/check_ldap.c
plugins/check_load.c
plugins/check_mrtg.c
plugins/check_mrtgtraf.c
plugins/check_mysql.c
plugins/check_mysql_query.c
plugins/check_nagios.c
plugins/check_nt.c
plugins/check_ntp.c
plugins/check_ntp_peer.c
plugins/check_ntp_time.c
plugins/check_nwstat.c
plugins/check_overcr.c
plugins/check_pgsql.c
plugins/check_ping.c
plugins/check_procs.c
plugins/check_radius.c
plugins/check_real.c
plugins/check_smtp.c
plugins/check_snmp.c
plugins/check_ssh.c
plugins/check_swap.c
plugins/check_tcp.c
plugins/check_time.c
plugins/check_ups.c
plugins/check_users.c
plugins/negate.c
plugins/urlize.c
plugins/utils.h
po/Makevars
po/de.po
po/fr.po
po/monitoring-plugins.pot
Install into /usr/local instead of /usr/local/nagios by default, in
order to comply with the Filesystem Hierarchy Standard (FHS) and
presumably the expectations of most users.
Changes to non-network checks for clarity on timeout value. Adapted from pull request #1209 tracker from user awiddersheim. (Closes: #1209)
Files: check_apt.c, check_disk.c, check_procs.c, negate.c
Addition of timeout message for non-network plugins(UT_PLUG_TIMEOUT), and alteration of UT_TIMEOUT to UT_CONN_TIMEOUT for networked checks. Alteration of pull request #1209 tracker by user awiddersheim.
This is an initial take at renaming the project to Monitoring Plugins.
It's not expected to be fully complete, and it is expected to break
things (The perl module for instance). More testing will be required
before this goes mainline.
If you specify -S1 -C 30... The -C option will reset the ssl_version to 0. This is not a good thing.
Instead we set the default to 0 and retain the version when later args are passed.
Fix the problem that check_http's "-N" option expects an argument
although it shouldn't. The corresponding long option ("--no-body")
wasn't affected.
This error was introduced in ee3c4014d5.
Thanks to Kerry Hughes for reporting it on the devel@ list.
This fixes an issue that appears when running check_procs over NRPE,
where the default shell is configured to (for example) dash, as is the
case on Debian.
dash (and tcsh, and mksh, and probably others), when invoked with -c forks an additional process
to execute the argument string. Contrast this with bash, which does not
do this, provided that the argument string simply can be exec()'d as-is.
To demonstrate:
$ bash -c pstree
init─┬ ..
...
├─sshd─-─sshd───pstree
versus
$ dash -c pstree
init─┬ ..
...
├─sshd─-─sshd───dash───pstree
The consequence of this fork is that the following invocation:
/opt/plugins/check_procs -a init
will result in this output:
PROCS OK: 2 processes with args 'init' | processes=2;;;0;
because the check_procs, in addition to finding the actual init process,
finds its parent shell as well.
This example is a bit contrived, but I think it illustrates the
point.
This wouldn't really be a problem, and normally isn't, if it weren't
for the fact that NRPE uses a call to popen() which does exactly the
above (executes '/bin/sh -c ...'), causing inconsistent behaviour
between distributions and much confusion for end users.
The argument may be made that the dash process spawned by NRPE is just a
process like any other, and should therefore be included in the process
count just like any other. However, this is not very intuitive, because
of the previously mentioned inconsistencies.
The argument might also well be made that we're _never_ interested in the
immediate ancestor of the plugin, and while it is unknown how many
installations have already made the necessary modifications to their
setups to make up for the fact that the plugin behaves the way it does,
it is not deemed worthwhile to entertain such workarounds.
Thus, this patch ignores the parent process.
See also these bug reports:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626913http://sourceforge.net/p/nagiosplug/bugs/512/https://github.com/nagios-plugins/nagios-plugins/issues/999https://bugs.op5.com/view.php?id=4398
It would be useful to be able to detect the protocols supported by the remote
ssh server to locate any using the insecure ssh v1 protocol. This patch
attempts to match against the protocol string in the ssh response.
Example:
check_ssh -H my.host.com -P 2.0
--
Just turning attached patch of github issue #780 into a push request.
(Closes#780)
if check_imap expects a string that never occurs, it currently waits forever
because thats how the imap protocoll works. Use a receive timeout in that case
so we can exit early with a proper error message.
check_load parses load from the uptime command if no proc filesystem is available. Seems
like there are at least 2 different uptime outputs.
linux:
20:44:34 up 25 days, 2:07, 13 users, load average: 0.13, 0.17, 0.22
freebsd 8:
8:44PM up 4:29, 1 user, load averages: 0.00, 0.00, 0.00
older netcats do not understand -p, they expect host and port as additional argument.
This is backwards compatibel to newer clients. Also support netcat instead of nc.
The np_expect_match() function now returns one of three possible states
instead of just TRUE or FALSE:
- NP_MATCH_SUCCESS
- NP_MATCH_FAILURE
- NP_MATCH_RETRY
The NP_MATCH_RETRY state indicates that matching might succeed if
np_expect_match() is called with a longer input string. This allows
check_tcp to decide whether it makes sense to wait for additional data
from the server.
Closing the connection because the bytes received are less than the
buffer size assumes that all the bytes will be received in one go. This
is not always true!
The check_http option "--proxy_authorization" is now called
"--proxy-authorization" instead. It was always documented this way, and
we don't usually use underscores in option names.
This reverts the changes to plugins/common.h applied by commit
a20611d435.
- Clang defines __GNUC__.
- The new name of the __attribute__ parameter was misleading.
* 'master' of https://github.com/ozamosi/nagios-plugins:
check_snmp: Close potential for using uninitialized memory
check_snmp: Dynamically grow all data structures
Conflicts:
plugins/check_snmp.c
Commit bd78299056 reintroduced support for
inverse threshold ranges such as "2:1", but it broke standard thresholds
such as "1:2" (by converting this range into "1") or "1:" (by converting
this range into "@:2"). This commit fixes those two bugs, plus an
off-by-one error while computing the number of bytes to allocate when
handling inverse thresholds (two additional bytes were allocated where
three were required to hold '@' and ':' and '\0'). While at it, we also
check whether malloc(3) succeeded.
We use OpenSSL (or GnuTLS) with blocking semantics, and we don't want
SSL_read(3) or SSL_write(3) calls to return SSL_ERROR_WANT_READ or
SSL_ERROR_WANT_WRITE (see #3614716).
Do not also accept the new -f/--file and -g/--group options as
positional arguments (especially not prior to "db_pass" and "db", as
that would break backward compatibility).
Previously, when a process exited between the call to /bin/ps and
stat("/proc/his/exe") was exiting it was not considered as possible
instance of check_procs. This commit makes check_procs ignore all
processes where /proc/pid/exe does not exist.
Make check_procs filter out itself in the process list by comparing the
file pointed to by /proc/pid/exe. On platforms where this is not
available or when check_procs is passed the -T flag, the old behaviour
(check whether PID equals getpid()) is retained.
This fixes some false alarms when e.g. Nagios has, for whatever reasons,
some backlog of checks to run and check_procs with -a is called more
than once in a short time, matching its sister process.
This commit fixes sourceforge.net bug #3552839.
It adds a -k|--no-kthreads option to ignore kernel thread processes.
Please note: currently this feature only works for GNU/Linux systems (due to the fact I have no other systems to test/develop on)
Sorry for that, but I'm sure this can be accomplished by somebody else ;-)
Let check_fping use IPv6 only if
- the operating system supports IPv6,
- the user didn't specify --without-ipv6, and
- the "configure" script found the fping6(8) binary.
* github/tokkee/sh/check_pgsql:
check_pgsql: Determine connection time in µs-resolution.
check_pgsql: Leave 'min' value in query perfdata empty.
check_pgsql: Updated copyright.
check_pgsql: Added support for the -o command line option.
check_pgsql: Removed -4/-6 flags from help output.
check_pgsql: Allow UNIX socket directories as hostname as well.
check_pgsql: Use PQconnectdb() rather than PQsetdbLogin().
check_pgsql: Fixed query perfdata output for empty warn/crit ranges.
check_pgsql: Added support for executing queries.
Conflicts:
plugins/check_pgsql.c
multiple headers have to be set by multiple -k switches. Seperating them
by semicolons is not longer supported as semicolons are valid characters in
http headers.
The check_ntp_peer plugin now ignores response packets with an
unexpected "Operation Code" and/or "Sequence" number (cf. RFC 1305,
Appendix B). This fixes an issue where the check_ntp_peer requests got
duplicated on their way to the server (due to some network switch bug),
and the server therefore sent multiple responses per request.
Thanks to Marc Haber for reporting the issue.
This commit fixes sourceforge.net bug id 3571331.
The semicolon was defined as input delimiter for multiple values in the -k arguments.
Due to the fact the semicolon is a valid character for HTTP header fields this input delimiter function was removed.
It is still possible to pass multiple header fields via multiple -k (like described in helptext).
By using a more automake-style handling of dependencies and a single
convenience library, it's tremendously easy to build in parallel.
Note that since the linking happens with the static archives, the
unused objects are discarded and provide no overhead whatsoever.
The previous name would collide with popen's. Even if the two are
never used together, it's still a good idea not to have the same
symbol in multiple object files.
"./check_tcp -6 -p 80 host" leads to an error:
TCP CRITICAL - Invalid hostname, address or socket: 127.0.0.1
because 127.0.0.1 is the fallback host, the tailing hostname
was ignored.
This was reported by clang, and in order for it to understand attributes
properly, I had to modify the macro that checks for non-gcc compilers.
Signed-off-by: Robin Sonefors <robin.sonefors@op5.com>
Before this patch, there was a constant, MAX_OIDS, that determined the
amount of slots most (but not all - see labels) array data structures
would have. It was set to 8.
Some users would like to use more than that, but rather than bumping the
constant, let's use the same type of logic we already use for labels -
grow the space 8 slots at a time. This will allow us to potentially
support an infinite amount of oids - or at least as many as the
packetsize on the SNMP server allows, which is usually significantly
smaller than infinity, yet often larger than 8.
Signed-off-by: Robin Sonefors <robin.sonefors@op5.com>
Add command line options -4 and -6 (--use-ipv4 and
--use-ipv6) to check_dig.
Effectively this adds no new functionality, just a
shortcut for:
check_dig -A "-4"
check_dig -A "-6"
Needed for using check_dig with the check_v46 wrapper
(see e.g.
https://gitorious.org/nagios-monitoring-tools/nagios-monitoring-tools/blobs/master/check_v46)
which requires -4/-6 command line option support.
The memory allocation mixed up number of bytes with number of pointers,
meaning as soon as we'd reach (on 64 bit systems) the second argument,
we'd start writing it outside of our allocated memory.
Normally, this isn't too visible, but as soon as you (again, on my 64
bit system) reach argument number 8, you get a segfault. It is easily
reproducible with:
check_snmp -o '' -l '' -o '' -l '' -o '' -l '' -o '' -l '' \
-o '' -l '' -o '' -l '' -o '' -l '' -o '' -l ''
This patch allocates the proper amount of memory, to fix the issue.
Signed-off-by: Robin Sonefors <robin.sonefors@op5.com>
Add command line options -4 and -6 (--use-ipv4 and
--use-ipv6) to check_fping. IPv4 is used by default,
maintaining backwards compatibility with older
check_fping versions. IPv6 support requires the
fping6 program.
The implementation is really just an imitation of
check_ping IPv6 support: Plugin command line option
-4/-6 designates whether to run fping/fping6.
Please note that especially the changes to
configure.in might be all wrong - I don't know
what's the proper autoconf way, patching
configure.in just seemed to work for me.
This adds support for @<range> and makes stuff a bit simpler by removing code
duplications.
Note: Previously, the compatibility code for 'check_procs <warn> <max>'
accepted something like 'check_procs -w 10:-1 -c 10:-1 20 50' as well
(treating it as if '-w 10:20 -c 10:50' was specified). This is no longer the
case ... additional arguments are only used as warn/crit thresholds in case
-w/-c is not specified at all.
Dying without a hint of what went wrong is just plain annoying. With
this patch we at least get a hint.
While at it, we fix the string offset so the output we're interested
in doesn't keep the equal sign that snmpget prints.
Signed-off-by: Andreas Ericsson <ae@op5.se>
Once upon a time, check_snmp used to accept inverse ranges in the
format of '2:1' to mean "alert if value is inside this range".
Since commit 7cb3ae0933, ranges such
as those have instead triggered the error "Range format incorrect"
and resulted in an UNKNOWN warning state. This patch attempts to
fix the situation so that the old-style ranges continues to mean
exactly what the once did and people with lots of snmp checks can
avoid a bazillion false positives from their environments.
Signed-off-by: Andreas Ericsson <ae@op5.se>
This commit add a runtime option to ignore the root-reserved space
when calculating perfdata.
Before / after:
./check_disk -w 2% -c 1% /home
./check_disk -w 2% -c 1% -f /home
DISK CRITICAL - free space: /home 272 MB (1% inode=83%);| /home=17551MB;18401;18589;0;18777
DISK CRITICAL - free space: /home 272 MB (1% inode=83%);| /home=17551MB;17466;17644;0;17823
Well, it doesn't really give me more space :) but the perfdata are a
little bit more coherent.
Note that there are still a rounding issue on the percent calculation
(cf calculate_percent() comments, taken from coreutils 'df' command).
272/17823 -> 1.526%
Since the warning/critical/min/max data are usually not saved in RRD DB,
you can activate the option without seeing landslides in the graphs.
Let OpenSSL load its configuration file. See the OPENSSL_config(3) man
page for details.
(Suggested by Max Kosmach in Debian bug report #689960, forwarded by Jan
Wagner.)
Add a hidden "--input-file" option to check_apt (modelled on
check_procs) so that it can take files with sample apt output as input.
Add tests for my SECURITY_RE fix (debian3) and for the include, exclude
and critical options.
For the default security upgrade detection regular expression, match
"Debian-Security" in package description when it's anywhere after the
first parenthesis (not just the second space-delimited word). For
example:
... (4.0.1-5.4 Debian:6.0.6/stable, Debian-Security:6.0/stable ...
"critical" regular expressions. Instead, check for lines beginning
with "Inst" using strncmp and apply the regular expressions only when
such lines are found.
Fixes Debian bug #522812, along the lines suggested by the bug
submitter, Justin T Pryzby.
Fix the threshold specifications in the example for checking the number
of truechimers.
Reported by Marc Haber on the "nagios-users" mailing list (Message-ID:
<20120722142840.GA6931@torres.zugschlus.de>).
Mention that the check_ntp_peer plugin checks the stratum of the
synchronization peer, not the stratum of the monitored server itself.
Thanks to Marc Haber for bringing this up on the "nagios-users" mailing
list (Message-ID: <20120722142840.GA6931@torres.zugschlus.de>).
The "ssl_version" variable was undeclared when the plugins were compiled
--without-openssl and --without-gnutls.
Bug reported by Michael LaCorte on the "nagiosplug-help" mailing list
(Message-ID: <CCD30C91-A2A8-463A-82A9-F99B54F741D3@gmail.com>).
This option may be used to specify further connection parameters to be passed
to PQconnectdb(). For example, this may be used to specify a service name in
pg_service.conf to be used for additional connection parameters: -o
'service=<name>' or to specify the SSL mode: -o 'sslmode=require'.
See the chapter "libpq - C Library" in the PostgreSQL manual for details.
This is more flexible and the recommended way to connect to a PostgreSQL
database.
Also, the verbose output now includes detailed information about the
connection.
The query result (the double value of the first column in the first row, to be
precise) will be checked against threshold ranges specified using the -C and
-W options.
Note that this also allows to query PostgreSQL internal values using the
information available from the database daemon's "statistics collector" -- see
the chapter "Monitoring Database Activity" in the PostgreSQL manual for
details.
A recent update removed the declarations for a couple variables in
check_smtp.c that are still being used, which caused a failure
in the compilation of check_smtp.c. This commit restores those variable
declarations so the check_smtp.c will again compile.
Earlier versions of check_smtp generated an (invalid) "MAIL FROM"
command without arguments by default. These days, a "MAIL FROM" command
is only sent if the --from option is specified.
This commit removes a comment which explains the old behaviour, and it
updates a variable name accordingly.
Fixes many instances of
warning: ignoring return value of 'asprintf', declared with attribute warn_unused_result [-Wunused-result]
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Apparently some people used -f '<nagios@example.com>' to work around
the bug I just fixed in the MAIL FROM: command generation. Although
the resulting command wasn't RFC-compliant, it was working with some
MTAs, so let's continue to support this syntax now that we generate
RFC-compliant commands.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Every version of the SMTP standard (from RFC 821 to the current RFC
5321) requires the address following MAIL FROM: to follow the colon
immediately (with no space) and to be surrounded by angle brackets.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
When using the 1.4.15 release of the Nagios Plugins, a command such as
check_tcp -H pop.example.com -p 995 -D 14
usually produced two lines of output, e.g.:
OK - Certificate will expire on 12/13/2014 23:59.
TCP OK - 0.009 second response time on port 995|time=0.008849s;;;0.000000;10.000000
The second line was removed by 4d06603060.
However, as the old two-line output is a valid (though in this case
unintended) way to spit out performance data, removing the second line
might break current setups. Therefore, we revert to the old behaviour,
at least for the moment.
The issue was reported by Jochen Bern on the "nagiosplug-devel" mailing
list (Message-ID: <4FEAE812.8030309@LINworks.de>).
Don't return a WARNING state if the number of lost packets is greater
than zero but below the specified warning threshold. This happened
because the check_ping plugin used the exit status of the ping(1)
utility. (#3535140 - Tobias Brox)
In the C shell and in the Z shell, the "?" character must be quoted or
backslash-escaped in order to use it verbatim. Therefore, a command
such as
check_by_ssh -H test.example.com -l joe echo huh?
might fail, depending on joe's login shell on test.example.com.
Just to make sure, this commit removes most punctuation characters from
our test strings.
The ping6(1) implementation provided by Debian's iputils-ping package
may produce output such as the following:
| 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2009ms
There's a corresponding pattern in check_ping.c:458:
| "%*d packets transmitted, %*d received, +%*d errors, %d%% packet loss"
Without this fix, the pattern in check_ping.c:456 matched first (as
sscanf(3) interprets "+3" as a match for "%d"):
| "%*d packets transmitted, %*d received, %d%% loss, time"
(#1894850 - Debian bug report #514588 - Matej Vela)
This metric compares the database engine server version with the specified
ranges. The version string [[[[A.]B.]C.]D.]E[.] is returned as E + D*100 +
C*10000 + B*1000000 + A*100000000 (see libdbi's dbi_conn_get_engine_version()
documentation).
These options may be used to specify an extended POSIX regular expression that
is applied to the query result. When using -R, a case-insensitive match is
done.
The options may not be mixed with -w/-c/-e.
This option may be used to specify a string that is expected as the query
return value. The string is compared to the query result using strcmp().
The option may not be mixed with -w/-c.
This metric checks the execution time of the specified query. In case the
query does not return any (parsable) data, this is not treated as an error
when using this metric.
The -m option may be used to specify a metric to check the thresholds against.
This is more flexible than --conntime-warning/--conntime-critical (-W/-C) as
it may be extended to support further metrics without introducing tons of
arguments. Also, it does not make much sense to check the conntime and query
result at the same time.
Currently, the metrics CONN_TIME and QUERY_RESULT are available.
A query is no longer required unless QUERY_RESULT (the default) is used.
This plugin connects to an SQL database using libdbi, thus supporting all
database backends supported by libdbi. It will then issue the specified SQL
query and check the result (the numeric value of the first column of the first
row to be precise) against the specified warning/critical ranges.
The performance data includes the connection time (µs-resolution as provided
by gettimeofday()) and the query result.