[Nagios-devel] AW: New event broker module for DB storage...
Posted: Mon Jan 09, 2006 9:33 am
Hi Ethan,
i installed the new module and found the following problem.
It should only occur if you use a mysql5.x version.
The table ndo_conninfo contains a column called "connection" which is a
reserved word in mysql5.x, causing the insert statement in db.c/line 296 to
fail.
I made a small patch which replaces "connection" with "connect_sink" at two
places to make it run for me. Maybe it would be more clean, if also the
connection member of the ndo2db_idi structure would be renamed. Maybe even
the NDO_API_CONNECTION. But i didn't want to mess around in your code.
Greetings from munich,
Gerhard
diff -Naur ndoutils-12272005/db/ndo-mysql.sql
ndoutils-12272005-mysql5/db/ndo-mysql.sql
--- ndoutils-12272005/db/ndo-mysql.sql 2005-12-27 20:17:19.000000000 +0100
+++ ndoutils-12272005-mysql5/db/ndo-mysql.sql 2006-01-09
18:16:05.990545150 +0100
@@ -145,7 +145,7 @@
`agent_name` varchar(32) NOT NULL default '',
`agent_version` varchar(8) NOT NULL default '',
`disposition` varchar(16) NOT NULL default '',
- `connection` varchar(16) NOT NULL default '',
+ `connect_sink` varchar(16) NOT NULL default '',
`connect_type` varchar(16) NOT NULL default '',
`connect_time` datetime NOT NULL default '0000-00-00 00:00:00',
`disconnect_time` datetime NOT NULL default '0000-00-00 00:00:00',
diff -Naur ndoutils-12272005/src/db.c ndoutils-12272005-mysql5/src/db.c
--- ndoutils-12272005/src/db.c 2005-12-27 20:17:19.000000000 +0100
+++ ndoutils-12272005-mysql5/src/db.c 2006-01-09 18:18:02.028791972 +0100
@@ -293,7 +293,7 @@
ts=ndo2db_db_timet_to_sql(idi,idi->data_start_time);
/* record initial connection information */
- if(asprintf(&buf,"INSERT INTO %s SET instance_id='%lu',
connect_time=NOW(), last_checkin_time=NOW(), bytes_processed='0',
lines_processed='0', entries_processed='0', agent_name='%s',
agent_version='%s', disposition='%s', connection='%s', connect_type='%s',
data_start_time=%s"
+ if(asprintf(&buf,"INSERT INTO %s SET instance_id='%lu',
connect_time=NOW(), last_checkin_time=NOW(), bytes_processed='0',
lines_processed='0', entries_processed='0', agent_name='%s',
agent_version='%s', disposition='%s', connect_sink='%s', connect_type='%s',
data_start_time=%s"
,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONNINFO]
,idi->instance_id
,idi->agent_name
Also available at
http://people.consol.de/~lausser/nagios ... sql5.patch
Apply it with:
tar zxvf ndoutils-12272005.tar.gz
patch -d ndoutils-12272005 -p1 < ndoutils-12272005-mysql5.patch
This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]
i installed the new module and found the following problem.
It should only occur if you use a mysql5.x version.
The table ndo_conninfo contains a column called "connection" which is a
reserved word in mysql5.x, causing the insert statement in db.c/line 296 to
fail.
I made a small patch which replaces "connection" with "connect_sink" at two
places to make it run for me. Maybe it would be more clean, if also the
connection member of the ndo2db_idi structure would be renamed. Maybe even
the NDO_API_CONNECTION. But i didn't want to mess around in your code.
Greetings from munich,
Gerhard
diff -Naur ndoutils-12272005/db/ndo-mysql.sql
ndoutils-12272005-mysql5/db/ndo-mysql.sql
--- ndoutils-12272005/db/ndo-mysql.sql 2005-12-27 20:17:19.000000000 +0100
+++ ndoutils-12272005-mysql5/db/ndo-mysql.sql 2006-01-09
18:16:05.990545150 +0100
@@ -145,7 +145,7 @@
`agent_name` varchar(32) NOT NULL default '',
`agent_version` varchar(8) NOT NULL default '',
`disposition` varchar(16) NOT NULL default '',
- `connection` varchar(16) NOT NULL default '',
+ `connect_sink` varchar(16) NOT NULL default '',
`connect_type` varchar(16) NOT NULL default '',
`connect_time` datetime NOT NULL default '0000-00-00 00:00:00',
`disconnect_time` datetime NOT NULL default '0000-00-00 00:00:00',
diff -Naur ndoutils-12272005/src/db.c ndoutils-12272005-mysql5/src/db.c
--- ndoutils-12272005/src/db.c 2005-12-27 20:17:19.000000000 +0100
+++ ndoutils-12272005-mysql5/src/db.c 2006-01-09 18:18:02.028791972 +0100
@@ -293,7 +293,7 @@
ts=ndo2db_db_timet_to_sql(idi,idi->data_start_time);
/* record initial connection information */
- if(asprintf(&buf,"INSERT INTO %s SET instance_id='%lu',
connect_time=NOW(), last_checkin_time=NOW(), bytes_processed='0',
lines_processed='0', entries_processed='0', agent_name='%s',
agent_version='%s', disposition='%s', connection='%s', connect_type='%s',
data_start_time=%s"
+ if(asprintf(&buf,"INSERT INTO %s SET instance_id='%lu',
connect_time=NOW(), last_checkin_time=NOW(), bytes_processed='0',
lines_processed='0', entries_processed='0', agent_name='%s',
agent_version='%s', disposition='%s', connect_sink='%s', connect_type='%s',
data_start_time=%s"
,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONNINFO]
,idi->instance_id
,idi->agent_name
Also available at
http://people.consol.de/~lausser/nagios ... sql5.patch
Apply it with:
tar zxvf ndoutils-12272005.tar.gz
patch -d ndoutils-12272005 -p1 < ndoutils-12272005-mysql5.patch
This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]