The problem is that check_pgsql validates the Database name and has different assumptions
that postgres itself.
I fail to see a reason to validate the database name here. Postgres'es API should
do this - So i would suggest a fix like this by removing is_pg_dbname alltogether.
Co-authored-by: Florian Lohoff <f@zz.de>
This is used in the long output instead of the actual query.
So instead of
OK - 'select stuff from various, tables where some_stuff is null and other_stuff is not null' returned 42
one can use --queryname=check_greatest_basket and it will print
OK - check_greatest_basket returned 42
That's nicer for alerting purposes, at least in our use case.
As strcpy may overflow the resulting buffer:
flo@p5:~$ /tmp/f/usr/lib/nagios/plugins/check_pgsql -d "$(seq 1 10000)"
*** buffer overflow detected ***: terminated
Aborted
I would propose to change the code rather like this, using snprintf
which honors the buffers size and guarantees null termination.
When check_by_ssh runs into a timeout it simply exits keeping all child processes running.
Simply adopting the kill loop from runcmd_timeout_alarm_handler() fixes this.
Signed-off-by: Sven Nierlein <sven@nierlein.de>
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.
* 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
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.
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>
Bug #2832884 reported problem with translations outputting pot file
headers. This is caused by "" matching the header of the translation
files.
This patch moves gettext macros inside utils macros and update some
french translations.