From: arjen Date: Mon, 9 Sep 2002 07:21:19 +0000 (+0000) Subject: (1.0.D003) Design documentation X-Git-Tag: V0_0_1~5 X-Git-Url: http://www.andromeda.nl/gitweb/?p=gnucomo.git;a=commitdiff_plain;h=dc82315069a8a481ecdada9595178ac6ab070ec9 (1.0.D003) Design documentation --- diff --git a/doc/design.xml b/doc/design.xml new file mode 100644 index 0000000..f14ef8f --- /dev/null +++ b/doc/design.xml @@ -0,0 +1,193 @@ + + + + + + + + + + Gnucomo - Computer Monitoring + Arjen Baart <arjen@andromeda.nl> + Brenno de Winter<brenno@dewinter.com> + July 12, 2002 + + 0.1 + Andromeda Technology & Automation + De Winter Information Solutions + + + + + + + + +Introduction + + +Gnucomo is a system to monitor computer systems. +This document describes the design of the Gnucomo applications +and is based upon the development manifest. + + + + + +Architecture + + +The architecture of gnucomo is shown in the +dataflow diagram below: + + + + + + + +Architectural items to consider: + +Active and passive data aquisition +Monitoring static and dynamic system parameters +Upper and lower limits for system parameters + + + + +Existing log analysis tools: logwatch, analog. + + + + +System design + + +Gnucomo is a collection of different application programs, +rather than a single application. +All these application programs revolve around the Gnucomo +database as described in the manifest. + + +
+Database design + + +Log entries are stored in a database with at least the following fields: + +hostname +timestamp +service (kernel, daemon, ...) +Log message + + +
+ +
+Configuration + + +Configurational parameters are stored in a XML formatted configuration file. +The config file contains a two-level hierarchy. +The first level denotes the section for which the parameter is used +and the second level is the parameter itself. +Both sections and parameters are elements in XML terminology. +The top-level (root) element is the configuration tree itself. +The root element must have the same name as the application's name +for which the configuration is intended. +The level-1 elements are sections of the configuration tree. +Within these section elements, the configuration has several parameter elements. +Each parameter is an element by itself. +The element's name is the name of the parameter, just as a section +element's name is the name of the section. +The content of the parameter element is the value of the parameter. +Attributes in either section elements or parameter elements are not used. + + +The configuration file is located in two places. +The is a system wide configuration in +/usr/local/etc/gnucomo.conf and each user may +have his or her own configuration in ~/.gnucomo.conf. +The value of a user-specific configuration parameter overrides +the system-wide value. + + +At the moment, the gnucomo configuration has one section, holding +four parameters which define how to access the gnucomo database: + +type +name +user +password + + +The type parameter must have the content PostgreSQL. +Other database systems are not supported yet. + + + +gnucomo_config class + + +Each Gnucomo application should have exectly one object of the +gnucomo_config to obtain its configurational +parameters. +The following methods are supported in this class: + + + + + read(String name) + + Reads the XML formatted configuration files from + /usr/local/etc/<name>.conf and + ~/.<name>.conf. + + + + + String find_parameter(String section, String param) + + Return the value of the parameter param in + section section. + + + + + String Database() + + Return the database access string to be used for the PgDatabase constructor. + + + + + + + +
+ +
+Design ideas + + +Use of a neural network to analyse system logs: + +Classify words +Classify message based on word classification + + + +
+ +
+ +
+
diff --git a/test/t0003a.sh b/test/t0003a.sh new file mode 100644 index 0000000..ef44ed0 --- /dev/null +++ b/test/t0003a.sh @@ -0,0 +1 @@ +xmllint --noout --valid doc/design.xml