X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fcheck_pgsql.c;h=a3652149d7fa81202ce9e132fd63a5d994db19c7;hb=25d1ee331dbe4977a4a1a756c67f32bd51d9b070;hp=abe721bf696a5802d60e4922c7e7fd6896733f4c;hpb=6fbd14fea5c111a23d9074d25499991cbfa58f79;p=nagiosplug.git diff --git a/plugins/check_pgsql.c b/plugins/check_pgsql.c index abe721b..a365214 100644 --- a/plugins/check_pgsql.c +++ b/plugins/check_pgsql.c @@ -67,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;*/ @@ -151,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) { @@ -158,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)); @@ -181,6 +194,8 @@ 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"), state_text(status), dbName, elapsed_time, @@ -210,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) @@ -275,6 +291,9 @@ process_arguments (int argc, char **argv) case 'a': pgpasswd = optarg; break; + case 'v': + verbose++; + break; } } @@ -406,54 +425,54 @@ print_help (void) printf (_("Test whether a PostgreSQL Database is accepting connections.")); - printf ("\n\n"); + printf ("\n\n"); print_usage (); - printf (_(UT_HELP_VRSN)); - printf (_(UT_EXTRA_OPTS)); + printf (UT_HELP_VRSN); + printf (UT_EXTRA_OPTS); - printf (_(UT_HOST_PORT), 'P', myport); + printf (UT_HOST_PORT, 'P', myport); - printf (_(UT_IPv46)); + 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)); + printf (UT_WARN_CRIT); - printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); + printf (UT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); - printf (_(UT_VERBOSE)); + 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)); + printf (UT_SUPPORT); } @@ -461,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"); }