Enterprise Control Configuration and Logging
Find a file
2025-01-20 11:58:37 +00:00
AlarmTool.m Fix typo in default repair text 2020-11-12 04:21:25 +00:00
AlertConfig.plist ReminderInterval applies to reminders, not the original raising of alarm 2022-02-18 09:57:48 +00:00
ChangeLog Improve resilience of Command reconnecting to Control after loss. 2024-04-29 15:51:19 +01:00
Command.m Fixes for Console return status 2021-06-30 09:45:33 +01:00
config.guess Update config guess 2024-11-25 11:49:35 +00:00
config.h.in Add support for hashed passwords 2022-11-04 12:18:47 +00:00
config.make.in Add support for hashed passwords 2022-11-04 12:18:47 +00:00
config.sub Update config guess 2024-11-25 11:49:35 +00:00
configure Add support for hashed passwords 2022-11-04 12:18:47 +00:00
configure.ac Add support for hashed passwords 2022-11-04 12:18:47 +00:00
Console.m Fixes for Console return status 2021-06-30 09:45:33 +01:00
Control.m Pass debug settings to child 2019-06-07 09:20:15 +01:00
Control.plist fix typos in comments 2024-01-12 11:34:43 +00: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 flush alarms on shutdown 2022-10-26 15:06:13 +01:00
EcAlarmDestination.m swend message to correct object 2022-11-01 16:11:22 +00:00
EcAlarmSinkSNMP.h Add gnustep PEN 2012-03-16 11:00:41 +00:00
EcAlarmSinkSNMP.m Fix leak 2024-11-24 19:41:34 +00:00
EcAlerter.h a little more alarm info 2024-03-04 17:16:37 +00:00
EcAlerter.m a little more alarm info 2024-03-04 17:16:37 +00: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 fix typo in comment 2023-06-01 20:30:11 +01: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 Fix C standard error and some asan/lsan related cosmetics 2025-01-02 12:48:18 +00:00
EcConsole.m fix leaks 2024-11-24 16:53:26 +00:00
EcControl.m cleanup on exit 2024-11-25 12:05:40 +00:00
EcHost.h Backward compatibility user default name fixes 2012-10-05 11:31:23 +00:00
EcHost.m Replace +[NSHost hostWithName:] by a version which will first check to see if it has been given a well known name mapping to a host. This ensures that well known name mappings are used fror normal host lookup. 2020-09-04 09:52:58 +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 Fix to log exceptions before EcProc is set up 2025-01-20 11:58:37 +00:00
EcProcess.m Improved LSAN support using weak symbol to optionally get leak check function 2025-01-08 14:49:32 +00:00
EcTest.h Changes for DO and testing 2021-06-24 09:08:31 +01:00
EcTest.m Add checks and simple fixups to ensure that the Home value in the launch 2023-10-10 14:15:55 +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 fix laterDate check for small objects 2024-10-31 19:33:40 +00:00
GNUmakefile make release 2023-01-13 15:39:21 +00:00
GNUmakefile.postamble improve cleanup for dist-clean 2019-03-14 14:39:03 +00:00
GNUmakefile.preamble filter out bad flag for some compilers 2024-10-18 12:05:51 +01: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 add option to force login name to be system account name 2022-06-07 12:33:01 +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 clarify comments 2023-04-04 11:10:25 +01: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 Re-instate lost edits. 2023-10-10 14:21:36 +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)