1 ??? 12, 2020 - Release 0.0.13
2 ====================================
7 - logrunner is statically linked so it can be copied to different systems,
8 32 bit or 64 bit, without library dependencies.
9 - Save the input in an XML file if it can not be stored in the database
10 because the database is not available or the XML parser returns an error.
11 The directory where the XML file is stored is defined in the configuration file,
12 element "spool/directory".
18 - Cleanup abuse records only for subnets smaller than /16.
23 - Resolve a hostname before adding to the abuses.
28 - Added a new group daemon and created additional permissions to the database.
29 - Cleaned up the COLUMN recognized from the TABLE logng
34 - Put the password for logging into the database between quotes (').
35 - When removing an object, clean up logs, parameters and notifications.
39 Dec 12, 2007 - Release 0.0.12
40 ====================================
45 - New options added for logrunner:
46 -l <file>: Read input from logfile <file>.
47 -s <file>: Use <file> as the status file instead of the default.
50 - Logrunner outputs debug information only when the -v option
51 is added on the command line.
53 - Buffer overflow problem in logrunner with input lines of more than 4096
59 - Added a new script gcm_maintenance.php to cleanup the database
60 and check referential integrity. Purging old log entries is
61 removed from the gcm_daemon script.
66 - Added fields to edit the range of a DYNAMIC property.
68 - The index.html page in now obsolete and redirects to index.php
70 - Added an option to perform one action on multiple notifications at once.
72 - When blocking a subnet, maintain the references to the log table from
73 all IP addresses in that subnet.
75 Nov 22, 2007 - Release 0.0.11
76 ====================================
81 - Added the class definition for a filesystem parameter.
82 - New issue type: 'property out of range'.
87 - Logrunner can select a specific host from a logfile, in case
88 syslogd acts as a log server for multiple systems.
89 This adds a new parameter (logile/fromhost) to the configuration
92 - Logrunner uses the official hostname (FQDN) instead of the
93 hostname returned by gethostname().
95 - Handling of parameters is greatly improved.
96 When creating a new parameter from an XML report which is fed into
97 gcm_input, the class definition is used as a template to fill in
98 the default values for the properties.
99 The class is also used as a template when a new property is added
100 to an existing parameter.
102 - DYNAMIC properties are now handled properly. Instead of making a
103 'changed property' notification, the value is checked against the
104 defined range for the property. An 'out of range' notification
105 is created when this condition is detected.
107 - Added a new filter which can directly read the output
108 of the UNIX df command. A brief description is added in
111 - Bugfix: Segmentation fault when reading an rpm package list
114 - New program: spamdetect.
115 Expirimental utility to log manually reported spam and have
116 Gnucomo detect the spammer's IP address.
118 - Added a number of usefull scripts, mainly for use in Gnucomo clients.
123 - The buttonbar at the top of each page is now a fixed 'div' element
124 instead of a framed page.
125 Contributed by Edwin Nadorp.
130 - Added a PHP5 module for the configuration class.
135 - The test script, gcmtest can run individual tests as opposed to running
136 all tests in sequence.
138 Oct 19, 2007 - Release 0.0.10
139 ====================================
141 - Improved method for finding PostgreSQL libraries in configure script.
146 - Fixed field declaration for PostgreSQL 7.4
147 - New tables: log_abuse, object_abuse and service_pattern
148 - Added general service patterns in the service 'ANY'
149 - Added new issue types.
150 - Log_adv and derived tables removed.
155 - Status files in /var/lib
156 - Rewrote most functions and datastructures into C++
157 - Use the Gnucomo (XML) configuration file
162 - Accept '/' and '.' characters within the service name in a system log.
163 When extracting the service name, the '/' character is not considered
164 part of that name, though.
165 - Textual changes in parameter notifications
166 - Experimental start of database OO abstraction layer.
167 - The '-' character is part of the service name.
168 - Skip the Email header when reading XML input.
173 - Bugfixes in the analysis of sendmail logs.
174 - Send email about open notifications to an object's users.
175 - Added log analysis for spam and abuse in sendmail log entries.
176 - Added pattern check on log entries with the service_pattern table.
177 - Create notifications from log entries with pattern matching.
178 - Record the date when adding the number of abuses for an IP address
185 - Added a form to edit user data.
186 - Added a view for the log analysis with a link from the log page.
187 - New page: Parameter classes administration.
188 - New page: Abuse list
189 - Added an interface to edit check patterns to the services page.
190 - Manually edit parameters.
191 - View logs from abusing IP addresses.
192 - Added an interface for editing issues.
193 - In the abuse list, IP addresses can be whitelisted.
194 - Improved interface for editing check patterns.
199 - Added test data for Problem Report 15, 16 and 17
204 - Added a list of related projects and introduced the concept of
205 dynamic parameters in the manifest.
207 Dec 24, 2003 - Release 0.0.9
208 ====================================
213 - Changed the type of log_adv_daemon_email.delay and log_adv_daemon_email.xdelay
214 from time to interval. These delays can be more than 24 hours.
219 - Catch an exception if we can not setup a database transaction.
225 - SQL_Escape(): Backslashes are correctly escaped with another backslash
226 - XML_Entities(): transform non-ASCII characters into hexadecimal entities.
227 - Do not add another parameter_notification record is the notification
228 already exists for that parameter.
229 - Catch exceptions from the database library.
230 - Major redesign. All input is handled through XML. Raw input data is first
231 transformed into an XML document for further processing.
232 A collection of polymorphic classes handle the transformation of various
233 input formats into XML.
234 - Classifying input data is done with a finite improbability calculation.
239 - Create separate notifications for different objects in service_check().
240 Fixes problem report 23.
241 - Change the notation for delays from "days+hh:mm:ss" to "days hh:mm:ss. This
242 fixes problem report 14.
243 - In linux_daemon_sendmail(), check the existence of '=' before using it as a
244 field separator. Fixes problem report 15.
250 - Optionally show or hide removed parameters from the parameter
256 - Added a User Manual, based upon the draft TUTORIAL
259 Sep 04, 2003 - Release 0.0.8
260 ====================================
265 - Fixed a few typos in the database creation script.
266 - BUGFIX: Secondary indices on log_notification were unique.
267 - Additional information in the 'usr' table: 'display_name' and 'email'.
268 - Added new issues and services.
273 - Fixed a namespace problem in message.cpp
274 - Fixed a gcc 2 vs. gcc 3 problem in gcm_input.cpp
275 - Reject log entries that are found to be invalid.
276 - A date without the time for the '-d <date> option will
277 assume midnight on that date.
282 - In PHP, the method configuration::read() will also read
283 a user-specific configuration from the home directory if a
284 PHP script is not run through the web server.
285 - Accept command argument '-c config' to use an alternate
286 gnucomo configuration.
288 db::Result() - Returns the result from the last query.
289 db::Field() - Returns the value of a single field.
290 db::new_notification() - Create a new notification in the database.
291 - Check the log table against the servies running on an object and
292 create notifications if a service is not supposed to be available
293 or is not known at all.
298 - Changed the gnucomo_database class to the new PostgreSQL
300 - Overloaded gnucomo_database::Field() to include the Result
301 from a query as an argument.
306 - New page to enter and modify services.
307 - The objects page provides an interface to edit the list of
308 services and users for an object.
313 - Reduced the amount of output from test scripts.
314 - Added output data that is expected from test scripts.
315 - New test: tests the database upgrade with gcm_daemon
316 - Overall test script: gcm_test. Runs all tests in sequence.
319 Aug 15, 2003 - Release 0.0.7
320 ====================================
325 - Added index to the history table to improve performance.
330 - Added a new section 'logging' with three configuration parameters:
331 method - Output method to use for logging.
332 destination - Name of the log output destination.
333 level - Log level: Verbose output if greater than 0.
334 - Added '-i' option for incremental parameter updates.
335 - Debug output to the log stream instead of cerr.
336 - Fixed namespace problems in XPath searches of the DOM.
337 - Moved string utility functions to a separate file.
338 - Different kinds of log files are parsed by a collection of objects
339 of different classes, derived from the base class line_cooker
340 Depending on the message content or the message_type element in
341 XML, one of these objects is selected.
342 - Logrunner is integrated with gcm_input. Although its functionality
343 is still limited, a connection between logrunner and gcm_input
344 is beginning to form.
349 - BUGFIX: Print an error message if a parameter does not have
351 - BUGFIX: undefined variables and indices when processing sendmail logs.
356 - BUGFIX: Convert special characters for HTML (<, >, and &) into
358 - BUGFIX: Removed parameters were somtimes shown on the wrong side
359 of the parameter difference page.
360 - Added performance measurement to the parameters page.
361 - Added editing of detailed object information.
363 Jul 15, 2003 - Release 0.0.6
364 ====================================
366 - Gcm_input reads IRIX system logs.
367 - Gcm_input exits without reading any input if the database connection fails.
368 - Gcm_input extracts the hostname out of the 'From:' or 'Message-Id:' line
370 - New member C++ function gnucomo_database::is_conected().
371 - New columns in the table 'log_adv_daemon_email': size, pri, relay,
372 status_details and dsn.
373 - Added several indices for the table 'log_adv_daemon_email'.
374 - In phpclasses/db.class.php: Added the database connection string as
375 an argument to the function copy_db_class.
376 - Gcm_daemon processes logs from sendmail.
377 - Fixed the PHP member function db::db_connect(). The Postgres connection
378 string is now passed as an argument to that function.
379 - Gcm_input reads cooked log entries from an XML input stream.
380 - New database tables: notification_check, notification_check_buffer,
381 notification_check_line and object_statistics.
382 - PHP function db::query() returns the result index.
383 - PHP function db::num_rows() accepts a result index as argument
384 (default = 0 -> use result from the previous query).
385 - New PHP function db::fetch_object().
386 - Gcm_daemon gathers statistics on parameters, notifications, etc. for all objects.
387 - The Objects web page uses the new object_statistics table.
388 - The Log web page shows the log one day at a time.
389 - Removed parameters are displayed in a shaded style.
391 Feb 21, 2003 - Release 0.0.5
392 ====================================
394 - The notifications web page keeps a record of each time a notification
395 is displayed. Either on a listing or in detail.
396 - Improved the table layout of the objects web page.
397 - In the users page of the web interface, you can add a new user and
398 make him/her a member of a group.
399 - Users can change their password through the users page of the web interface.
400 - Gcm_input also detects packages that are removed from the system.
401 - In gcm_input, determining the version number of a package in a RPM
402 list is improved. Only the last one or two parts of the string that
403 begin with a '-' and a number are considered the version.
404 - The C++ function gnucomo_database::new_notification() uses the SQL
405 function currval() to obtain the identification number
406 of the most recently created notification.
407 - The C++ class gnucomo_database prints the query on cerr, along
408 with the error message when the query results in an error.
409 - Removed the 'Change Password' image from the main menu.
410 Changing passwords is integrated in te users page.
411 - Added the 'form' class on table and td elements. This class is intended
412 for borderless tables that are used to layout HTML forms.
413 - A new style 'h2.error' for error reports in the stylesheet.
414 Put borders around the tables and cells in the web interface.
415 Added right-alignment for numbers and fixed width for timestamps.
416 - Gcm_daemon maintains the last notification identifier.
417 - Setup the groups and database permissions. The three groups
418 are: view, ops and admin.
419 - Added two new entries to the action table.
420 - All web interface pages use the page class. This provides for a
421 uniform session and database handling.
422 - Use our own error handler for PHP errors and warnings in the web interface.
423 - Added log, notification and parameter counters to the 'object' table.
424 Counting these things at the time a user interface needs them is
425 too slow. Other programs, like gcm_daemon en gcm_input should prepare
426 these counters for quick retrieval.
427 - Show the total number of Log entries, parameters and notifications
428 on the object page of the web interface.
429 - Added new tables to the database : log_adv_daemon and log_adv_daemon_email.
430 - Made gcm_daemon a 'proper' executable.
431 - Paths of included files in PHP scripts are more flexible.
432 - Gcm_daemon recognizes important start and stop events of various daemons
433 - Gcm_daemon checks for exiting daemons in the log entries.
434 - Directory structure of PHP scripts reorganized. PHP scripts that are included in
435 both gcm_daemon and the web interface are now in the directory src/phpclasses.
438 Feb 05, 2003 - Release 0.0.4
439 ====================================
441 - Added style parameters for diff-like table views and textarea elements.
442 - Display and handle notifications in the web interface.
443 - Display the difference of all package class parameters for two objects
444 in the web interface.
445 - New PHP class added: 'page'. This is a (sort-of abstract) base class
446 for all Gnucomo web interface pages. It hanldes the session, login,
447 opening the database and the head and tail of the web page.
448 - gcm_input creates notifications when a new package is discovered
449 in a 'rpm -qa' list or when the version of a package is changed.
450 - Bug fix: action.statuscode was in upper case.
451 - Added new tables to the database: parameter_class and parameter_notification.
452 - New C++ function: gnucomo_database::new_notification(). retruns the id number
453 of the newly created notification record.
454 - Added new records to the 'type_of_issue' table.
455 - Changed semantics of actionid 9 in the 'action' table.
456 - Bugfix in gcm_input: The hostname in a system log may contain
457 digits as well as letters.
458 - Added new fields to the 'type_of_issue' table.
460 Dec 06, 2002 - Release 0.0.3
461 ====================================
463 - Directory structure is reorganized and prepared for GNU configure.
464 - gcm_input sets the value of log.processed to FALSE when inserting a
465 new log entry into the database
466 - When a syslog entry arrives from last year, gcm_input subtracts one from the
467 year of arrival to create the year of the log entry.
468 - Gcm_input reads output from "rpm -qa" and enters packages in the parameter table.
469 - Changes to log and log_adv tables described in the manifest.
470 - Added description of gcm_daemon in the design.
471 - Added new program (in PHP): gcm_daemon.
472 - Added a check on the database version in gcm_damon.
473 - Database-login in gcm_damon can be done using TCP/IP or UNIX-sockets.
474 - Gcm_daemon processes iptables-records including ICMP support.
475 - Returning values with ICMP (bounced) are seperate and linked to the same logfile.
476 - Which each new version records that haven't been recognized are processed again
478 - Added program-specific database user and password in config file.
479 - Added new arguments to gnucomo_config::Database(): user and password.
480 If empty, default values are taken from the config file.
481 - Implemented a slightly functional web interface that shows some
482 output from the database.