ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/build/etc/system.conf
(Generate patch)

Comparing projects/cms/source/server/build/etc/system.conf (file contents):
Revision 1.64 by tdb, Wed Mar 20 16:32:37 2002 UTC vs.
Revision 1.70 by tdb, Sun Feb 23 12:45:21 2003 UTC

# Line 5 | Line 5
5   # configuration system has this file as its
6   # root of configuration
7   #
8 + # This is a working sample configuration, which
9 + # aims to provide a working "out of the box"
10 + # setup, aswell as a some example configuration.
11 + #
12   # $Author$
13   # $Id$
14   #
15 + # http://www.i-scream.org.uk/
16 + #
17 +
18   ############################################################
19   #### Configuration Files & Groups
20   ############################################################
21  
22 < # for computing machines
23 < group.computing=Host.129.12.4.*;
24 < group.rocks=Host.agate.ukc.ac.uk;Host.arkose.ukc.ac.uk;Host.basalt.ukc.ac.uk;Host.chalk.ukc.ac.uk;\
25 <            Host.chert.ukc.ac.uk;Host.granite.ukc.ac.uk;Host.jade.ukc.ac.uk;Host.jasper.ukc.ac.uk;\
26 <            Host.magnetite.ukc.ac.uk;Host.obsidian.ukc.ac.uk;Host.pumice.ukc.ac.uk;\
20 <            Host.pyrite.ukc.ac.uk;Host.slate.ukc.ac.uk;Host.topaz.ukc.ac.uk;
21 < group.compsoc=Host.compsoc1.ukc.ac.uk
22 > # All components, such as hosts, will take their configuration
23 > # as given in this file. Unless, that is, they have an extra
24 > # configuration file specified here, or they're in a group
25 > # that has a configuration file. If this is the case the extra
26 > # configuration will override what is given in this file.
27  
28 < config.computing=computing.conf
29 < config.rocks=rocks.conf
30 < config.compsoc1=rocks.conf
28 > # We can define an extra configuration file for any component
29 > # of the system. This is done by specifying the following:
30 > #
31 > # config.component=someconfigfile.conf
32 > #
33 > # Component names will be defined in the documentation for
34 > # the component. An example is that a host component is
35 > # known by the name "Host.hostname" or "Host.ip".
36 > # It is also possible to use the wildcard "*" in a
37 > # hostname or IP address.
38  
39 < # for library machines
40 < group.library=Host.129.12.58.*;
41 < config.library=library.conf
39 > # This defines that server.example.com has some extra
40 > # configuration in the file 'server.conf'.
41 > config.Host.server.example.com=exserver.conf
42  
43 < # for SSB machines
44 < group.ssb=Host.stue*.ukc.ac.uk;
45 < config.ssb=ssb.conf
43 > # All webservers are placed in a group named 'www'.
44 > group.www=Host.www1.example.com;Host.www2.example.com
45 > # Then we define some extra config for them.
46 > config.www=webservers.conf
47  
48 < # mySQL configuration
49 < config.mySQL=mySQL.conf
48 > # Our workstations are in their own subnet.
49 > group.workstations=Host.192.168.10.*;
50 > # They can have their own config too.
51 > config.workstations=workstations.conf
52  
53 + # Any hosts not specified by now have the default
54 + # config as given in this file.
55 +
56 + # Another component of the system is the mySQL
57 + # database part of the server call the DBInterface.
58 + # This has it's own config so the passwords for the
59 + # mySQL database can be kept seperate.
60 + #config.mySQL=mySQL.conf
61 +
62 +
63   ############################################################
64   #### Misc system-wide configuration
65   ############################################################
66  
67 < # the time (in seconds) that checks should be made for
68 < # changes in configuration
67 > # The ConfigurationProxy caches configuration for various
68 > # parts of the server. This setting defines how often, in
69 > # seconds, the proxy will check if the data it contains
70 > # is still valid.
71   ConfigurationProxy.updateTime=60
72  
73 < # The time interval at which the Queue's should be monitored
73 > # The internal Queue's can be monitored. This specifies
74 > # the interval, in seconds, at which their state should
75 > # be monitored.
76   Queue.MonitorInterval=15
77 < # The upper limit for a Queue
77 > # The maximum size a Queue can be before items are
78 > # dropped when new ones arrive.
79   Queue.SizeLimit=1000
80 < # The removal algorithm
80 > # And which items we should drop when the queue is full
81 > # and new items arrive. Choices are:
82 > # RANDOM - drop a random item from the queue
83 > # FIRST  - drop the first item from the queue
84 > # LAST   - drop the last item from the queue
85 > # DROP   - drop the new item from the queue
86   Queue.RemoveAlgorithm=FIRST
87  
88 + # The XMLCache caches data passing through the system.
89 + # This setting specifies the time, in seconds, at which
90 + # the caches contents will be rotated. In real terms
91 + # this means the minimum age at which an XMLPacket can
92 + # be before it is up for deletion from the cache.
93 + XMLCache.cleanupPeriod=30
94  
95 +
96   ############################################################
97   #### FilterManager configuration
98   ############################################################
99  
100 < # The default port to listen for new host connections
100 > # The FilterManager accepts connections from hosts
101 > # upon startup. It provides them with configuration
102 > # and details of which filter to talk to. This setting
103 > # specifies which port (TCP) it listens on.
104   FilterManager.listenPort=4567
105  
106 < # Access control list
107 < FilterManager.ACL=DEFAULT:DENY;*.ukc.ac.uk:ALLOW;129.12.*:ALLOW
106 > # An Access Control List for the FilterManager. One
107 > # might consider something like this:
108 > #
109 > # FilterManager.ACL=DEFAULT:DENY;*.example.com:ALLOW
110 > FilterManager.ACL=DEFAULT:ALLOW
111  
112  
65
113   ############################################################
114   #### Filter configuration
115   ############################################################
116  
117 < # The default port for Filter's to listen on
117 > # A Filter accepts data from hosts on both a TCP port
118 > # and a UDP port. They are specified here.
119   Filter.UDPListenPort=4589
120   Filter.TCPListenPort=4589
121  
122 < # Plugin Information
122 > # Filters contain plugins for checking the data passing
123 > # through them. This plugins do the job of "filtering".
124 > # This setting specifies the java package they're
125 > # contained in.
126   Filter.PluginsPackage=uk.org.iscream.cms.server.filter.plugins
127 < Filter.Plugins=TypeChecker;EnforceEssentialData;SourceChecker
127 > # And the names of the plugins to be loaded.
128 > Filter.Plugins=TypeChecker;EnforceEssentialData;SourceChecker;KeyChecker
129  
130 < # The name for the root filter
130 > # The special filter known as the "Root Filter" needs
131 > # a name within the system.
132   RootFilter.name=root
133  
134 < # The default parent filter (should almost always be the same as Filter.rootFilter)
134 > # Every Filter, except the root, needs a parent to
135 > # send their data to. This is usually the root filter,
136 > # although in more complex setups it might be another
137 > # filter - giving a tree structure.
138   Filter.parentFilter=root
139  
140 < # The input methods to activate
140 > # A Filter can accept data through UDP, TCP, or from
141 > # an upstream Filter (CORBA). These methods can be
142 > # individually turned of on a filter. The default
143 > # is to have them all on.
144   # (comment or set to 0 to disable)
145   Filter.ActivateTCPReader=1
146   Filter.ActivateUDPReader=1
147   Filter.ActivateCORBAReader=1
148  
149 < # Access control list for the TCP and UDP inputs
150 < Filter.TCPACL=DEFAULT:DENY;*.ukc.ac.uk:ALLOW;129.12.*:ALLOW
151 < Filter.UDPACL=DEFAULT:DENY;*.ukc.ac.uk:ALLOW;129.12.*:ALLOW
149 > # We can also specify Access Control Lists for the
150 > # TCP and UDP inputs of the Filters. One might want
151 > # something restrictive like this:
152 > #
153 > # Filter.TCPACL=DEFAULT:DENY;*.example.com:ALLOW
154 > # Filter.UDPACL=DEFAULT:DENY;*.example.com:ALLOW
155 > Filter.TCPACL=DEFAULT:ALLOW
156 > Filter.UDPACL=DEFAULT:ALLOW
157  
158 < # Access control list for the SourceChecker plugin
159 < #   - packets not permitted by this ACL will be filtered
160 < Filter.SourceCheckerPluginACL=DEFAULT:DENY;*.ukc.ac.uk:ALLOW;129.12.*:ALLOW
158 > # A Filter plugin called the SourceChecker verifies
159 > # that packets come from permitted hosts. It is
160 > # given an ACL to check the hosts against. A possible
161 > # ACL might be:
162 > #
163 > # Filter.SourceCheckerPluginACL=DEFAULT:DENY;*.example.com:ALLOW
164 > Filter.SourceCheckerPluginACL=DEFAULT:ALLOW
165  
166 + # Enforce that hosts use the key based authentication.
167 + # (comment or set to 0 to disable)
168 + Filter.EnforceHostAuth=1
169  
170 + # Length of keys to use in authentication.
171 + Filter.KeyLength=15
172  
173 +
174   ############################################################
175   #### Root filter interfaces configuration
176   ############################################################
177  
178 < # Comment either of these (or delete them) and
179 < # that interface won't be started
178 > # The Root FIlter can send data to various upstream
179 > # data processors. There are two of these at present
180 > # in the server - the DBInterface and the ClientInterface.
181 > # Their component names are given here as defined below.
182 > # (the DBInterface is switched off - commented - by default)
183 > #RootFilter.dbInterfaceName=database
184   RootFilter.realtimeInterfaceName=realtimeclients
107 RootFilter.dbInterfaceName=database
185  
186  
110
187   ############################################################
188   #### Client interface configuration
189   ############################################################
190  
191 < # The port for the client interface to listen on
191 > # The client interface listens for connections from clients
192 > # on a TCP port. It is specified here.
193   ClientInterface.listenPort=4510
194 < # The name for the client interface
194 > # The component name for the Client Interface. This should
195 > # match the name specified to the Root Filter above.
196   ClientInterface.name=realtimeclients
197  
198 < # Access Control List for TCP Clients
199 < ClientInterface.TCPControlChannelACL=DEFAULT:DENY;*.ukc.ac.uk:ALLOW;129.12.*:ALLOW
200 < ClientInterface.TCPDataChannelACL=DEFAULT:DENY;*.ukc.ac.uk:ALLOW;129.12.*:ALLOW
198 > # The Client Interface has two channels, control and data.
199 > # Each of these can have an ACL for allowing connections.
200 > # As per previous examples in this configuration file they
201 > # could be set restrictively, but we'll leave them open
202 > # by default
203 > ClientInterface.TCPControlChannelACL=DEFAULT:ALLOW
204 > ClientInterface.TCPDataChannelACL=DEFAULT:ALLOW
205  
206  
125
207   ############################################################
208   #### Database interface configuration
209   ############################################################
210  
211 < # The name for the Database interface
211 > # The name for the Database Interface. This should match
212 > # the name given to the Root Filter.
213   DBInterface.name=database
214  
215  
134
216   ############################################################
217   #### Host Configuration
218   ############################################################
219  
220 < # The default filter for a new host
221 < Host.filter=computingFilter;
220 > # A host can use any filter. We'll set the default filter
221 > # for all hosts to be 'filter1'. This can be a list.
222 > Host.filter=filter1;
223  
224 < # The default update times for a new host
224 > # Hosts send data every UDPUpdateTime, in seconds, and then
225 > # perform a heartbeat every TCPUpdateTime, in seconds.
226   Host.UDPUpdateTime=10
227   Host.TCPUpdateTime=60
228  
229 < # The services checks to run on a host
229 > # We can run service checks on a host. The java package
230 > # which contains them is specified here.
231   Host.serviceChecksPackage=uk.org.iscream.cms.server.filter.plugins
232  
233  
150
234   ############################################################
235   #### Monitor Configuration
236   ############################################################
237  
238 < ## The monitors to run
238 > # Monitors allow data to be watched for possible problems.
239 > # This setting specifies which java package they're in.
240   Monitor.PluginsPackage=uk.org.iscream.cms.server.client.monitors
241 + # And which ones should be loaded.
242   Monitor.Plugins=CPU;Load;Process;Disk;Memory;Swap;Services;\
243                  Heartbeat;Queue;UserCount;WebFeeder;
244  
245 < ## Default alert timeouts
246 < # these can be override on a per-monitor basis
247 < # timings of the alerts (in seconds)
245 > # Alerts timeout after a given time in seconds and go up
246 > # to the next level. These can be overridden for monitors
247 > # on an individual basis.
248   Monitor.alertTimeout.NOTICE=60
249   Monitor.alertTimeout.WARNING=900
250   Monitor.alertTimeout.CAUTION=1800
251   Monitor.alertTimeout.CRITICAL=3600
252  
253   ## Threshold values
169 #
170 # note: if the UPPER threshold is broken,
171 # the alertTimeout values are halved.
172 # This is to escalate the alert quicker.
254   #
255 + # Here we specify the threshold for each monitor. When
256 + # a threshold is broken an alert is raised. If the
257 + # UPPER threshold is broken the alertTimeout values
258 + # given above are halved to make the alert escalate
259 + # quicker.
260  
261   # CPU monitor threshold values
262   Monitor.CPU.threshold.LOWER=90
263 < Monitor.CPU.threshold.UPPER=99
263 > Monitor.CPU.threshold.UPPER=95
264  
179
265   # Load monitor threshold values
266   Monitor.Load.threshold.LOWER=10.0
267   Monitor.Load.threshold.UPPER=20.0
268  
184
269   # Process Count threshold values
270 < Monitor.Process.threshold.LOWER=1000
271 < Monitor.Process.threshold.UPPER=1500
270 > Monitor.Process.threshold.LOWER=500
271 > Monitor.Process.threshold.UPPER=1000
272  
189
273   # Memory monitor threshold values
274   Monitor.Memory.threshold.LOWER=80
275   Monitor.Memory.threshold.UPPER=90
276 + # Whether to include 'cache' in the 'free' value
277 + # (1 is true, anything else is false)
278 + Monitor.Memory.useCacheAsFree=1
279  
194
280   # Swap monitor threshold values
281   Monitor.Swap.threshold.LOWER=80
282   Monitor.Swap.threshold.UPPER=90
283  
199
284   # UserCount monitor threshold values
285   Monitor.UserCount.threshold.LOWER=100
286   Monitor.UserCount.threshold.UPPER=200
287  
204
288   # Disk monitor threshold values
289   Monitor.Disk.threshold.LOWER=90
290   Monitor.Disk.threshold.UPPER=95
# Line 210 | Line 293 | Monitor.Disk.threshold.UPPER=95
293   # and VALUE is an absolute value of space free
294   Monitor.Disk.thresholdMeasure=PERCENTAGE
295  
213
296   # Queue monitor threshold values
297   Monitor.Queue.threshold.LOWER=50
298   Monitor.Queue.threshold.UPPER=80
299   # Thresholds given are PERCENTAGE or VALUE
300 < # where PERCENTAGE is a percentage of disk in use
301 < # and VALUE is an absolute value of space free
300 > # where PERCENTAGE is a percentage of the queue in use
301 > # and VALUE is an absolute value of free space
302   Monitor.Queue.thresholdMeasure=PERCENTAGE
303  
222
304   # Services monitor threshold values
305   #
306   # THE SERVICES MONITOR USES A HACK
307   # WHEREBY IT USES THE SERVICE STATUS
308 < # AS THE THRESHOLD LEVEL.  THIS SHOULD
308 > # AS THE THRESHOLD LEVEL. THIS SHOULD
309   # BE LOOKED AT!
310   #
311   # how many times we should be at the highest level before
312   # we go to a FINAL alert
313   Monitor.Services.reachFINALcount=5
314  
234
315   # Heartbeat threshold values
316   # these are values in seconds from when the heartbeat
317   # was *expected* to arrive (ie. last + hearbeat period)
# Line 245 | Line 325 | Monitor.Heartbeat.reachFINALcount=5
325   # list of hosts we expect to have at startup
326   # this ensures we notice hosts that aren't running, not
327   # just those that have gone down recently.
328 < Monitor.Heartbeat.initialHosts=raptor.ukc.ac.uk;myrtle.ukc.ac.uk;kestrel.ukc.ac.uk
328 > #Monitor.Heartbeat.initialHosts=importantserver.example.com;myserver.example.com
329  
330  
251
331   ############################################################
332   #### Alerter Configuration
333   ############################################################
334 < # The following var's are understood by ALL alerters for messages
334 > # The following variables are understood by ALL alerters
335 > # for messages. They will be substituted for their
336 > # appropriate value.
337   #
338   # %level%               - the alert level (eg, WARNING)
339   # %threshold%           - the threshold broken (eg, LOWER)
# Line 265 | Line 346 | Monitor.Heartbeat.initialHosts=raptor.ukc.ac.uk;myrtle
346   # %timeOfFirstAlert%    - the time the first alert was sent
347   #
348  
349 < # alerters to run
349 > # The java package containing the alerters
350   Alerter.PluginsPackage=uk.org.iscream.cms.server.client.alerters
351 < Alerter.Plugins=EMail;IRC;WebFeeder;Logging;
351 > # And the names of the ones to activate
352 > # You might want to turn them all on, but we only activate
353 > # two basic ones by default.
354 > # Alerter.Plugins=EMail;IRC;WebFeeder;Logging;
355 > Alerter.Plugins=WebFeeder;Logging;
356  
357 <
358 < # EMail alerter configuration
357 > # Configuration for the EMail alerter
358 > # The level alerts have to bypass to be e-mailed out
359   Alerter.EMail.level = WARNING
360 < Alerter.EMail.destList = dev@i-scream.org.uk
361 < Alerter.EMail.sender = dev@i-scream.org.uk
362 < Alerter.EMail.smtpServer = mercury.ukc.ac.uk
360 > # A list of people to send alerts to
361 > Alerter.EMail.destList = me@example.com
362 > # The sender of the e-mail
363 > Alerter.EMail.sender = me@example.com
364 > # The SMTP server to send alerts to
365 > Alerter.EMail.smtpServer = smtp.example.com
366 > # The subject line of the e-mail
367   Alerter.EMail.subject = i-scream alert: %level% alert on %source% for %attributeName%
368 + # The message in the e-mail
369   Alerter.EMail.message = The i-scream distributed central monitoring system has\nraised a %level% alert for the host %source%.\n\nThe value for %attributeName% of %value% has exceeded the\n%threshold% threshold value of %thresholdValue%.\n\nThis alert was originally raised at %timeOfFirstAlert%,\nwhich was %timeSinceFirstAlert% ago.\n\nThe next alert (should one occur) will be sent in %timeTillNextAlert%.
370  
371 <
372 < # IRC alerter configuration
371 > # Configuration for the IRC alerter
372 > # The level alerts have to bypass to be sent
373   Alerter.IRC.level = OK
374 < Alerter.IRC.IRCServer = killigrew.ukc.ac.uk
374 > # The IRC server name
375 > Alerter.IRC.IRCServer = irc.example.com
376 > # and it's port
377   Alerter.IRC.IRCPort = 6667
378 + # A list of nicks to try and be
379   Alerter.IRC.nickList = iscreamBot;_iscreamBot;i-screamBot
380 + # Username to be
381   Alerter.IRC.user = i-scream
382 + # Responses to CTCP prods
383   Alerter.IRC.comment = i-scream alerting bot (based on PircBot)
384   Alerter.IRC.finger = i-scream alerting bot (based on PircBot)
385 + # Channel to join
386   Alerter.IRC.channel = #i-scream
387 + # Message to use when sending an alert
388   Alerter.IRC.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value% - time till next alert (should one occur), %timeTillNextAlert%
389 + # How long to wait before reconnecting
390   Alerter.IRC.reconnectDelay = 30
391 + # Notice to send when starting up
392   Alerter.IRC.startupNotice = i-scream alerting bot activated
393 + # Commands the bot will recognise
394   Alerter.IRC.stopCommand = stop alerts
395   Alerter.IRC.startCommand = start alerts
396   Alerter.IRC.lastAlertCommand = last alert
# Line 301 | Line 401 | Alerter.IRC.uptimeCommand = uptime
401   Alerter.IRC.timeSinceLastAlertCommand = time since last alert
402   Alerter.IRC.versionCommand = version
403   Alerter.IRC.helpCommand = help
404 + # Message to send when the bot is addressed and
405 + # doesn't understand the command
406   Alerter.IRC.rejectMessage = sorry, I don't understand your request
407  
408 <
409 < # Logging alerter configuration
408 > # Configuration for the Logging Alerter
409 > # This alerter writes alerts to the i-scream logfile.
410 > # The level alerts have to bypass to be logged
411   Alerter.Logging.level = WARNING
412 + # The message to use when logging the alert
413   Alerter.Logging.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value%
414  
415  
312
416   ############################################################
417   #### WebFeeder Configuration
418   ############################################################
419  
420 < # Define these (one or both_ to turn on the WebFeeder's,
421 < # comment it to turn them off
420 > # The WebFeeder drops alerts and latest data in to a
421 > # directory for the web interface to use. It is essentially
422 > # the link between the web interface and the server.
423 >
424 > # Set these to something to tell the WebFeeder to drop
425 > # latest data, alerts, or both. Comment themt o disable.
426   WebFeeder.latestActive = true
427   WebFeeder.alertActive = true
428  
429 < # Only pass on alerts past this level
429 > # We can make the WebFeeder only drop alerts that go
430 > # past a certain level. The default is "OK", which makes
431 > # all alerts get passed on.
432   Alerter.WebFeeder.level = OK
433  
434 < # Check period in seconds (for cleaning stale/old alerts)
434 > # The WebFeeder cleans out old and stale alerts when it
435 > # performs a check. This setting is the period, in seconds,
436 > # at which a check happens.
437   WebFeeder.checkPeriod = 120
438  
439   # Delete alerts older than this, in seconds.
329 # Files are only check every WebFeeder.checkPeriod seconds.
440   WebFeeder.alertDeleteOlderThan = 300
441  
442 < # Root Path
443 < WebFeeder.rootPath = /usr/local/proj/co600_10/webroot
442 > # Data will be dropped to a subdirectory (specified
443 > # below) of this directory.
444 > WebFeeder.rootPath = /web/i-scream
445  
446 < # Latest Data
446 > # SubDir is the directory below rootPath which latest
447 > # data will be placed in. Below that a directory will
448 > # be created with the machine name, and a file named
449 > # FileName (specified here) will be created containg
450 > # the data.
451   WebFeeder.latestSubDir = latest
452   WebFeeder.latestFileName = latest_data
453  
454 < # Alert Data
454 > # As above, but for the alerts.
455   WebFeeder.alertSubDir = alert
456   WebFeeder.alertFileName = alert_data
457  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines