Enterprise Control Configuration and Logging
Find a file
2020-08-10 16:13:33 +01:00
AlarmTool.m Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
AlertConfig.plist fix typo 2020-07-17 15:34:50 +01:00
ChangeLog Fix bug loading Alerter config ... should use the value from Control.plist if 2020-04-06 12:36:06 +01:00
Command.m Pass debug settings to child 2019-06-07 09:20:15 +01:00
config.guess Enterprise Control/Configuration/Logging package ... preliminary check in. 2012-02-19 11:59:22 +00:00
config.h.in Improve key entry code 2018-03-02 11:04:25 +00:00
config.make.in Make the configure script test for the availability of readpassphrase() in the 2015-10-28 20:08:04 +00:00
config.sub Enterprise Control/Configuration/Logging package ... preliminary check in. 2012-02-19 11:59:22 +00:00
configure Improve key entry code 2018-03-02 11:04:25 +00:00
configure.ac Improve key entry code 2018-03-02 11:04:25 +00:00
Console.m Rewrite launching to make the LaunchInfo instances control most of the work and to use individual timers for each instance with the aim of simplifying launch and shutdown logic and alarms 2020-06-24 13:26:31 +01:00
Control.m Pass debug settings to child 2019-06-07 09:20:15 +01:00
Control.plist Minor bugfixes and documentation improvements. 2020-07-03 15:02:15 +01:00
COPYING Fix a couple of types and, more importantly, documentation files accidentally 2012-10-12 16:59:04 +00:00
COPYING.LESSER Add copyright 2012-02-19 12:53:41 +00:00
EcAlarm.h improve commentds/doc 2020-07-20 13:16:30 +01:00
EcAlarm.m add audit alarms and improve message text 2020-07-17 18:33:02 +01:00
EcAlarmDestination.h provide an api for a separate object to monitor changes of the state of the alarm destination. 2020-07-16 13:35:39 +01:00
EcAlarmDestination.m provide an api for a separate object to monitor changes of the state of the alarm destination. 2020-07-16 13:35:39 +01:00
EcAlarmSinkSNMP.h Add gnustep PEN 2012-03-16 11:00:41 +00:00
EcAlarmSinkSNMP.m add audit alarms and improve message text 2020-07-17 18:33:02 +01:00
EcAlerter.h add support for alarm component matching 2020-07-16 14:15:36 +01:00
EcAlerter.m add support for alarm component matching 2020-07-16 14:15:36 +01:00
EcBroadcastProxy.h more doc tweaks 2012-10-12 15:18:33 +00:00
EcBroadcastProxy.m fix typos 2013-02-09 11:40:00 +00:00
ECCL-SNMP.odt fix minor typos 2014-10-24 12:56:43 +00:00
ECCL.h Enhancement for automated testing 2018-03-08 10:04:25 +00:00
EcClientI.h Rewrite launching to make the LaunchInfo instances control most of the work and to use individual timers for each instance with the aim of simplifying launch and shutdown logic and alarms 2020-06-24 13:26:31 +01:00
EcClientI.m Rewrite launching to make the LaunchInfo instances control most of the work and to use individual timers for each instance with the aim of simplifying launch and shutdown logic and alarms 2020-06-24 13:26:31 +01:00
EcCommand.m Track raised alarms so we don't send unnecessary clears 2020-07-31 12:55:04 +01:00
EcConsole.m In EcConsole, pass distantFuture to -runMode:beforeDate: to prevent 2016-07-20 14:05:11 +00:00
EcControl.m Avoid printing misleading address information for copy of original alarm 2020-08-10 16:13:33 +01:00
EcHost.h Backward compatibility user default name fixes 2012-10-05 11:31:23 +00:00
EcHost.m Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
EcLogger.h deprecate old error/alert methods 2020-01-27 15:27:57 +00:00
EcLogger.m Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
EcMemoryLogger.h improve memory usage reporting etc 2019-08-10 10:19:16 +01:00
EcProcess.h Add notifications about quitting 2020-07-23 07:11:26 +01:00
EcProcess.m Add notifications about quitting 2020-07-23 07:11:26 +01:00
EcTest.h Allow for connection already being invalid 2015-10-15 10:37:31 +00:00
EcTest.m Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
EcUserDefaults.h Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
EcUserDefaults.m Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
GNUmakefile Implement an interface to export memory usage statistics by loading 2015-07-15 08:41:14 +00:00
GNUmakefile.postamble improve cleanup for dist-clean 2019-03-14 14:39:03 +00:00
GNUmakefile.preamble More reliably system shutdown 2015-01-26 12:50:42 +00:00
GNUSTEP-MIB.txt add copyright 2013-04-29 10:25:29 +00:00
install-sh Enterprise Control/Configuration/Logging package ... preliminary check in. 2012-02-19 11:59:22 +00:00
local.make Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
LogTool.m Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00
NSFileHandle+Printf.h minor 64bit issues 2013-07-13 07:58:07 +00:00
NSFileHandle+Printf.m Add copyright 2012-02-19 12:53:41 +00:00
Operators.plist add option to allow any user to log in 2014-03-26 09:38:34 +00:00
README improve commentds/doc 2020-07-20 13:16:30 +01:00
README.COPYING Fix a couple of types and, more importantly, documentation files accidentally 2012-10-12 16:59:04 +00:00
README.SNMP fix typo and add a couple of notes 2015-08-07 18:17:59 +00:00
Terminate.m Many fixups/alterations to launch/shutdown of processes. Removed the 'strict' option to enforce a prefix on defaults keys, since it was really never used and just complicated things. 2020-07-03 11:50:25 +01:00

Getting started
===============

1. Make sure you have GNUstep installed

2. Type 'make' ... to build the code and the documentation

3. Read the documentation (point your web browser at the ECCL subdirectory)

4. (optional) Customise (see local.make) and do 'make clean'.

5. Install it (type 'make install') and try it out.

Key points ...

1. You may want to use 'defaults write NSGlobalDomain EcvEffectiveUser xxx'
where 'xxx' is your username, to tell the system it should be running as you.

2. Debug files are written in ~xxx/DebugLogs ...
look there to diagnose problems.

3. Configuration is in ~xxx/Data.  Specifically, you need to configure
~xxx/Data/Command/Control.plist, ~xxx/Data/Command/Operators.plist, and
~xxx/Data/Command/AlertConfig.plist before the Control server will start.
There are examples in the same directory as this README

The Control server reads the configuration information and acts as a central
point to which Command servers running on different hosts will connect (in
order to obtain configuration and in order to report problems to a central
point).  The Control server is also contacted by Console processes, which
provide a command line to control the operation of the system as a whole.
The Control server acts as an alarm destination for the entire system and
interfaces to SNMP.  It also provides email alerting facilities according
to alert rules defined in AlertConfig.plist 

The Command server handles launching and shutting down of processes and
monitoring their state.  When a process starts up it registers itself with
the Command server, and when it shuts down it unregisters itself.
A process is considered stable if it starts up, registers itself, and then
responds to the 'pings' that the Command server sends to it at intervals.
A process has to be working and registered with the Command server for some
time before it is considered stable.

In connection with this process management, the server will raise and clear
some alarms.
These alarms are all created with the 'processingError' event type
and the 'softwareProgramError' probable cause.  The alarms will have managed
object values consisting of the host the server is running on, the process
name 'Command', an empty instance value, and a component value consisting
of the full name of the process (process name and instance) to which they
apply.

The individual specific problems are:

Launch failed
  Raised when a process should have launched but has failed to do so within
  the permitted time (currently hard coded to 30 seconds).
  This can be immediately on attempting to launch (eg if the configuration
  is wrong, so there is no executable to launch), very shortly after launch
  (eg if the program crashes immediately), or at the end of the permitted
  time (eg the program fails to connect to and register itself with the
  Command server).
  This alarm should be cleared automatically once the process launches or if
  the process is told to quit from the Console.

Process hung
  Raised when a process which was working ceases to respond to the Command
  server.  This may be due to the process hanging up due to an internal
  problem, or may be due to some very slow operation (a temporary hangup)
  such as a long slow database query.  If the process recovers (and becomes
  stable), this alarm should automatically be cleared.
  If the process is manually quit it should also be cleared.

Process lost
  Raised when a process which was working ceases to exist (eg crashes) without
  cleanly shutting down (ie without telling the Command server it is shutting
  down before it does so).
  If the process is started again (and becomes stable), the alarm should
  automatically be cleared.

Started (audit information)
  An audit alarm clear, generated whenever a process launch completes, as an
  informational message.  The additional text part says why the process started:

  autolaunch
  Console launch command
  Console restart command
  started externally
  remote API request

Stopped (audit information)
  An audit alarm clear, generated whenever a process shutdown completes, as an
  informational message.  The additional text part says why the process stopped:

  process disabled in config
  Console quit command
  Console restart command
  quit all instruction
  stopped externally
  stopped (process lost)
  stopped (died with signal X)