Nagios Interoperability
Thibault Genessay
tgenessay at aliadis.fr
Tue Aug 30 10:58:31 CEST 2005
Dear list members
I have been following the discussion about "Nagios 3.0" with great
interest as like many of us I am using Nagios together with other tools,
some being GPL'd, some being proprietary. Until now, I had been using
Nagios for itself, grabbing its checks through the NEB and putting them
into a DB. But today I want to go further and make the NEB directly chat
with our monitoring system.
The problem is that it implies that some module of our proprietary
system include headers from Nagios, and even though this module does not
link with Nagios libs, I think the GPL forces it to be also GPL'd. Then,
to compile this module, one would need the headers from the rest of the
sytem, making it GPL as a whole. Which is something we don't want.
However, I have thought of a workaround but I did not see (or
understood) what the GPL states about it. It is binary compatibility.
Rather than including our system headers, the NEB could send data in an
apparently unordered manner and our system get this data and
automagically build the structures back from it. This avoids the NEB and
the system to share any header file. This is the agressive solution that
nobody would like, but is kinda legally possible. (even if it needs to
be reworked by a jurist).
I have thought of a more profitable way to solve the problem. Strictly
speaking, there is not much difference between the two following systems:
Nagios --- checks ---> NEB -------> DB <---- queries ---- Frontend
proprietary application
Nagios --- checks ---> NEB ---- TCP/IP -----> Frontend proprietary
application
The first one is legal, the second is not because the NEB and the
frontend app. should share headers, making both of them GPL'd. But when
we think of it, the only difference is that the first one uses a DB
which, just like Nagios-DB, somewhat reproduces the binary structures of
Nagios (compare Nagios-DB's Service_Check table with Nagios'
nebstruct_service_check). Ok, Nagios-DB is also under the GPL, but
anybody could basically write a NEB that writes into a proprietary DB
schema, and then use the data in a completely non-GPL manner.
But if we want the apps to talk directly rather than through the DB, we
need them to be open source which is not compatible with our businesses
(after all, we are selling stuff, aren't we ?). The possibility I have
seen is to make a sub-part of Nagios LGPL'd so that a proprietary
application could link with this library without any problem -- as
Nagios could, hopefully.
This lib would include modified versions of the following headers:
objects.h
nebstructs.h
nebcallbacks.h
common.h
in which we would only keep the structure definitions. The rest of the
defs could stay in the GPL part. Those headers, if properly written
could be included from C++ or/and Windows applications, which is not
something bad on the inter-operability point of view. The lib would as
well include the serialization and unserialization functions.
I think this modification is strategic for the Nagios project because it
would premit it to be shipped with important business applications that
would otherwise use another basis. The community would benefit from a
powerful way to externalize data from Nagios and it could eventually
promote the way Nagios perform checks and report results to an
industry-wide standard.
Thoughts , comments ?
--
Thibault GENESSAY
ALIADIS
www.aliadis.fr
Tel. +(33) 870 723 724
Fax +(33) 4 72 13 90 40
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
More information about the Developers
mailing list