Re: [Nagios-db-devel] Upgrade and rollback issues
Status: Beta
Brought to you by:
bench23
|
From: Robert B. <rbi...@na...> - 2005-03-11 06:51:37
|
That was it, don't know how it ever worked in the first place. I should
be able to take it from here. Thanks for the help. This is the relevant
nagios.log entry:
[1110523507] Nagios 2.0b2 starting... (PID=9223)
[1110523507] LOG VERSION: 2.0
[1110523507] initializing nagios-db postgres inserter...
[1110523507] nagios-db: inserter failed to establish postgres connection
(fe_sendauth: no password supplied
)
[1110523507] Event broker module '/usr/local/nagios/bin/inserter.o'
initialized successfully.
Ben wrote:
> Ok, so it turns out I apparently can't read documentation. I bet the
> problem is that you aren't successfully connecting to your database.
> Have you checked your permissions? Or, better yet, your postgres logs?
>
> I'm not in a place where I can try this out, so give it a shot. If it
> passes the compile test, then I'll check it in. If we're lucky, it might
> even tell you what's wrong. :)
>
>
> ------------------------------------------------------------------------
>
> #ifndef NSCORE
> #define NSCORE
> #endif
>
> /* we need this for postgres support */
> #include "libpq-fe.h"
>
> /* include the needed event broker header files */
> #include "../include/nebmodules.h"
> #include "../include/nebcallbacks.h"
> #include "../include/nebstructs.h"
> #include "../include/broker.h"
>
> /* include some Nagios stuff as well */
> #include "../include/config.h"
> #include "../include/common.h"
> #include "../include/nagios.h"
> #include "../include/objects.h"
>
> #include <sys/types.h>
> #include <string.h>
> #include <stdlib.h>
>
> #define UNIX_PATH_MAX 108
>
> /* specify event broker API version (required) */
> NEB_API_VERSION(CURRENT_NEB_API_VERSION);
>
> #define BUFFER_ALLOC_SIZE 1024
> #define NULL_STRING(x) (x?:"null")
> #define BOOLIFY_STRING(x) (x?"TRUE":"FALSE")
>
> #define FIRST_COMMAND_NUM NEBCALLBACK_PROCESS_DATA
>
> char * querify(char * src);
>
>
> extern hostgroup *hostgroup_list;
> extern servicegroup *servicegroup_list;
> extern host *host_list;
> extern service *service_list;
>
> extern int enable_flap_detection;
> extern int enable_notifications;
> extern int enable_event_handlers;
> extern int execute_service_checks;
> extern int execute_host_checks;
> extern int accept_passive_service_checks;
> extern int accept_passive_host_checks;
>
> static int processStart(int, void *);
> static int processStatus(int, void *);
> static int processCheck(int, void *);
>
>
> PGconn * pgconn = 0;
>
> /* this function gets called when the module is loaded by the event broker */
> int nebmodule_init(int flags, char *args, nebmodule *handle)
> {
> write_to_all_logs("initializing nagios-db postgres inserter...",NSLOG_INFO_MESSAGE);
>
> if(!(pgconn = PQconnectdb("host=meatshake port=5432 dbname=nag user=postgres")))
> {
> /* couldn't connect; this will be useless. */
> write_to_all_logs("nagios-db: inserter failed to allocate postgres connection",NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(CONNECTION_OK != PQstatus(pgconn))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: inserter failed to establish postgres connection (%s)",PQerrorMessage(pgconn));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> write_to_all_logs("nagios-db: inserter locked into db",NSLOG_INFO_MESSAGE);
> }
>
>
> neb_register_callback(NEBCALLBACK_TIMED_EVENT_DATA, 0, processStart);
>
> return 0;
> }
>
>
> /* this function gets called when the module is unoaded by the event broker */
> int nebmodule_deinit(int flags, int reason)
> {
> /* log a message to the Nagios log file */
>
> write_to_all_logs("nagios-db: inserter unloading...",NSLOG_INFO_MESSAGE);
>
> PQfinish(pgconn);
>
> neb_deregister_callback(NEBCALLBACK_HOST_STATUS_DATA, processStatus);
> neb_deregister_callback(NEBCALLBACK_SERVICE_STATUS_DATA, processStatus);
> neb_deregister_callback(NEBCALLBACK_HOST_CHECK_DATA, processCheck);
> neb_deregister_callback(NEBCALLBACK_SERVICE_CHECK_DATA, processCheck);
>
> pgconn = 0;
>
> return 0;
> }
>
> /* helper function to make a string ready for inclusion into a sql query */
> char *
> querify(char * src)
> {
> char * ret = 0;
> if(src)
> {
> int size = 2*strlen(src) + 3; /* +3 because we want to surround strings with single quotes, and we still need a null */
> int written = 0;
> if(!(ret = malloc(size)))
> {
> return 0;
> }
> ret[0] = '\'';
> written = PQescapeString(ret+1, src, strlen(src));
> ret[written + 1] = '\'';
> ret[written + 2] = 0;
> }
>
> return ret;
> }
>
> /* when Nagios starts up, we'll want to replicate configuration data into the database */
> static int processStart(int cmd, void * data)
> {
> host *hl = 0;
> service *sl = 0;
> hostgroup *hg = 0;
> PGresult *res = 0;
> int groupcount = 0;
> char q[2048];
>
> /* verify that we're dealing with the right kind of message. */
> if(cmd != NEBCALLBACK_TIMED_EVENT_DATA) return 0;
>
> /* verify that our config data has been initialized. */
> if(((nebstruct_timed_event_data*)data)->type != NEBTYPE_TIMEDEVENT_ADD) return 0;
>
> /* Clear out the previous config info.... */
> res = PQexec(pgconn,"select empty_config()");
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't clear config info (%s)", PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> PQclear(res);
>
> /* .... and insert new config info. Start with the hosts. */
> for(groupcount=0, hl = host_list; hl; hl = hl->next)
> {
> /* update this host */
> char *hostName = querify(hl->name);
>
> snprintf(q,sizeof(q),"select configure_host(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
> NULL_STRING(hostName),
> BOOLIFY_STRING(hl->checks_enabled),
> BOOLIFY_STRING(hl->accept_passive_host_checks),
> BOOLIFY_STRING(hl->event_handler_enabled),
> BOOLIFY_STRING(hl->flap_detection_enabled),
> BOOLIFY_STRING(hl->notifications_enabled),
> BOOLIFY_STRING(hl->failure_prediction_enabled),
> BOOLIFY_STRING(hl->process_performance_data),
> BOOLIFY_STRING(hl->obsess_over_host),
> BOOLIFY_STRING(hl->should_be_scheduled));
> if(hostName) free(hostName);
>
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't configure host using '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> PQclear(res);
>
> groupcount++;
> }
>
> snprintf(q,sizeof(q),"nagios-db: configured %d hosts", groupcount);
> write_to_all_logs(q,NSLOG_INFO_MESSAGE);
>
> /* add hostgroup membership */
> for(groupcount=0, hg=hostgroup_list; hg ; hg = hg->next)
> {
> hostgroupmember *hgm = 0;
> char *groupName, *groupAlias, *hostName;
> unsigned long groupid = 0;
>
> /* insert this hostgroup */
> groupName = querify(hg->group_name);
> groupAlias = querify(hg->alias);
> snprintf(q,sizeof(q),"select new_hostgroup(%s,%s)", NULL_STRING(groupName), NULL_STRING(groupAlias));
> if(groupName) free(groupName);
> if(groupAlias) free(groupAlias);
>
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't configure hostgroup using '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> groupid = atol(PQgetvalue(res,0,0));
> PQclear(res);
>
> for(hgm = hg->members; hgm; hgm = hgm->next)
> {
> /* add this host to the hostgroup */
> hostName = querify(hgm->host_name);
> snprintf(q,sizeof(q),"select append_to_hostgroup(%lu,%s)", groupid, NULL_STRING(hostName));
> if(hostName) free(hostName);
>
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't configure hostgroup membership using '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> PQclear(res);
> }
>
> groupcount++;
> }
>
> snprintf(q,sizeof(q),"nagios-db: loaded %d hostgroups", groupcount);
> write_to_all_logs(q,NSLOG_INFO_MESSAGE);
>
> /* mark all the configured services as such */
> for(groupcount=0, sl = service_list; sl; sl = sl->next)
> {
> /* update this service */
> char *hostName = querify(sl->host_name);
> char *serviceDesc = querify(sl->description);
>
> snprintf(q,sizeof(q),"select configure_service(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
> NULL_STRING(hostName),
> NULL_STRING(serviceDesc),
> BOOLIFY_STRING(sl->checks_enabled),
> BOOLIFY_STRING(sl->accept_passive_service_checks),
> BOOLIFY_STRING(sl->event_handler_enabled),
> BOOLIFY_STRING(sl->flap_detection_enabled),
> BOOLIFY_STRING(sl->notifications_enabled),
> BOOLIFY_STRING(sl->failure_prediction_enabled),
> BOOLIFY_STRING(sl->process_performance_data),
> BOOLIFY_STRING(sl->obsess_over_service),
> BOOLIFY_STRING(sl->should_be_scheduled));
> if(hostName) free(hostName);
> if(serviceDesc) free(serviceDesc);
>
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't configure service using '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> PQclear(res);
>
> groupcount++;
> }
>
> snprintf(q,sizeof(q),"nagios-db: set configured flag on %d services", groupcount);
> write_to_all_logs(q,NSLOG_INFO_MESSAGE);
>
> /* also insert various config parameters that we might want */
> snprintf(q,sizeof(q),"select replace_config_param('accept_passive_host_checks',%d)",accept_passive_host_checks);
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", q, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
> PQclear(res);
>
> snprintf(q,sizeof(q),"select replace_config_param('execute_host_checks',%d)",execute_host_checks);
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", q, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
> PQclear(res);
>
> snprintf(q,sizeof(q),"select replace_config_param('accept_passive_service_checks',%d)",accept_passive_service_checks);
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", q, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
> PQclear(res);
>
> snprintf(q,sizeof(q),"select replace_config_param('execute_service_checks',%d)",execute_service_checks);
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", q, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
> PQclear(res);
>
> snprintf(q,sizeof(q),"select replace_config_param('enable_flap_detection',%d)",enable_flap_detection);
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", q, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
> PQclear(res);
>
> snprintf(q,sizeof(q),"select replace_config_param('enable_notifications',%d)",enable_notifications);
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", q, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
> PQclear(res);
>
> snprintf(q,sizeof(q),"select replace_config_param('enable_event_handlers',%d)",enable_event_handlers);
> res = PQexec(pgconn,q);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", q, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", q, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
> PQclear(res);
>
> write_to_all_logs("nagios-db: configuration complete. Registering for status notifications...",NSLOG_INFO_MESSAGE);
>
> neb_deregister_callback(NEBCALLBACK_TIMED_EVENT_DATA, processStart);
> neb_register_callback(NEBCALLBACK_HOST_STATUS_DATA, 0, processStatus);
> neb_register_callback(NEBCALLBACK_SERVICE_STATUS_DATA, 0, processStatus);
> neb_register_callback(NEBCALLBACK_HOST_CHECK_DATA, 0, processCheck);
> neb_register_callback(NEBCALLBACK_SERVICE_CHECK_DATA, 0, processCheck);
>
> return 0;
> }
>
>
>
> static int processCheck(int cmd, void * data)
> {
> PGresult *res;
> char temp_buffer[1024];
>
> bzero(temp_buffer, sizeof(temp_buffer));
>
> switch(cmd)
> {
> case NEBCALLBACK_HOST_CHECK_DATA:
> {
> nebstruct_host_check_data * host_check_data = (nebstruct_host_check_data *) data;
>
> if(host_check_data->type != NEBTYPE_HOSTCHECK_PROCESSED) return 0;
>
> char *safeName = querify(host_check_data->host_name);
>
> snprintf(temp_buffer, sizeof(temp_buffer), "select host_checked(%s)",NULL_STRING(safeName));
>
> if(safeName) free(safeName);
> }
> break;
>
> case NEBCALLBACK_SERVICE_CHECK_DATA:
> {
> nebstruct_service_check_data * service_check_data = (nebstruct_service_check_data *) data;
>
> if(service_check_data->type != NEBTYPE_SERVICECHECK_PROCESSED) return 0;
>
> char *safeName = querify(service_check_data->host_name);
> char *safeServiceDescription = querify(service_check_data->service_description);
>
> snprintf(temp_buffer, sizeof(temp_buffer), "select service_checked(%s,%s)", NULL_STRING(safeName), NULL_STRING(safeServiceDescription));
>
> if(safeName) free(safeName);
> if(safeServiceDescription) free(safeServiceDescription);
> }
> break;
>
> default:
> snprintf(temp_buffer,sizeof(temp_buffer),"nagios-db: processCheck ignoring unknown NEB command %i",cmd);
> write_to_all_logs(temp_buffer,NSLOG_INFO_MESSAGE);
> return 0;
> break;
> }
>
> res = PQexec(pgconn,temp_buffer);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", temp_buffer, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", temp_buffer, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
>
> PQclear(res);
>
> return 0;
> }
>
>
>
> static int processStatus(int cmd, void * data)
> {
> PGresult *res;
> char temp_buffer[5120];
> service *tmp_service;
> host *tmp_host;
>
> bzero(temp_buffer, sizeof(temp_buffer));
> switch(cmd)
> {
> case NEBCALLBACK_HOST_STATUS_DATA:
> {
> nebstruct_host_status_data * host_status_data = (nebstruct_host_status_data *) data;
> tmp_host = (host *) host_status_data->object_ptr;
> char *safeName = querify(tmp_host->name);
> char *safeEventHandler = querify(tmp_host->event_handler);
> char *safePluginOutput = querify(tmp_host->plugin_output);
> char *safeHostCheckCommand = querify(tmp_host->host_check_command);
> char *safePerfData = querify(tmp_host->perf_data);
>
>
> snprintf(temp_buffer, sizeof(temp_buffer), "select update_host(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%lu,%s,%s,%s,%d,%d,%s,%d,%s,%f,%f,%lu,%lu,%d,%lu,%lu,%s,%s,%d)",
> NULL_STRING(safeName),
> BOOLIFY_STRING(tmp_host->checks_enabled),
> BOOLIFY_STRING(tmp_host->accept_passive_host_checks),
> BOOLIFY_STRING(tmp_host->event_handler_enabled),
> BOOLIFY_STRING(tmp_host->flap_detection_enabled),
> BOOLIFY_STRING(tmp_host->notifications_enabled),
> BOOLIFY_STRING(tmp_host->failure_prediction_enabled),
> BOOLIFY_STRING(tmp_host->process_performance_data),
> BOOLIFY_STRING(tmp_host->obsess_over_host),
> NULL_STRING(safeEventHandler),
> tmp_host->modified_attributes,
> BOOLIFY_STRING(tmp_host->has_been_checked),
> BOOLIFY_STRING(tmp_host->should_be_scheduled),
> BOOLIFY_STRING(tmp_host->is_flapping),
> tmp_host->current_state,
> tmp_host->last_hard_state,
> NULL_STRING(safePluginOutput),
> tmp_host->current_attempt,
> NULL_STRING(safeHostCheckCommand),
> tmp_host->execution_time,
> tmp_host->latency,
> tmp_host->last_check,
> tmp_host->next_check,
> tmp_host->max_attempts,
> tmp_host->last_host_notification,
> tmp_host->next_host_notification,
> BOOLIFY_STRING(tmp_host->no_more_notifications),
> NULL_STRING(safePerfData),
> tmp_host->check_type);
>
> if(safeName) free(safeName);
> if(safeEventHandler) free(safeEventHandler);
> if(safePluginOutput) free(safePluginOutput);
> if(safeHostCheckCommand) free(safeHostCheckCommand);
> if(safePerfData) free(safePerfData);
> }
> break;
>
> case NEBCALLBACK_SERVICE_STATUS_DATA:
> {
> nebstruct_service_status_data * service_status_data = (nebstruct_service_status_data *) data;
> tmp_service = (service *) service_status_data->object_ptr;
>
> char *safeName = querify(tmp_service->host_name);
> char *safeServiceDescription = querify(tmp_service->description);
> char *safeEventHandler = querify(tmp_service->event_handler);
> char *safePluginOutput = querify(tmp_service->plugin_output);
> char *safeServiceCheckCommand = querify(tmp_service->service_check_command);
> char *safePerfData = querify(tmp_service->perf_data);
>
>
> snprintf(temp_buffer, sizeof(temp_buffer), "select update_service(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%lu,%s,%s,%s,%d,%d,%s,%d,%s,%f,%f,%lu,%lu,%d,%lu,%lu,%s,%s,%d)",
> NULL_STRING(safeName),
> NULL_STRING(safeServiceDescription),
> BOOLIFY_STRING(tmp_service->checks_enabled),
> BOOLIFY_STRING(tmp_service->accept_passive_service_checks),
> BOOLIFY_STRING(tmp_service->event_handler_enabled),
> BOOLIFY_STRING(tmp_service->flap_detection_enabled),
> BOOLIFY_STRING(tmp_service->notifications_enabled),
> BOOLIFY_STRING(tmp_service->failure_prediction_enabled),
> BOOLIFY_STRING(tmp_service->process_performance_data),
> BOOLIFY_STRING(tmp_service->obsess_over_service),
> NULL_STRING(safeEventHandler),
> tmp_service->modified_attributes,
> BOOLIFY_STRING(tmp_service->has_been_checked),
> BOOLIFY_STRING(tmp_service->should_be_scheduled),
> BOOLIFY_STRING(tmp_service->is_flapping),
> tmp_service->current_state,
> tmp_service->last_hard_state,
> NULL_STRING(safePluginOutput),
> tmp_service->current_attempt,
> NULL_STRING(safeServiceCheckCommand),
> tmp_service->execution_time,
> tmp_service->latency,
> tmp_service->last_check,
> tmp_service->next_check,
> tmp_service->max_attempts,
> tmp_service->last_notification,
> tmp_service->next_notification,
> BOOLIFY_STRING(tmp_service->no_more_notifications),
> NULL_STRING(safePerfData),
> tmp_service->check_type);
>
> if(safeName) free(safeName);
> if(safeServiceDescription) free(safeServiceDescription);
> if(safeEventHandler) free(safeEventHandler);
> if(safePluginOutput) free(safePluginOutput);
> if(safeServiceCheckCommand) free(safeServiceCheckCommand);
> if(safePerfData) free(safePerfData);
> }
> break;
>
> default:
> snprintf(temp_buffer,sizeof(temp_buffer),"nagios-db: processStatus ignoring unknown NEB command %i",cmd);
> write_to_all_logs(temp_buffer,NSLOG_INFO_MESSAGE);
> return 0;
> break;
> }
>
> res = PQexec(pgconn,temp_buffer);
> if(!(PQresultStatus(res) == PGRES_COMMAND_OK || PQresultStatus(res) == PGRES_TUPLES_OK))
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: couldn't execute '%s' (%s)", temp_buffer, PQresultErrorMessage(res));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> else
> {
> if(atoi(PQgetvalue(res,0,0)) < 0)
> {
> char str[2048];
> snprintf(str,sizeof(str),"nagios-db: executed '%s' and got back %s", temp_buffer, PQgetvalue(res,0,0));
> write_to_all_logs(str,NSLOG_INFO_MESSAGE);
> }
> }
>
> PQclear(res);
>
> return 0;
> }
>
>
>
>
> ------------------------------------------------------------------------
>
>
>
> On Mar 10, 2005, at 8:57 PM, Robert Bilbrey wrote:
>
>> Hi Ben, upgraded Nagios back up to 2.0b2 and pulled the latest
>> nagios-db code from cvs. Still no joy (:
>> What would you suggest I do next ?
>> Thanks, Bob
>>
>>
>> postgresql version:
>> nagios=# select version();
>> version
>> -----------------------------------------------------------------------
>> -----------------------------------
>> PostgreSQL 7.4.6 on i686-pc-linux-gnu, compiled by GCC gcc (GCC)
>> 3.2.3 20030502 (Red Hat Linux 3.2.3-42)
>>
>> my makefile:
>> gcc -Wall -g -O2 -o inserter.o inserter.c -shared
>> -I/usr/local/src/nagios-2.0b2/include -I/usr/local/pgsql/include
>> /usr/local/pgsql/lib/libpq.a
>>
>> nagios.log with latest nagios-db cvs pull:
>>
>> [1110516022] Nagios 2.0b2 starting... (PID=8772)
>> [1110516022] LOG VERSION: 2.0
>> [1110516022] initializing nagios-db postgres inserter...
>> [1110516022] nagios-db: inserter locked into db
>> [1110516022] Event broker module '/usr/local/nagios/bin/inserter.o'
>> initialized successfully.
>> [1110516022] Warning: Host 'kcwebwt1' has no services associated with
>> it!
>> [1110516022] Warning: Contact 'brian' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'cheikh' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'dwain' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'eric' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'john' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'karen' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'liz' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'robert' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'russ' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'scott' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact 'van' is not a member of any contact
>> groups!
>> [1110516022] Warning: Contact group 'nagios-setup' is not used in any
>> hostgroup/service definitions or host/hostgroup/se
>> rvice escalations!
>> [1110516022] Finished daemonizing... (New PID=8774)
>> [1110516022] nagios-db: couldn't clear config info ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('OPX',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('clappwp1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('clbackw1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('clsqlwp1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('clwebwp1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('intranet',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcacct',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE
>> ,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcads',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
>> TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcadw1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE
>> ,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcmailfw1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,T
>> RUE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcmailw1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcparadox',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,T
>> RUE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcsecl1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRU
>> E,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcsqldb',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRU
>> E,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcsqlwd1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcsqlwp2',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcwebwd1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('kcwebwt1',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TR
>> UE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('pdoxtimer',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,T
>> RUE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('sunflower-chi-gw',TRUE,TRUE,TRUE,TRUE,TRUE
>> ,TRUE,TRUE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('sunflower-nor-gw',TRUE,TRUE,TRUE,TRUE,TRUE
>> ,TRUE,TRUE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('sunflower-op-gw',TRUE,TRUE,TRUE,TRUE,TRUE,
>> TRUE,TRUE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: couldn't configure host using 'select
>> configure_host('sunflowerKC',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE
>> ,TRUE,TRUE,FALSE)' ()
>> [1110516022] nagios-db: configured 23 hosts
>> [1110516022] nagios-db: couldn't configure hostgroup using 'select
>> new_hostgroup('sunshine-colo','Sunshine Colo')' ()
>>
>> Ben wrote:
>>
>>> First (and most important to you) I don't see anything in the code
>>> that make it obvious why you would get the "couldn't clear config
>>> info" message unless the command failed, but then you should have
>>> had some reason, and I don't see that. So that's still a mystery.
>>> Therefore, I'm going to blame the victim and ask what version of the
>>> postgres libs you have installed, and ask that you make sure you're
>>> really linking to them. Second, I recommend you use 2.0b2. It fixed
>>> problems I was having and didn't hurt anything. Given that you have
>>> the same problems on both versions, you might as well have them on
>>> the better one. :)
>>> Third, I just checked in a file that should fix the unhelpful
>>> "nagios-db: couldn't configure host using 'nagios-db: couldn't
>>> configure host using 'nagios-db: couldn't configure host us' ()"
>>> crap. That won't help your big
>>> issue, but it might help others in the future....
>>> On Thu, 10 Mar 2005, Robert Bilbrey wrote:
>>>
>>>> I had nagios 2.0b1 working with nagios-db on RHEL3. I decided to
>>>> upgrade to 2.0b2 and pulled the latest nagios-db code from cvs.
>>>> Everything compiled fine, dropped the db and recreated the db with
>>>> the new schema, but nagios would not start with the neb module. So
>>>> then I pulled the 0.91 archive, same problem. After deciding to
>>>> roll back to 2.0b1 and the nagios-db cvs snapshot that I had
>>>> working previously, I am still throwing the same errors. If I run
>>>> the "select empty_config()" from a psql session I am returned an
>>>> empty recordset, which is what I would expect. The following is
>>>> from the nagios log. Does anyone have any thoughts, I really need
>>>> to get this back online.
>>>> Thanks, Bob
>>>>
>>>> [1110500709] Nagios 2.0b1 starting... (PID=5391)
>>>> [1110500709] LOG VERSION: 2.0
>>>> [1110500709] initializing nagios-db postgres inserter...
>>>> [1110500709] nagios-db: inserter locked into db
>>>> [1110500709] Event broker module '/usr/local/nagios/bin/inserter.o'
>>>> initialized successfully.
>>>> [1110500709] Warning: Host 'kcwebwt1' has no services associated
>>>> with it!
>>>> [1110500709] Warning: Contact 'brian' is not a member of any
>>>> contact groups!
>>>> [1110500709] Warning: Contact 'cheikh' is not a member of any
>>>> contact groups!
>>>> [1110500709] Warning: Contact 'dwain' is not a member of any
>>>> contact groups!
>>>> [1110500709] Warning: Contact 'eric' is not a member of any contact
>>>> groups!
>>>> [1110500709] Warning: Contact 'john' is not a member of any contact
>>>> groups!
>>>> [1110500709] Warning: Contact 'karen' is not a member of any
>>>> contact groups!
>>>> [1110500709] Warning: Contact 'liz' is not a member of any contact
>>>> groups!
>>>> [1110500709] Warning: Contact 'robert' is not a member of any
>>>> contact groups!
>>>> [1110500709] Warning: Contact 'russ' is not a member of any contact
>>>> groups!
>>>> [1110500709] Warning: Contact 'scott' is not a member of any
>>>> contact groups!
>>>> [1110500709] Warning: Contact 'van' is not a member of any contact
>>>> groups!
>>>> [1110500709] Warning: Contact group 'nagios-setup' is not used in
>>>> any hostgroup/service definitions or host/hostgroup/service escala
>>>> tions!
>>>> [1110500709] Finished daemonizing... (New PID=5393)
>>>> [1110500709] nagios-db: couldn't clear config info ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure ho' (
>>>> )
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> ' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host'
>>>> ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> ' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> usi' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> usi' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> u' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> u' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> us' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> usi' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> using 'nag' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> using 'nag' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> using 'na' ()
>>>> [1110500709] nagios-db: couldn't configure host using 'nagios-db:
>>>> couldn't configure host using 'nagios-db: couldn't configure host
>>>> using' ()
>>>> [1110500709] nagios-db: configured 23 hosts
>>>> [1110500709] nagios-db: couldn't configure hostgroup using
>>>> 'nagios-db: couldn't configure hostgroup using 'nagios' ()
>>>> [1110500709] Caught SIGSEGV, shutting down...
>>>>
>>>>
>>>> -------------------------------------------------------
>>>> SF email is sponsored by - The IT Product Guide
>>>> Read honest & candid reviews on hundreds of IT Products from real
>>>> users.
>>>> Discover which products truly live up to the hype. Start reading now.
>>>> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
>>>> _______________________________________________
>>>> Nagios-db-devel mailing list
>>>> Nag...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/nagios-db-devel
>>>>
>>> -------------------------------------------------------
>>> SF email is sponsored by - The IT Product Guide
>>> Read honest & candid reviews on hundreds of IT Products from real
>>> users.
>>> Discover which products truly live up to the hype. Start reading now.
>>> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
>>> _______________________________________________
>>> Nagios-db-devel mailing list
>>> Nag...@li...
>>> https://lists.sourceforge.net/lists/listinfo/nagios-db-devel
|