X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fcheck_pgsql.c;h=40c104eb3d894d26b0aa0694dc186bc141219997;hb=6b782ebfd4832c1fe621556bcf894162b8caa8aa;hp=1a93f6bf17e27898b17f370685149fdc6275a220;hpb=44f8455b2cf248c6f50c35bfc3510d2946084c5b;p=nagiosplug.git diff --git a/plugins/check_pgsql.c b/plugins/check_pgsql.c index 1a93f6b..40c104e 100644 --- a/plugins/check_pgsql.c +++ b/plugins/check_pgsql.c @@ -5,8 +5,6 @@ * License: GPL * Copyright (c) 1999-2007 Nagios Plugins Development Team * -* Last Modified: $Date$ -* * Description: * * This file contains the check_pgsql plugin @@ -27,12 +25,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . * -* $Id$ * *****************************************************************************/ const char *progname = "check_pgsql"; -const char *revision = "$Revision$"; const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; @@ -71,6 +67,7 @@ char *pguser = NULL; char *pgpasswd = NULL; double twarn = (double)DEFAULT_WARN; double tcrit = (double)DEFAULT_CRIT; +int verbose = 0; PGconn *conn; /*PGresult *res;*/ @@ -155,6 +152,8 @@ main (int argc, char **argv) if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); + if (verbose > 2) + printf("Arguments initialized\n"); /* Set signal handling and alarm */ if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) { @@ -162,14 +161,24 @@ main (int argc, char **argv) } alarm (timeout_interval); + if (verbose) + printf("Connecting to database:\n DB: %s\n User: %s\n Host: %s\n Port: %d\n", dbName, + (pguser != NULL) ? pguser : "unspecified", + (pghost != NULL) ? pghost : "unspecified", + (pgport != NULL) ? atoi(pgport) : DEFAULT_PORT); + /* make a connection to the database */ time (&start_time); conn = PQsetdbLogin (pghost, pgport, pgoptions, pgtty, dbName, pguser, pgpasswd); time (&end_time); elapsed_time = (int) (end_time - start_time); + if (verbose) + printf("Time elapsed: %d\n", elapsed_time); /* check to see that the backend connection was successfully made */ + if (verbose) + printf("Verifying connection\n"); if (PQstatus (conn) == CONNECTION_BAD) { printf (_("CRITICAL - no connection to '%s' (%s).\n"), dbName, PQerrorMessage (conn)); @@ -185,8 +194,10 @@ main (int argc, char **argv) else { status = STATE_OK; } + if (verbose) + printf("Closing connection\n"); PQfinish (conn); - printf (_(" %s - database %s (%d sec.)|%s\n"), + printf (_(" %s - database %s (%d sec.)|%s\n"), state_text(status), dbName, elapsed_time, fperfdata("time", elapsed_time, "s", (int)twarn, twarn, (int)tcrit, tcrit, TRUE, 0, FALSE,0)); @@ -214,11 +225,12 @@ process_arguments (int argc, char **argv) {"authorization", required_argument, 0, 'a'}, {"port", required_argument, 0, 'P'}, {"database", required_argument, 0, 'd'}, + {"verbose", no_argument, 0, 'v'}, {0, 0, 0, 0} }; while (1) { - c = getopt_long (argc, argv, "hVt:c:w:H:P:d:l:p:a:", + c = getopt_long (argc, argv, "hVt:c:w:H:P:d:l:p:a:v", longopts, &option); if (c == EOF) @@ -231,7 +243,7 @@ process_arguments (int argc, char **argv) print_help (); exit (STATE_OK); case 'V': /* version */ - print_revision (progname, revision); + print_revision (progname, NP_VERSION); exit (STATE_OK); case 't': /* timeout period */ if (!is_integer (optarg)) @@ -279,6 +291,9 @@ process_arguments (int argc, char **argv) case 'a': pgpasswd = optarg; break; + case 'v': + verbose++; + break; } } @@ -355,7 +370,7 @@ is_pg_dbname (char *dbname) /** -the tango program should eventually create an entity here based on the +the tango program should eventually create an entity here based on the function prototype @@- @@ -389,7 +404,7 @@ is_pg_logname (char *username) /****************************************************************************** @@- - + -@@ @@ -404,13 +419,13 @@ print_help (void) asprintf (&myport, "%d", DEFAULT_PORT); - print_revision (progname, revision); + print_revision (progname, NP_VERSION); printf (COPYRIGHT, copyright, email); printf (_("Test whether a PostgreSQL Database is accepting connections.")); - printf ("\n\n"); + printf ("\n\n"); print_usage (); @@ -422,12 +437,12 @@ print_help (void) printf (_(UT_IPv46)); printf (" %s\n", "-d, --database=STRING"); - printf (" %s", _("Database to check ")); - printf (_("(default: %s)"), DEFAULT_DB); - printf (" %s\n", "-l, --logname = STRING"); - printf (" %s\n", _("Login name of user")); - printf (" %s\n", "-p, --password = STRING"); - printf (" %s\n", _("Password (BIG SECURITY ISSUE)")); + printf (" %s", _("Database to check ")); + printf (_("(default: %s)"), DEFAULT_DB); + printf (" %s\n", "-l, --logname = STRING"); + printf (" %s\n", _("Login name of user")); + printf (" %s\n", "-p, --password = STRING"); + printf (" %s\n", _("Password (BIG SECURITY ISSUE)")); printf (_(UT_WARN_CRIT)); @@ -435,26 +450,26 @@ print_help (void) printf (_(UT_VERBOSE)); - printf ("\n"); + printf ("\n"); printf (" %s\n", _("All parameters are optional.")); - printf (" %s\n", _("This plugin tests a PostgreSQL DBMS to determine whether it is active and")); - printf (" %s\n", _("accepting queries. In its current operation, it simply connects to the")); - printf (" %s\n", _("specified database, and then disconnects. If no database is specified, it")); - printf (" %s\n", _("connects to the template1 database, which is present in every functioning")); - printf (" %s\n\n", _("PostgreSQL DBMS.")); + printf (" %s\n", _("This plugin tests a PostgreSQL DBMS to determine whether it is active and")); + printf (" %s\n", _("accepting queries. In its current operation, it simply connects to the")); + printf (" %s\n", _("specified database, and then disconnects. If no database is specified, it")); + printf (" %s\n", _("connects to the template1 database, which is present in every functioning")); + printf (" %s\n\n", _("PostgreSQL DBMS.")); printf (" %s\n", _("The plugin will connect to a local postmaster if no host is specified. To")); - printf (" %s\n", _("connect to a remote host, be sure that the remote postmaster accepts TCP/IP")); - printf (" %s\n\n", _("connections (start the postmaster with the -i option).")); + printf (" %s\n", _("connect to a remote host, be sure that the remote postmaster accepts TCP/IP")); + printf (" %s\n\n", _("connections (start the postmaster with the -i option).")); printf (" %s\n", _("Typically, the nagios user (unless the --logname option is used) should be")); - printf (" %s\n", _("able to connect to the database without a password. The plugin can also send")); - printf (" %s\n", _("a password, but no effort is made to obsure or encrypt the password.")); + printf (" %s\n", _("able to connect to the database without a password. The plugin can also send")); + printf (" %s\n", _("a password, but no effort is made to obsure or encrypt the password.")); #ifdef NP_EXTRA_OPTS - printf ("\n"); - printf ("%s\n", _("Notes:")); - printf (_(UT_EXTRA_OPTS_NOTES)); + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); #endif printf (_(UT_SUPPORT)); @@ -465,7 +480,7 @@ print_help (void) void print_usage (void) { - printf (_("Usage:")); + printf (_("Usage:")); printf ("%s [-H ] [-P ] [-c ] [-w ]\n", progname); - printf (" [-t ] [-d ] [-l ] [-p ]\n"); + printf (" [-t ] [-d ] [-l ] [-p ]\n"); }