Skip to content
This repository has been archived by the owner on Jan 15, 2019. It is now read-only.

Commit

Permalink
add max_logentries_age and max_acknowledgements_age to ido2db
Browse files Browse the repository at this point in the history
you can now set those two entries in ido2db.cfg to let ido2db
clean those tables periodically. By default they are not set.

refs #264
fixes #296
fixes #302
  • Loading branch information
Michael Friedrich committed Feb 23, 2010
1 parent 54defd1 commit daaa98d
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 2 deletions.
1 change: 1 addition & 0 deletions Changelog
Expand Up @@ -79,6 +79,7 @@ ENHANCEMENTS
* idoutils: change mysql db engine to innodb (no table locking, better transcations)
* idoutils: add --with-oracle-lib=/path/to/instantclient for runtime export of
LD_LIBRARY_PATH if instantclient not installed to path
* idoutils: add max_logentries_age and max_acknowledgements_age to ido2db (check ido2db.cfg)

FIXES

Expand Down
6 changes: 6 additions & 0 deletions module/idoutils/config/ido2db.cfg-sample.in
Expand Up @@ -171,6 +171,12 @@ max_eventhandlers_age=10080
# Keep external commands for 1 week
max_externalcommands_age=10080

# Keep logentries for 31 days
# max_logentries_age=44640

# Keep acknowledgements for 31 days
# max_acknowledgements_age=44640


# ***MORE HISTORICAL***

Expand Down
2 changes: 2 additions & 0 deletions module/idoutils/include/db.h
Expand Up @@ -29,6 +29,8 @@ typedef struct ndo2db_dbconfig_struct{
unsigned long max_hostchecks_age;
unsigned long max_eventhandlers_age;
unsigned long max_externalcommands_age;
unsigned long max_logentries_age;
unsigned long max_acknowledgements_age;
unsigned long trim_db_interval;
}ndo2db_dbconfig;

Expand Down
2 changes: 2 additions & 0 deletions module/idoutils/include/ido2db.h
Expand Up @@ -184,6 +184,8 @@ typedef struct ndo2db_dbconninfo_struct{
unsigned long max_hostchecks_age;
unsigned long max_eventhandlers_age;
unsigned long max_externalcommands_age;
unsigned long max_logentries_age;
unsigned long max_acknowledgements_age;
unsigned long trim_db_interval;
time_t last_table_trim_time;
time_t last_logentry_time;
Expand Down
10 changes: 9 additions & 1 deletion module/idoutils/src/db.c
Expand Up @@ -275,6 +275,8 @@ int ndo2db_db_init(ndo2db_idi *idi) {
idi->dbinfo.max_hostchecks_age = ndo2db_db_settings.max_hostchecks_age;
idi->dbinfo.max_eventhandlers_age = ndo2db_db_settings.max_eventhandlers_age;
idi->dbinfo.max_externalcommands_age=ndo2db_db_settings.max_externalcommands_age;
idi->dbinfo.max_logentries_age=ndo2db_db_settings.max_logentries_age;
idi->dbinfo.max_acknowledgements_age=ndo2db_db_settings.max_acknowledgements_age;
idi->dbinfo.trim_db_interval=ndo2db_db_settings.trim_db_interval;
idi->dbinfo.last_table_trim_time = (time_t) 0L;
idi->dbinfo.last_logentry_time = (time_t) 0L;
Expand Down Expand Up @@ -2161,7 +2163,7 @@ int ndo2db_db_trim_data_table(ndo2db_idi *idi, char *table_name, char *field_nam
char *ts[1];
int result = NDO_OK;

ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_db_trim_data_table() start\n");
ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_db_trim_data_table() start, time=%lu\n", t);

if (idi == NULL || table_name == NULL || field_name == NULL)
return NDO_ERROR;
Expand Down Expand Up @@ -2231,6 +2233,8 @@ int ndo2db_db_perform_maintenance(ndo2db_idi *idi) {

ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_db_perform_maintenance() start\n");

ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_db_perform_maintenance() max_logentries_age=%lu, max_ack_age=%lu\n", idi->dbinfo.max_logentries_age, idi->dbinfo.max_logentries_age);

/* get the current time */
time(&current_time);

Expand All @@ -2248,6 +2252,10 @@ int ndo2db_db_perform_maintenance(ndo2db_idi *idi) {
ndo2db_db_trim_data_table(idi, ndo2db_db_tablenames[NDO2DB_DBTABLE_EVENTHANDLERS], "start_time", (time_t) ((unsigned long) current_time - idi->dbinfo.max_eventhandlers_age));
if(idi->dbinfo.max_externalcommands_age>0L)
ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_EXTERNALCOMMANDS],"entry_time",(time_t)((unsigned long)current_time - idi->dbinfo.max_externalcommands_age));
if(idi->dbinfo.max_logentries_age>0L)
ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_LOGENTRIES],"logentry_time",(time_t)((unsigned long)current_time - idi->dbinfo.max_logentries_age));
if(idi->dbinfo.max_acknowledgements_age>0L)
ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_ACKNOWLEDGEMENTS],"entry_time",(time_t)((unsigned long)current_time - idi->dbinfo.max_acknowledgements_age));
idi->dbinfo.last_table_trim_time = current_time;
}

Expand Down
10 changes: 9 additions & 1 deletion module/idoutils/src/ido2db.c
Expand Up @@ -510,6 +510,10 @@ int ndo2db_process_config_var(char *arg){
ndo2db_db_settings.max_eventhandlers_age=strtoul(val,NULL,0)*60;
else if(!strcmp(var,"max_externalcommands_age"))
ndo2db_db_settings.max_externalcommands_age=strtoul(val,NULL,0)*60;
else if(!strcmp(var,"max_logentries_age"))
ndo2db_db_settings.max_logentries_age=strtoul(val,NULL,0)*60;
else if(!strcmp(var,"max_acknowledgements_age"))
ndo2db_db_settings.max_acknowledgements_age=strtoul(val,NULL,0)*60;

else if(!strcmp(var,"trim_db_interval"))
ndo2db_db_settings.trim_db_interval=strtoul(val,NULL,0);
Expand Down Expand Up @@ -538,7 +542,9 @@ int ndo2db_process_config_var(char *arg){
}
}

ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_process_config_var() config set: lock_file=%s, socket_type=%d, socket_name=%s, tcp_port=%d, db_servertype=%d, db_host=%s, db_port=%d, db_user=%s, db_pass=%s, db_name=%s, db_prefix=%s, max_timedevents_age=%lu, max_systemcommands_age=%lu, max_servicechecks_age=%lu, max_hostchecks_age=%lu, max_eventhandlers_age=%lu, max_externalcommands_age=%lu, trim_db_interval=%lu, ndo2db_user=%s, ndo2db_group=%s, debug_file=%s, debug_level=%d, debug_verbosity=%d, max_debug_file_size=%lu\n", lock_file, ndo2db_socket_type, ndo2db_socket_name, ndo2db_tcp_port, ndo2db_db_settings.server_type, ndo2db_db_settings.host, ndo2db_db_settings.port, ndo2db_db_settings.username, ndo2db_db_settings.password, ndo2db_db_settings.dbname, ndo2db_db_settings.dbprefix, ndo2db_db_settings.max_timedevents_age, ndo2db_db_settings.max_systemcommands_age, ndo2db_db_settings.max_servicechecks_age, ndo2db_db_settings.max_hostchecks_age, ndo2db_db_settings.max_eventhandlers_age, ndo2db_db_settings.max_externalcommands_age, ndo2db_db_settings.trim_db_interval, ndo2db_user, ndo2db_group, ndo2db_debug_level, ndo2db_debug_verbosity, ndo2db_max_debug_file_size);
ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_process_config_var() max_logentries=%lu, max_ack=%lu\n", ndo2db_db_settings.max_logentries_age, ndo2db_db_settings.max_acknowledgements_age);

//ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_process_config_var() config set: lock_file=%s, socket_type=%d, socket_name=%s, tcp_port=%d, db_servertype=%d, db_host=%s, db_port=%d, db_user=%s, db_pass=%s, db_name=%s, db_prefix=%s, max_timedevents_age=%lu, max_systemcommands_age=%lu, max_servicechecks_age=%lu, max_hostchecks_age=%lu, max_eventhandlers_age=%lu, max_externalcommands_age=%lu, trim_db_interval=%lu, ndo2db_user=%s, ndo2db_group=%s, debug_file=%s, debug_level=%d, debug_verbosity=%d, max_debug_file_size=%lu\n", lock_file, ndo2db_socket_type, ndo2db_socket_name, ndo2db_tcp_port, ndo2db_db_settings.server_type, ndo2db_db_settings.host, ndo2db_db_settings.port, ndo2db_db_settings.username, ndo2db_db_settings.password, ndo2db_db_settings.dbname, ndo2db_db_settings.dbprefix, ndo2db_db_settings.max_timedevents_age, ndo2db_db_settings.max_systemcommands_age, ndo2db_db_settings.max_servicechecks_age, ndo2db_db_settings.max_hostchecks_age, ndo2db_db_settings.max_eventhandlers_age, ndo2db_db_settings.max_externalcommands_age, ndo2db_db_settings.trim_db_interval, ndo2db_user, ndo2db_group, ndo2db_debug_level, ndo2db_debug_verbosity, ndo2db_max_debug_file_size);

ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_process_config_var() end\n");

Expand All @@ -564,6 +570,8 @@ int ndo2db_initialize_variables(void){
ndo2db_db_settings.max_hostchecks_age=0L;
ndo2db_db_settings.max_eventhandlers_age=0L;
ndo2db_db_settings.max_externalcommands_age=0L;
ndo2db_db_settings.max_logentries_age=0L;
ndo2db_db_settings.max_acknowledgements_age=0L;
ndo2db_db_settings.trim_db_interval=(unsigned long)DEFAULT_TRIM_DB_INTERVAL; /* set the default if missing in ido2db.cfg */

ndo2db_log_debug_info(NDO2DB_DEBUGL_PROCESSINFO, 2, "ndo2db_initialize_variables() end\n");
Expand Down

0 comments on commit daaa98d

Please sign in to comment.