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.29 by tdb, Thu Mar 8 20:57:47 2001 UTC vs.
Revision 1.75 by tdb, Mon May 5 22:04:59 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 < config.computing=computing.conf
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 < # for library machines
29 < group.library=Host.129.12.58.*;
30 < config.library=library.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 SSB machines
40 < group.ssb=Host.stue*.ukc.ac.uk;
41 < config.ssb=ssb.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 < # mySQL configuration
44 < config.mySQL=mySQL.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 + # 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 +
57   ############################################################
58   #### Misc system-wide configuration
59   ############################################################
60  
61 < # the time (in seconds) that checks should be made for
62 < # changes in configuration
61 > # The ConfigurationProxy caches configuration for various
62 > # parts of the server. This setting defines how often, in
63 > # seconds, the proxy will check if the data it contains
64 > # is still valid.
65   ConfigurationProxy.updateTime=60
66  
67 < # The time interval at which the Queue's should be monitored
68 < Queue.MonitorInterval=15
67 > # The internal Queue's can be monitored. This specifies
68 > # the interval, in seconds, at which their state should
69 > # be monitored.
70 > Queue.MonitorInterval=300
71 > # The maximum size a Queue can be before items are
72 > # dropped when new ones arrive.
73 > Queue.SizeLimit=1000
74 > # And which items we should drop when the queue is full
75 > # and new items arrive. Choices are:
76 > # RANDOM - drop a random item from the queue
77 > # FIRST  - drop the first item from the queue
78 > # LAST   - drop the last item from the queue
79 > # DROP   - drop the new item from the queue
80 > Queue.RemoveAlgorithm=FIRST
81  
82 + # The XMLCache caches data passing through the system.
83 + # This setting specifies the time, in seconds, at which
84 + # the caches contents will be rotated. In real terms
85 + # this means the minimum age at which an XMLPacket can
86 + # be before it is up for deletion from the cache.
87 + XMLCache.cleanupPeriod=30
88  
89  
90   ############################################################
91   #### FilterManager configuration
92   ############################################################
93  
94 < # The default port to listen for new host connections
94 > # The FilterManager accepts connections from hosts
95 > # upon startup. It provides them with configuration
96 > # and details of which filter to talk to. This setting
97 > # specifies which port (TCP) it listens on.
98   FilterManager.listenPort=4567
99  
100 + # An Access Control List for the FilterManager. One
101 + # might consider something like this:
102 + #
103 + # FilterManager.ACL=DEFAULT:DENY;*.example.com:ALLOW
104 + FilterManager.ACL=DEFAULT:ALLOW
105  
106  
107   ############################################################
108   #### Filter configuration
109   ############################################################
110  
111 < # The default port for Filter's to listen on
111 > # A Filter accepts data from hosts on a UDP port. It is
112 > # specified here.
113   Filter.UDPListenPort=4589
58 Filter.TCPListenPort=4589
114  
115 < # Plugin Information
116 < Filter.PluginsPackage=uk.ac.ukc.iscream.filter.plugins
117 < Filter.Plugins=TypeChecker;EnforceEssentialData
115 > # Filters contain plugins for checking the data passing
116 > # through them. This plugins do the job of "filtering".
117 > # This setting specifies the java package they're
118 > # contained in.
119 > Filter.PluginsPackage=uk.org.iscream.cms.server.filter.plugins
120 > # And the names of the plugins to be loaded.
121 > Filter.Plugins=TypeChecker;EnforceEssentialData;SourceChecker
122  
123 < # The name for the root filter
124 < RootFilter.name=root
125 <
126 < # The default parent filter (should almost always be the same as Filter.rootFilter)
123 > # Every Filter, except the root, needs a parent to
124 > # send their data to. This is usually the root filter,
125 > # although in more complex setups it might be another
126 > # filter - giving a tree structure.
127   Filter.parentFilter=root
128  
129 + # A Filter can accept data through UDP, or from
130 + # an upstream Filter (CORBA). These methods can be
131 + # individually turned of on a filter. The default
132 + # is to have them all on.
133 + # (comment or set to 0 to disable)
134 + Filter.ActivateUDPReader=1
135 + Filter.ActivateCORBAReader=1
136  
137 + # We can also specify Access Control Lists for the
138 + # UDP input of the Filters. One might want something
139 + # restrictive like this:
140 + #
141 + # Filter.UDPACL=DEFAULT:DENY;*.example.com:ALLOW
142 + Filter.UDPACL=DEFAULT:ALLOW
143  
144 + # A Filter plugin called the SourceChecker verifies
145 + # that packets come from permitted hosts. It is
146 + # given an ACL to check the hosts against. A possible
147 + # ACL might be:
148 + #
149 + # Filter.SourceCheckerPluginACL=DEFAULT:DENY;*.example.com:ALLOW
150 + Filter.SourceCheckerPluginACL=DEFAULT:ALLOW
151 +
152 +
153   ############################################################
154 < #### Root filter interfaces configuration
154 > #### Root filter configuration
155   ############################################################
156  
157 < # Comment either of these (or delete them) and
158 < # that interface won't be started
159 < RootFilter.realtimeInterfaceName=realtimeclients
79 < RootFilter.dbInterfaceName=database
157 > # The special filter known as the "Root Filter" needs
158 > # a name within the system.
159 > RootFilter.name=root
160  
161  
82
162   ############################################################
163   #### Client interface configuration
164   ############################################################
165  
166 < # The port for the client interface to listen on
166 > # The client interface listens for connections from clients
167 > # on a TCP port. It is specified here.
168   ClientInterface.listenPort=4510
169  
170 + # The client interface needs to connect to another one to
171 + # receive data. There is a special client interface in the
172 + # root filter which is the top of the tree.
173 + ClientInterface.parent=root
174  
175 + # The Client Interface has two channels, control and data.
176 + # Each of these can have an ACL for allowing connections.
177 + # As per previous examples in this configuration file they
178 + # could be set restrictively, but we'll leave them open
179 + # by default
180 + ClientInterface.TCPControlChannelACL=DEFAULT:ALLOW
181 + ClientInterface.TCPDataChannelACL=DEFAULT:ALLOW
182  
183 +
184   ############################################################
185 + #### LocalClient Configuration
186 + ############################################################
187 +
188 + # The parent for the Local Client
189 + Client.parent=clientinterface1
190 +
191 +
192 + ############################################################
193   #### Host Configuration
194   ############################################################
195  
196 < # The default filter for a new host
196 > # A host can use any filter. We'll set the default filter
197 > # for all hosts to be 'filter1'. This can be a list.
198   Host.filter=filter1;
199  
200 < # The default update times for a new host
201 < Host.UDPUpdateTime=10
101 < Host.TCPUpdateTime=60
102 < Host.AveragerUpdateTime=5
200 > # Hosts send data every UDPUpdateTime, in seconds.
201 > Host.UDPUpdateTime=60
202  
203 < # The services checks to run on a host
204 < Host.serviceChecksPackage=uk.ac.ukc.iscream.filter.plugins
205 < Host.serviceChecks=HTTP;SMTP;POP3;SSH;FTP;IMAP;Telnet
203 > # How long a hosts config is valid for (a TTL effectively)
204 > # after this time, in seconds, has passed a host should
205 > # consider it's configuration invalid and check for a new
206 > # configuration as soon as it can.
207 > Host.ConfigTTL=3600
208  
209 + # We can run service checks on a host. The java package
210 + # which contains them is specified here.
211 + Host.serviceChecksPackage=uk.org.iscream.cms.server.filter.plugins
212  
213  
214   ############################################################
215   #### Monitor Configuration
216   ############################################################
217  
218 < # the monitors to run
219 < Monitor.PluginsPackage=uk.ac.ukc.iscream.client.monitors
220 < Monitor.Plugins=CPU;Memory;Swap;Heartbeat;
218 > # Monitors allow data to be watched for possible problems.
219 > # This setting specifies which java package they're in.
220 > Monitor.PluginsPackage=uk.org.iscream.cms.server.client.monitors
221 > # And which ones should be loaded.
222 > Monitor.Plugins=CPU;Load;Process;Disk;Memory;Swap;Services;\
223 >                Heartbeat;Queue;UserCount;WebFeeder;DiskIO;\
224 >                NetIO;Paging;
225  
226 + # Alerts timeout after a given time in seconds and go up
227 + # to the next level. These can be overridden for monitors
228 + # on an individual basis.
229 + Monitor.alertTimeout.NOTICE=60
230 + Monitor.alertTimeout.WARNING=900
231 + Monitor.alertTimeout.CAUTION=1800
232 + Monitor.alertTimeout.CRITICAL=3600
233  
234 < ## CPU monitor configuration
235 < # threshold values
236 < #
237 < # note: if the UPPER threshold is broken,
238 < # the alertTimeout values are halved.
239 < # This is to escalate the alert quicker.
234 > ## Threshold values
235 > #
236 > # Here we specify the threshold for each monitor. When
237 > # a threshold is broken an alert is raised. If the
238 > # UPPER threshold is broken the alertTimeout values
239 > # given above are halved to make the alert escalate
240 > # quicker.
241 >
242 > # CPU monitor threshold values
243   Monitor.CPU.threshold.LOWER=90
244 < Monitor.CPU.threshold.UPPER=99
244 > Monitor.CPU.threshold.UPPER=95
245  
246 < # timings of the alerts (in seconds)
247 < Monitor.CPU.alertTimeout.NOTICE=60
248 < Monitor.CPU.alertTimeout.WARNING=900
131 < Monitor.CPU.alertTimeout.CAUTION=1800
132 < Monitor.CPU.alertTimeout.CRITICAL=3600
246 > # Load monitor threshold values
247 > Monitor.Load.threshold.LOWER=10.0
248 > Monitor.Load.threshold.UPPER=20.0
249  
250 + # Paging monitor threshold values
251 + Monitor.Paging.threshold.LOWER=1000
252 + Monitor.Paging.threshold.UPPER=5000
253  
254 < ## Memory monitor configuration
255 < # threshold values
256 < #
257 < # note: if the UPPER threshold is broken,
258 < # the alertTimeout values are halved.
140 < # This is to escalate the alert quicker.
254 > # Process Count threshold values
255 > Monitor.Process.threshold.LOWER=500
256 > Monitor.Process.threshold.UPPER=1000
257 >
258 > # Memory monitor threshold values
259   Monitor.Memory.threshold.LOWER=80
260   Monitor.Memory.threshold.UPPER=90
261 + # Whether to include 'cache' in the 'free' value
262 + # (1 is true, anything else is false)
263 + Monitor.Memory.useCacheAsFree=1
264  
265 < # timings of the alerts (in seconds)
145 < Monitor.Memory.alertTimeout.NOTICE=60
146 < Monitor.Memory.alertTimeout.WARNING=900
147 < Monitor.Memory.alertTimeout.CAUTION=1800
148 < Monitor.Memory.alertTimeout.CRITICAL=3600
149 <
150 <
151 < ## Swap monitor configuration
152 < # threshold values
153 < #
154 < # note: if the UPPER threshold is broken,
155 < # the alertTimeout values are halved.
156 < # This is to escalate the alert quicker.
265 > # Swap monitor threshold values
266   Monitor.Swap.threshold.LOWER=80
267   Monitor.Swap.threshold.UPPER=90
268  
269 < # timings of the alerts (in seconds)
270 < Monitor.Swap.alertTimeout.NOTICE=60
271 < Monitor.Swap.alertTimeout.WARNING=900
163 < Monitor.Swap.alertTimeout.CAUTION=1800
164 < Monitor.Swap.alertTimeout.CRITICAL=3600
269 > # UserCount monitor threshold values
270 > Monitor.UserCount.threshold.LOWER=100
271 > Monitor.UserCount.threshold.UPPER=200
272  
273 + # Disk monitor threshold values
274 + Monitor.Disk.threshold.LOWER=90
275 + Monitor.Disk.threshold.UPPER=95
276 + Monitor.DiskInode.threshold.LOWER=90
277 + Monitor.DiskInode.threshold.UPPER=95
278 + # Thresholds given are PERCENTAGE or VALUE
279 + # where PERCENTAGE is a percentage of disk in use
280 + # and VALUE is an absolute value of space free
281 + Monitor.Disk.thresholdMeasure=PERCENTAGE
282 + Monitor.DiskInode.thresholdMeasure=PERCENTAGE
283  
284 < ## Heartbeat monitor configuration
285 < # threshold values
286 < #
287 < # note: if the UPPER threshold is broken,
288 < # the alertTimeout values are halved.
172 < # This is to escalate the alert quicker.
173 < Monitor.Heartbeat.checkPeriod=50
174 < # these are values in seconds from when the heartbeat
175 < # was *expected* to arrive (ie. last + hearbeat period)
176 < Monitor.Heartbeat.threshold.LOWER=120
177 < Monitor.Heartbeat.threshold.LOWER=300
284 > # DiskIO monitor threshold values (in bytes)
285 > Monitor.DiskIO.rbytes.threshold.LOWER=10000000
286 > Monitor.DiskIO.rbytes.threshold.UPPER=50000000
287 > Monitor.DiskIO.wbytes.threshold.LOWER=10000000
288 > Monitor.DiskIO.wbytes.threshold.UPPER=50000000
289  
290 < # timings of the alerts (in seconds)
291 < Monitor.Heartbeat.alertTimeout.NOTICE=60
292 < Monitor.Heartbeat.alertTimeout.WARNING=900
293 < Monitor.Heartbeat.alertTimeout.CAUTION=1800
294 < Monitor.Heartbeat.alertTimeout.CRITICAL=3600
290 > # NetIO monitor threshold values (in bytes)
291 > Monitor.NetIO.rxbytes.threshold.LOWER=10000000
292 > Monitor.NetIO.rxbytes.threshold.UPPER=50000000
293 > Monitor.NetIO.txbytes.threshold.LOWER=10000000
294 > Monitor.NetIO.txbytes.threshold.UPPER=50000000
295  
296 < # this means it will reach a FINAL level,
297 < # and thus the host will be removed from the monitor list,
298 < # if the highest level alert is reached and occours this
299 < # number of times.
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 the queue in use
301 > # and VALUE is an absolute value of free space
302 > Monitor.Queue.thresholdMeasure=PERCENTAGE
303 >
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
309 > # BE LOOKED AT!
310   #
311 < # int this setup, that means 5 CRITICAL alerts would occour
312 < # on a Heartbeat before reaching FINAL.
313 < # If this value is wrong or not present, FINAL is never reached
314 < #
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 >
315 > # Heartbeat threshold values
316 > # these are values in seconds from when the heartbeat
317 > # was *expected* to arrive (ie. last + hearbeat period)
318 > Monitor.Heartbeat.threshold.LOWER=180
319 > Monitor.Heartbeat.threshold.UPPER=300
320 > # this is how often we will run a "check" of heartbeats
321 > Monitor.Heartbeat.checkPeriod=50
322 > # how many times we should be at the highest level before
323 > # we go to a FINAL alert
324   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=importantserver.example.com;myserver.example.com
329  
330 +
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 209 | Line 346 | Monitor.Heartbeat.reachFINALcount=5
346   # %timeOfFirstAlert%    - the time the first alert was sent
347   #
348  
349 < # alerters to run
350 < Alerter.PluginsPackage=uk.ac.ukc.iscream.client.alerters
351 < Alerter.Plugins=EMail;IRC;
349 > # The java package containing the alerters
350 > Alerter.PluginsPackage=uk.org.iscream.cms.server.client.alerters
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 < # EMail alerter configuration
358 < Alerter.EMail.level = CAUTION
359 < Alerter.EMail.defaultDestList = dev@i-scream.org.uk
360 < Alerter.EMail.sender = dev@i-scream.org.uk
361 < Alerter.EMail.smtpServer = mercury.ukc.ac.uk
357 > # Configuration for the EMail alerter
358 > # The level alerts have to bypass to be e-mailed out
359 > Alerter.EMail.level = WARNING
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 < 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\nThe next alert (should one occur) will be sent in %timeTillNextAlert%.
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 < # 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 < Alerter.IRC.comment = i-scream alerting bot
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 242 | 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 + # 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 +
416   ############################################################
417   #### WebFeeder Configuration
418   ############################################################
419  
420 < # Root Path
421 < WebFeeder.rootPath = /usr/local/proj/co600_10/webroot
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 < # Latest Data
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 > # 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 > # 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.
440 > WebFeeder.alertDeleteOlderThan = 300
441 >
442 > # 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   WebFeeder.latestSubDir = latest
452 < WebFeeder.latestFileName = latest_dir
452 > WebFeeder.latestFileName = latest_data
453  
454 < ############################################################
454 > # As above, but for the alerts.
455 > WebFeeder.alertSubDir = alert
456 > WebFeeder.alertFileName = alert_data
457  
458 +
459 + ############################################################

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines