ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/build/etc/system.conf
Revision: 1.70
Committed: Sun Feb 23 12:45:21 2003 UTC (21 years, 10 months ago) by tdb
Branch: MAIN
Changes since 1.69: +216 -116 lines
Log Message:
Attempted to turn the configuration in to something more self explanatory,
and hopefully more useful to a new user. Somewhat better than the older
configuration which still waffles on about raptor, rocks, and the library!

File Contents

# User Rev Content
1 tdb 1.2 # This is the default system configuration file
2     # used by all components of the i-scream system
3     #
4     # ALL configuration that uses the centralised
5     # configuration system has this file as its
6     # root of configuration
7     #
8 tdb 1.70 # 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 tdb 1.59 # $Author: tdb $
13 tdb 1.70 # $Id: system.conf,v 1.69 2003/02/22 18:31:02 tdb Exp $
14     #
15     # http://www.i-scream.org.uk/
16 ajm 1.14 #
17 tdb 1.70
18 ajm 1.14 ############################################################
19     #### Configuration Files & Groups
20     ############################################################
21    
22 tdb 1.70 # 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     # 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     # 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     # 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     # 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 tdb 1.15
62 ajm 1.14
63 ajm 1.16 ############################################################
64     #### Misc system-wide configuration
65     ############################################################
66    
67 tdb 1.70 # 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 ajm 1.16 ConfigurationProxy.updateTime=60
72    
73 tdb 1.70 # The internal Queue's can be monitored. This specifies
74     # the interval, in seconds, at which their state should
75     # be monitored.
76 ajm 1.16 Queue.MonitorInterval=15
77 tdb 1.70 # The maximum size a Queue can be before items are
78     # dropped when new ones arrive.
79 tdb 1.40 Queue.SizeLimit=1000
80 tdb 1.70 # 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 tdb 1.40 Queue.RemoveAlgorithm=FIRST
87 tdb 1.2
88 tdb 1.70 # 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 tdb 1.68 XMLCache.cleanupPeriod=30
94 ajm 1.14
95 tdb 1.70
96 ajm 1.14 ############################################################
97     #### FilterManager configuration
98     ############################################################
99 tdb 1.2
100 tdb 1.70 # 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 tdb 1.2 FilterManager.listenPort=4567
105    
106 tdb 1.70 # 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 ajm 1.14
112    
113     ############################################################
114     #### Filter configuration
115     ############################################################
116    
117 tdb 1.70 # A Filter accepts data from hosts on both a TCP port
118     # and a UDP port. They are specified here.
119 tdb 1.2 Filter.UDPListenPort=4589
120     Filter.TCPListenPort=4589
121    
122 tdb 1.70 # 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 tdb 1.55 Filter.PluginsPackage=uk.org.iscream.cms.server.filter.plugins
127 tdb 1.70 # And the names of the plugins to be loaded.
128 tdb 1.65 Filter.Plugins=TypeChecker;EnforceEssentialData;SourceChecker;KeyChecker
129 ajm 1.14
130 tdb 1.70 # The special filter known as the "Root Filter" needs
131     # a name within the system.
132 tdb 1.2 RootFilter.name=root
133 ajm 1.14
134 tdb 1.70 # 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 ajm 1.14 Filter.parentFilter=root
139    
140 tdb 1.70 # 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 tdb 1.61 # (comment or set to 0 to disable)
145     Filter.ActivateTCPReader=1
146     Filter.ActivateUDPReader=1
147     Filter.ActivateCORBAReader=1
148 tdb 1.62
149 tdb 1.70 # 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     # 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 tdb 1.65
166 tdb 1.70 # Enforce that hosts use the key based authentication.
167 tdb 1.65 # (comment or set to 0 to disable)
168     Filter.EnforceHostAuth=1
169 tdb 1.66
170 tdb 1.70 # Length of keys to use in authentication.
171 tdb 1.66 Filter.KeyLength=15
172 tdb 1.62
173 ajm 1.14
174     ############################################################
175     #### Root filter interfaces configuration
176     ############################################################
177    
178 tdb 1.70 # 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 tdb 1.2 RootFilter.realtimeInterfaceName=realtimeclients
185 ajm 1.14
186    
187     ############################################################
188     #### Client interface configuration
189     ############################################################
190    
191 tdb 1.70 # The client interface listens for connections from clients
192     # on a TCP port. It is specified here.
193 tdb 1.2 ClientInterface.listenPort=4510
194 tdb 1.70 # The component name for the Client Interface. This should
195     # match the name specified to the Root Filter above.
196 tdb 1.52 ClientInterface.name=realtimeclients
197 tdb 1.63
198 tdb 1.70 # 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 tdb 1.52
206    
207     ############################################################
208     #### Database interface configuration
209     ############################################################
210    
211 tdb 1.70 # The name for the Database Interface. This should match
212     # the name given to the Root Filter.
213 tdb 1.52 DBInterface.name=database
214 tdb 1.2
215 ajm 1.14
216     ############################################################
217     #### Host Configuration
218     ############################################################
219 tdb 1.2
220 tdb 1.70 # 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 tdb 1.13
224 tdb 1.70 # Hosts send data every UDPUpdateTime, in seconds, and then
225     # perform a heartbeat every TCPUpdateTime, in seconds.
226 tdb 1.7 Host.UDPUpdateTime=10
227 tdb 1.2 Host.TCPUpdateTime=60
228    
229 tdb 1.70 # We can run service checks on a host. The java package
230     # which contains them is specified here.
231 tdb 1.55 Host.serviceChecksPackage=uk.org.iscream.cms.server.filter.plugins
232 tdb 1.2
233 ajm 1.14
234     ############################################################
235     #### Monitor Configuration
236     ############################################################
237    
238 tdb 1.70 # Monitors allow data to be watched for possible problems.
239     # This setting specifies which java package they're in.
240 tdb 1.55 Monitor.PluginsPackage=uk.org.iscream.cms.server.client.monitors
241 tdb 1.70 # And which ones should be loaded.
242 tdb 1.51 Monitor.Plugins=CPU;Load;Process;Disk;Memory;Swap;Services;\
243     Heartbeat;Queue;UserCount;WebFeeder;
244 tdb 1.24
245 tdb 1.70 # 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 tdb 1.47 Monitor.alertTimeout.NOTICE=60
249     Monitor.alertTimeout.WARNING=900
250     Monitor.alertTimeout.CAUTION=1800
251     Monitor.alertTimeout.CRITICAL=3600
252 ajm 1.14
253 tdb 1.47 ## Threshold values
254     #
255 tdb 1.70 # 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 tdb 1.47
261     # CPU monitor threshold values
262 ajm 1.16 Monitor.CPU.threshold.LOWER=90
263 tdb 1.70 Monitor.CPU.threshold.UPPER=95
264 tdb 1.44
265 tdb 1.47 # Load monitor threshold values
266 tdb 1.44 Monitor.Load.threshold.LOWER=10.0
267     Monitor.Load.threshold.UPPER=20.0
268    
269 tdb 1.47 # Process Count threshold values
270 tdb 1.70 Monitor.Process.threshold.LOWER=500
271     Monitor.Process.threshold.UPPER=1000
272 tdb 1.24
273 tdb 1.47 # Memory monitor threshold values
274 tdb 1.24 Monitor.Memory.threshold.LOWER=80
275     Monitor.Memory.threshold.UPPER=90
276 tdb 1.67 # Whether to include 'cache' in the 'free' value
277     # (1 is true, anything else is false)
278     Monitor.Memory.useCacheAsFree=1
279 tdb 1.24
280 tdb 1.47 # Swap monitor threshold values
281 tdb 1.24 Monitor.Swap.threshold.LOWER=80
282     Monitor.Swap.threshold.UPPER=90
283 tdb 1.50
284     # UserCount monitor threshold values
285     Monitor.UserCount.threshold.LOWER=100
286     Monitor.UserCount.threshold.UPPER=200
287 tdb 1.24
288 tdb 1.47 # Disk monitor threshold values
289 tdb 1.42 Monitor.Disk.threshold.LOWER=90
290     Monitor.Disk.threshold.UPPER=95
291 tdb 1.47 # Thresholds given are PERCENTAGE or VALUE
292     # where PERCENTAGE is a percentage of disk in use
293     # and VALUE is an absolute value of space free
294 tdb 1.46 Monitor.Disk.thresholdMeasure=PERCENTAGE
295 ajm 1.33
296 tdb 1.56 # Queue monitor threshold values
297 tdb 1.49 Monitor.Queue.threshold.LOWER=50
298     Monitor.Queue.threshold.UPPER=80
299 tdb 1.47 # Thresholds given are PERCENTAGE or VALUE
300 tdb 1.70 # where PERCENTAGE is a percentage of the queue in use
301     # and VALUE is an absolute value of free space
302 tdb 1.46 Monitor.Queue.thresholdMeasure=PERCENTAGE
303    
304 tdb 1.47 # Services monitor threshold values
305 ajm 1.34 #
306     # THE SERVICES MONITOR USES A HACK
307     # WHEREBY IT USES THE SERVICE STATUS
308 tdb 1.70 # AS THE THRESHOLD LEVEL. THIS SHOULD
309 ajm 1.34 # BE LOOKED AT!
310     #
311 tdb 1.47 # how many times we should be at the highest level before
312     # we go to a FINAL alert
313 tdb 1.38 Monitor.Services.reachFINALcount=5
314    
315 tdb 1.47 # Heartbeat threshold values
316 tdb 1.25 # these are values in seconds from when the heartbeat
317     # was *expected* to arrive (ie. last + hearbeat period)
318 tdb 1.48 Monitor.Heartbeat.threshold.LOWER=180
319 tdb 1.38 Monitor.Heartbeat.threshold.UPPER=300
320 tdb 1.47 # this is how often we will run a "check" of heartbeats
321 tdb 1.48 Monitor.Heartbeat.checkPeriod=50
322 tdb 1.47 # how many times we should be at the highest level before
323     # we go to a FINAL alert
324     Monitor.Heartbeat.reachFINALcount=5
325 tdb 1.58 # 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 tdb 1.70 #Monitor.Heartbeat.initialHosts=importantserver.example.com;myserver.example.com
329 ajm 1.14
330 ajm 1.23
331 ajm 1.14 ############################################################
332     #### Alerter Configuration
333     ############################################################
334 tdb 1.70 # The following variables are understood by ALL alerters
335     # for messages. They will be substituted for their
336     # appropriate value.
337 ajm 1.23 #
338     # %level% - the alert level (eg, WARNING)
339     # %threshold% - the threshold broken (eg, LOWER)
340     # %source% - the source of the alert (eg, raptor.ukc.ac.uk)
341     # %value% - the value reached (eg, 95)
342     # %thresholdValue% - the value of the threshold broken (eg, 90)
343     # %attributeName% - the attribute that has caused the alert (eg, CPU User)
344     # %timeTillNextAlert% - the time the next alert will be sent out
345     # %timeSinceFirstAlert% - the time elapsed since the first alert for this problem
346     # %timeOfFirstAlert% - the time the first alert was sent
347     #
348 ajm 1.14
349 tdb 1.70 # The java package containing the alerters
350 tdb 1.55 Alerter.PluginsPackage=uk.org.iscream.cms.server.client.alerters
351 tdb 1.70 # 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 tdb 1.47
357 tdb 1.70 # Configuration for the EMail alerter
358     # The level alerts have to bypass to be e-mailed out
359 tdb 1.38 Alerter.EMail.level = WARNING
360 tdb 1.70 # 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 ajm 1.16 Alerter.EMail.subject = i-scream alert: %level% alert on %source% for %attributeName%
368 tdb 1.70 # The message in the e-mail
369 tdb 1.38 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 tdb 1.70 # Configuration for the IRC alerter
372     # The level alerts have to bypass to be sent
373 ajm 1.16 Alerter.IRC.level = OK
374 tdb 1.70 # The IRC server name
375     Alerter.IRC.IRCServer = irc.example.com
376     # and it's port
377 ajm 1.14 Alerter.IRC.IRCPort = 6667
378 tdb 1.70 # A list of nicks to try and be
379 tdb 1.19 Alerter.IRC.nickList = iscreamBot;_iscreamBot;i-screamBot
380 tdb 1.70 # Username to be
381 tdb 1.17 Alerter.IRC.user = i-scream
382 tdb 1.70 # Responses to CTCP prods
383 tdb 1.59 Alerter.IRC.comment = i-scream alerting bot (based on PircBot)
384     Alerter.IRC.finger = i-scream alerting bot (based on PircBot)
385 tdb 1.70 # Channel to join
386 ajm 1.14 Alerter.IRC.channel = #i-scream
387 tdb 1.70 # Message to use when sending an alert
388 ajm 1.16 Alerter.IRC.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value% - time till next alert (should one occur), %timeTillNextAlert%
389 tdb 1.70 # How long to wait before reconnecting
390 tdb 1.17 Alerter.IRC.reconnectDelay = 30
391 tdb 1.70 # Notice to send when starting up
392 tdb 1.17 Alerter.IRC.startupNotice = i-scream alerting bot activated
393 tdb 1.70 # Commands the bot will recognise
394 tdb 1.17 Alerter.IRC.stopCommand = stop alerts
395     Alerter.IRC.startCommand = start alerts
396     Alerter.IRC.lastAlertCommand = last alert
397     Alerter.IRC.joinCommand = join
398 tdb 1.18 Alerter.IRC.nickChangeCommand = nick
399     Alerter.IRC.statCommand = statistics
400     Alerter.IRC.uptimeCommand = uptime
401     Alerter.IRC.timeSinceLastAlertCommand = time since last alert
402 tdb 1.19 Alerter.IRC.versionCommand = version
403 tdb 1.17 Alerter.IRC.helpCommand = help
404 tdb 1.70 # Message to send when the bot is addressed and
405     # doesn't understand the command
406 tdb 1.17 Alerter.IRC.rejectMessage = sorry, I don't understand your request
407 tdb 1.54
408 tdb 1.70 # 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 tdb 1.54 Alerter.Logging.level = WARNING
412 tdb 1.70 # The message to use when logging the alert
413 tdb 1.57 Alerter.Logging.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value%
414 tdb 1.29
415 tdb 1.47
416 tdb 1.29 ############################################################
417     #### WebFeeder Configuration
418     ############################################################
419    
420 tdb 1.70 # 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 tdb 1.32 WebFeeder.latestActive = true
427     WebFeeder.alertActive = true
428 tdb 1.43
429 tdb 1.70 # 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 tdb 1.53 Alerter.WebFeeder.level = OK
433 tdb 1.37
434 tdb 1.70 # 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 tdb 1.42 WebFeeder.checkPeriod = 120
438 tdb 1.37
439     # Delete alerts older than this, in seconds.
440 tdb 1.42 WebFeeder.alertDeleteOlderThan = 300
441 tdb 1.32
442 tdb 1.70 # Data will be dropped to a subdirectory (specified
443     # below) of this directory.
444     WebFeeder.rootPath = /web/i-scream
445    
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 tdb 1.29 WebFeeder.latestSubDir = latest
452 tdb 1.31 WebFeeder.latestFileName = latest_data
453 tdb 1.32
454 tdb 1.70 # As above, but for the alerts.
455 tdb 1.32 WebFeeder.alertSubDir = alert
456     WebFeeder.alertFileName = alert_data
457 ajm 1.16
458 tdb 1.47
459 tdb 1.17 ############################################################