<author>Brenno J.S.A.A.F. de Winter, De Winter Information Solutions</author>
<author>Arjen Baart, Andromeda Technology & Automation</author>
- <date>November 07, 2002.</date>
+ <date>November 15, 2002.</date>
<docinfo>
- <infoitem label="Version">0.21</infoitem>
+ <infoitem label="Version">0.22</infoitem>
</docinfo>
</titlepage>
Combined chapters 4 through 7 into one chapter (4).
</col>
</row>
+ <row>
+ <col>0.22</col><col>Arjen Baart</col><col>Nov 15, 2002</col>
+ <col>
+ Added parameters of monitored objects.
+ </col>
+ </row>
</table>
</section>
well be installed on a single system.
</para>
<para>
-When events<footnote>A signal can be the outcome of process that finished,
+To monitor a system, Gnucomo uses two kinds of input: <emph>event</emph> and
+<emph>parameters</emph>. Events occur on a system while it is running and reflect
+the transient behaviour of the system.
+Parameters reflect the current state of the system.
+The most obvious way to gather events from a monitored system is to read
+the system log files.
+Examples of events are IP packets that are rejected by the firewall or clients
+that access the http daemon.
+Parameters are obtained for example by reading configuration files or kernel
+data structures.
+Examples of parameters are the size and free space of a filesystem or
+the users that are listed in the password file.
+Both kinds of input are obtained actively or passively, i.e. by installing probe
+agents in the system which regularly aquire the system's parameters or passively
+by sending the output of programs to the Gnucomo server.
+</para>
+<para>
+When signals<footnote>A signal can be the outcome of process that finished,
logbook entries, warnings from intrusion detection systems,
-etc. </footnote> happen they will be stored in a file.
+etc. </footnote> arrive they will be stored in a file.
When this file is delivered to a certain directory a daemon will detect
this and start the transfer of the file. The file will be transferred
to the central application or the client. This transfer will be triggered
<para>
<picture src="architecture.png" eps="architecture"/>
+</para>
+<para>
Illustration 1 Basic overview of the processes on the server.
</para>
action is taken in a certain amount of time.
</item>
</itemize>
+
+<subsection>
+<heading>System Parameters</heading>
+
+<para>
+Gnucomo maintains the operational parameters of a monitored system for a
+number of reasons.
+The most important reason is to create notifications when somthing about a
+parameter changes while the parameter is not supposed to change.
+Such a change may be intended by the system administrator, e.g. when a
+package is upgraded, or there may be something wrong.
+In any case, you will want to know about a change in your system when it happens.
+Furthermore, a change history of a parameter's values will come in
+handy when you want to look back in time and figure out
+what happened in the past.
+Another usefull application of parameters concerns the maintenance of a
+large number of similar systems.
+When the parameters of each system are reported regularly to Gnucomo,
+deviations from the 'standard' system configuration can be easily spotted.
+</para>
+<para>
+Some properties of parameters are supposed to change regularly.
+A changed value of such a property will of course not lead to any
+notification.
+On the other hand, the change history of these parameters may provide
+interesting information about the monitored system.
+This leads to the distiction between static and dynamic properties of parameters.
+The difference between dynamic and static properties manifests itself mainly
+in the change history of the parameter's property.
+Dynamic properties typically have a change record once a day or even a couple
+of times a day.
+Change records for static properties are usually months apart.
+</para>
+<para>
+The state of parameters is scanned or probed regularly on a client system
+and reported to the Gnucomo server.
+These reports can be created in a variety of ways.
+For example, filesystems are reported with 'df', installled packages with 'rpm -qa',
+users by reading /etc/passwd, etc.
+Many other probing methods may be implemented.
+Each report from a probe holds the current value of several parameters.
+Gnucomo will check each property of these parameters against the stored knwon value.
+If the property's value changed, the actual value in the database is updated
+and a record is added to the change history of the parameter.
+</para>
+</subsection>
</section>
<section>
- <heading>Web interface.</heading>
+ <heading>Web interface</heading>
<para>
The web interface will used to interact with the user.
be set per server. The priority mechanism is a simple system of five
categories (can be more or less).
</para>
-<para/>
</section>
<section>
</subsection>
<subsection>
+<heading>history</heading>
+<para>
+The history table records all changes to properties of parameters.
+</para>
+
+<subsubsection>
+<heading>The fields</heading>
+<para>
+The fields of the <emph>history</emph> table are listed below:
+</para>
+<table cpos='lllp{6cm}'>
+ <thead>
+ <col> Fieldname </col> <col> Fieldtype </col> <col> Size </col>
+ <col> Remarks </col>
+ </thead>
+ <row>
+ <col>paramid</col><col>bigint</col><col>8</col>
+ <col>The parameter to which this history belongs. Refers to the parameter table</col>
+ </row>
+ <row>
+ <col>modified</col><col>timestamp</col><col> </col>
+ <col>Time at which the property value or parameter changed</col>
+ </row>
+ <row>
+ <col>change_nature</col><col>enum</col><col> </col>
+ <col>Parameter created to destroyed; property value changed</col>
+ </row>
+ <row>
+ <col>changed_property</col><col>text</col><col> </col>
+ <col>Name of the parameter's property that changed.</col>
+ </row>
+ <row>
+ <col>new_value</col><col>text</col><col> </col>
+ <col>The new actual value of the property at the time of modification</col>
+ </row>
+ <row>
+ <col>remark</col><col>text</col><col> </col>
+ <col>A short explanation of why the property changed</col>
+ </row>
+</table>
+
+<para>
+Each time something about a parameter changes, this is recorded in the
+change history of the paraneter.
+When such a change happens, one of three things may occur to a parameter,
+as stated in the 'change_nature' field:
+
+<enumerate>
+<item>A new parameter is created.</item>
+<item>The value of one of the properties was altered.</item>
+<item>The parameter is removed.</item>
+</enumerate>
+
+When a parameter is created or destroyed, the fields 'changed_property' and
+'new_value' are irrelevant.
+</para>
+
+</subsubsection>
+</subsection>
+
+<subsection>
<heading>log & log_adv. </heading>
<para>
</para>
<table cpos='lp{6cm}'>
<thead>
- <col>
- <para>Fieldname</para>
- </col>
- <col>
- <para>Sample data</para>
- </col>
+ <col> Fieldname </col>
+ <col> Sample data </col>
</thead>
<row>
- <col>
- <para>Objectid</para>
- </col>
- <col>
- <para>1</para>
- </col>
+ <col> Objectid </col>
+ <col> 1 </col>
</row>
<row>
- <col>
- <para>Objectname</para>
- </col>
- <col>
- <para>webber.dewinter.com</para>
- </col>
+ <col> Objectname </col>
+ <col> webber.dewinter.com </col>
</row>
<row>
- <col>
- <para>Objectcode</para>
- </col>
- <col>
- <para>7f0100</para>
- </col>
+ <col> Objectcode </col>
+ <col> 7f0100 </col>
</row>
<row>
- <col>
- <para>Scp_enabled</para>
- </col>
- <col>
- <para>T</para>
- </col>
+ <col> Scp_enabled </col>
+ <col> T </col>
</row>
<row>
- <col>
- <para>Scp_inet</para>
- </col>
- <col>
- <para>192.168.221.212</para>
- </col>
+ <col> Scp_inet </col>
+ <col> 192.168.221.212 </col>
</row>
<row>
- <col>
- <para>Mail_enabled</para>
- </col>
- <col>
- <para>T</para>
- </col>
+ <col> Mail_enabled </col>
+ <col> T </col>
</row>
<row>
- <col>
- <para>Mail_from</para>
- </col>
- <col>
- <para>
- <reference href="mailto:gnucomo@maintenance.dewinter.com">gnucomo@maintenance.dewinter.com</reference>
- </para>
- </col>
+ <col> Mail_from </col>
+ <col> <reference href="mailto:gnucomo@maintenance.dewinter.com">gnucomo@maintenance.dewinter.com</reference> </col>
</row>
<row>
- <col>
- <para>Sms_enabled</para>
- </col>
- <col>
- <para>T</para>
- </col>
+ <col> Sms_enabled </col>
+ <col> T </col>
</row>
<row>
- <col>
- <para>Sms_number</para>
- </col>
- <col>
- <para>06-XXXXXXXX</para>
- </col>
+ <col> Sms_number </col>
+ <col> 06-XXXXXXXX </col>
</row>
<row>
- <col>
- <para>Fax_enabled</para>
- </col>
- <col>
- <para>T</para>
- </col>
+ <col> Fax_enabled </col>
+ <col> T </col>
</row>
<row>
- <col>
- <para>Fax_number</para>
- </col>
- <col>
- <para>0318-XXXXXX</para>
- </col>
+ <col> Fax_number </col>
+ <col> 0318-XXXXXX </col>
</row>
<row>
- <col>
- <para>Object_description</para>
- </col>
- <col>
- <para>19 inch 4 units, AMD-300 with two 27Gb disks (RAID-0), 256Mb memory</para>
- </col>
+ <col> Object_description </col>
+ <col> 19 inch 4 units, AMD-300 with two 27Gb disks (RAID-0), 256Mb memory </col>
</row>
<row>
- <col>
- <para>Object_owner</para>
- </col>
+ <col> Object_owner </col>
<col>
<para>Brenno de Winter</para>
<para>De Winter Information Solutions</para>
</col>
</row>
<row>
- <col>
- <para>Physical_location</para>
- </col>
+ <col> Physical_location </col>
<col>
<para>Internet Provider XYZ</para>
<para>Your street here 38</para>
<para>9999 XX YOUR CITY</para>
<para>THE NETHERLANDS</para>
<para>Phone: +31 XXX XXX XXX</para>
- <para/>
+
<para>Dataroom. System: Q7845</para>
</col>
</row>
<row>
- <col>
- <para>Remark</para>
- </col>
+ <col> Remark </col>
<col>
<para>A replacement system is available at the office location. The following persons have been authorized to enter the data room at the ISP:</para>
<para>* Arjen Baart</para>
<heading>The relationships.</heading>
<para>
-Relationshiips with other tables:
+Relationships with other tables:
</para>
<table cpos='llp{8cm}'>
</subsection>
<subsection>
+<heading>parameter</heading>
+<para>
+The parameter table stores the operational parameters of a monitored object.
+The parameters of an object describe the object's resources and configurations.
+For each object, a large set of parameters can be defined. They range from
+anything like file systems and installed packages to the system's users.
+</para>
+
+<subsubsection>
+<heading>The fields</heading>
+<para>
+The fields of the <emph>parameter</emph> table are listed below:
+</para>
+<table cpos='lllp{6cm}'>
+ <thead>
+ <col> Fieldname </col> <col> Fieldtype </col> <col> Size </col>
+ <col> Remarks </col>
+ </thead>
+ <row>
+ <col>paramid</col><col>bigserial</col><col>8</col>
+ <col>Uniquely identifies the parameter. Used in property and history tables.</col>
+ </row>
+ <row>
+ <col>objectid</col><col>bigint</col><col>8</col>
+ <col>The object of which this is a parameter. Refers to the object table.</col>
+ </row>
+ <row>
+ <col>name</col><col>text</col><col> </col>
+ <col>Name of the parameter to identify the resource</col>
+ </row>
+ <row>
+ <col>class</col><col>text</col><col> </col>
+ <col>Similar parameters are in the same class</col>
+ </row>
+ <row>
+ <col>description</col><col>text</col><col> </col>
+ <col>A verbose description of the parameter</col>
+ </row>
+
+</table>
+
+<para>
+The combination of objectid, name and class must be unique.
+</para>
+
+</subsubsection>
+<subsubsection>
+<heading>Sample data</heading>
+
+<para>
+The table below lists a few examples of parameters
+</para>
+<table cpos='lllll'>
+ <thead>
+ <col>paramid</col><col>objectid</col><col>name</col><col>class</col><col>description</col>
+ </thead>
+ <row>
+ <col>1</col><col>1</col><col>/</col><col>filesystem</col><col>The root filesystem</col>
+ </row>
+ <row>
+ <col>2</col><col>1</col><col>/home</col><col>filesystem</col><col>Our users' homedirs</col>
+ </row>
+ <row>
+ <col>3</col><col>1</col><col>glibc</col><col>package</col><col>The standard C library</col>
+ </row>
+ <row>
+ <col>4</col><col>1</col><col>arjen</col><col>user</col><col>Arjen Baart</col>
+ </row>
+</table>
+</subsubsection>
+</subsection>
+
+<subsection>
<heading>priority</heading>
<para>
</subsection>
<subsection>
+<heading>property</heading>
+<para>
+The property table stores the actual values of the properties of
+operational parameters of a monitored object.
+</para>
+
+<subsubsection>
+<heading>The fields</heading>
+<para>
+The fields of the <emph>property</emph> table are listed below:
+</para>
+<table cpos='lllp{6cm}'>
+ <thead>
+ <col> Fieldname </col> <col> Fieldtype </col> <col> Size </col>
+ <col> Remarks </col>
+ </thead>
+ <row>
+ <col>paramid</col><col>bigint</col><col>8</col>
+ <col>The parameter to which this property belongs. Refers to the parameter table</col>
+ </row>
+ <row>
+ <col>name</col><col>text</col><col> </col>
+ <col>Name of the property</col>
+ </row>
+ <row>
+ <col>value</col><col>text</col><col> </col>
+ <col>The current value of the property</col>
+ </row>
+ <row>
+ <col>type</col><col>enum</col><col> </col>
+ <col>Dynamic or Static</col>
+ </row>
+ <row>
+ <col>minimum</col><col>float</col><col>8</col>
+ <col>The minimum value of the property (for numerical properties only)</col>
+ </row>
+ <row>
+ <col>maximum</col><col>float</col><col>8</col>
+ <col>The maximum value of the property (for numerical properties only)</col>
+ </row>
+
+</table>
+
+</subsubsection>
+<subsubsection>
+<heading>Sample data</heading>
+
+<para>
+The table below lists a few examples of properties
+</para>
+<table cpos='llllll'>
+ <thead>
+ <col>paramid</col><col>name</col><col>value</col>
+ <col>type</col><col>minimum</col><col>maximum</col>
+ </thead>
+ <row>
+ <col>1</col><col>size</col><col>400000</col>
+ <col>STATIC</col><col>100000</col><col>999999999</col>
+ </row>
+ <row>
+ <col>1</col><col>used</col><col>200000</col>
+ <col>DYNAMIC</col><col>50000</col><col>400000</col>
+ </row>
+ <row>
+ <col>2</col><col>size</col><col>3000000</col>
+ <col>STATIC</col><col>100000</col><col>999999999</col>
+ </row>
+ <row>
+ <col>2</col><col>used</col><col>2000000</col>
+ <col>DYNAMIC</col><col>50000</col><col>2700000</col>
+ </row>
+ <row>
+ <col>3</col><col>version</col><col>2.2.5-39</col>
+ <col>STATIC</col><col>0</col><col>0</col>
+ </row>
+</table>
+</subsubsection>
+</subsection>
+
+<subsection>
<heading>service</heading>
<para>