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.8 by ajm, Sun Feb 11 20:36:32 2001 UTC vs.
Revision 1.74 by tdb, Sun Mar 9 21:49:12 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 < # FilterManager configuration
18 > ############################################################
19 > #### Configuration Files & Groups
20 > ############################################################
21  
22 < # The default port to listen for new host connections
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 > # 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 >
62 >
63 > ############################################################
64 > #### Misc system-wide configuration
65 > ############################################################
66 >
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 internal Queue's can be monitored. This specifies
74 > # the interval, in seconds, at which their state should
75 > # be monitored.
76 > Queue.MonitorInterval=300
77 > # The maximum size a Queue can be before items are
78 > # dropped when new ones arrive.
79 > Queue.SizeLimit=1000
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 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 < # The default port for Filter's to listen on
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 >
113 > ############################################################
114 > #### Filter configuration
115 > ############################################################
116 >
117 > # A Filter accepts data from hosts on a UDP port. It is
118 > # specified here.
119   Filter.UDPListenPort=4589
18 Filter.TCPListenPort=4589
120  
121 < # The name for the root filter
121 > # Filters contain plugins for checking the data passing
122 > # through them. This plugins do the job of "filtering".
123 > # This setting specifies the java package they're
124 > # contained in.
125 > Filter.PluginsPackage=uk.org.iscream.cms.server.filter.plugins
126 > # And the names of the plugins to be loaded.
127 > Filter.Plugins=TypeChecker;EnforceEssentialData;SourceChecker
128 >
129 > # The special filter known as the "Root Filter" needs
130 > # a name within the system.
131   RootFilter.name=root
132 < # Comment either of these (or delete them) and
133 < # that interface won't be started
132 >
133 > # Every Filter, except the root, needs a parent to
134 > # send their data to. This is usually the root filter,
135 > # although in more complex setups it might be another
136 > # filter - giving a tree structure.
137 > Filter.parentFilter=root
138 >
139 > # A Filter can accept data through UDP, or from
140 > # an upstream Filter (CORBA). These methods can be
141 > # individually turned of on a filter. The default
142 > # is to have them all on.
143 > # (comment or set to 0 to disable)
144 > Filter.ActivateUDPReader=1
145 > Filter.ActivateCORBAReader=1
146 >
147 > # We can also specify Access Control Lists for the
148 > # UDP input of the Filters. One might want something
149 > # restrictive like this:
150 > #
151 > # Filter.UDPACL=DEFAULT:DENY;*.example.com:ALLOW
152 > Filter.UDPACL=DEFAULT:ALLOW
153 >
154 > # A Filter plugin called the SourceChecker verifies
155 > # that packets come from permitted hosts. It is
156 > # given an ACL to check the hosts against. A possible
157 > # ACL might be:
158 > #
159 > # Filter.SourceCheckerPluginACL=DEFAULT:DENY;*.example.com:ALLOW
160 > Filter.SourceCheckerPluginACL=DEFAULT:ALLOW
161 >
162 >
163 > ############################################################
164 > #### Root filter interfaces configuration
165 > ############################################################
166 >
167 > # The Root FIlter can send data to various upstream
168 > # data processors. There are two of these at present
169 > # in the server - the DBInterface and the ClientInterface.
170 > # Their component names are given here as defined below.
171 > # (the DBInterface is switched off - commented - by default)
172 > #RootFilter.dbInterfaceName=database
173   RootFilter.realtimeInterfaceName=realtimeclients
25 RootFilter.dbInterfaceName=database
174  
175 < # The port for the client interface to listen on
175 >
176 > ############################################################
177 > #### Client interface configuration
178 > ############################################################
179 >
180 > # The client interface listens for connections from clients
181 > # on a TCP port. It is specified here.
182   ClientInterface.listenPort=4510
183 + # The component name for the Client Interface. This should
184 + # match the name specified to the Root Filter above.
185 + ClientInterface.name=realtimeclients
186  
187 < # The default parent filter (should almost always be the same as Filter.rootFilter)
188 < Filter.parentFilter=root
187 > # The Client Interface has two channels, control and data.
188 > # Each of these can have an ACL for allowing connections.
189 > # As per previous examples in this configuration file they
190 > # could be set restrictively, but we'll leave them open
191 > # by default
192 > ClientInterface.TCPControlChannelACL=DEFAULT:ALLOW
193 > ClientInterface.TCPDataChannelACL=DEFAULT:ALLOW
194  
33 # The default filter for a new host
34 Host.filter=filter1
195  
196 < # The default update times for a new host
197 < Host.UDPUpdateTime=10
198 < Host.TCPUpdateTime=60
196 > ############################################################
197 > #### Database interface configuration
198 > ############################################################
199  
200 < # Plugin Information
201 < Filter.PluginsPackage=uk.ac.ukc.iscream.filter.plugins
202 < Filter.Plugins=TypeChecker;EnforceEssentialData
200 > # The name for the Database Interface. This should match
201 > # the name given to the Root Filter.
202 > DBInterface.name=database
203  
44 # The services checks to run on a host
45 Host.serviceChecksPackage=uk.ac.ukc.iscream.filter.plugins
46 Host.serviceChecks=Test;
204  
205 < # mySQL Details
206 < config.mySQL=mySQL.conf
205 > ############################################################
206 > #### Host Configuration
207 > ############################################################
208 >
209 > # A host can use any filter. We'll set the default filter
210 > # for all hosts to be 'filter1'. This can be a list.
211 > Host.filter=filter1;
212 >
213 > # Hosts send data every UDPUpdateTime, in seconds.
214 > Host.UDPUpdateTime=60
215 >
216 > # How long a hosts config is valid for (a TTL effectively)
217 > # after this time, in seconds, has passed a host should
218 > # consider it's configuration invalid and check for a new
219 > # configuration as soon as it can.
220 > Host.ConfigTTL=3600
221 >
222 > # We can run service checks on a host. The java package
223 > # which contains them is specified here.
224 > Host.serviceChecksPackage=uk.org.iscream.cms.server.filter.plugins
225 >
226 >
227 > ############################################################
228 > #### Monitor Configuration
229 > ############################################################
230 >
231 > # Monitors allow data to be watched for possible problems.
232 > # This setting specifies which java package they're in.
233 > Monitor.PluginsPackage=uk.org.iscream.cms.server.client.monitors
234 > # And which ones should be loaded.
235 > Monitor.Plugins=CPU;Load;Process;Disk;Memory;Swap;Services;\
236 >                Heartbeat;Queue;UserCount;WebFeeder;DiskIO;\
237 >                NetIO;Paging;
238 >
239 > # Alerts timeout after a given time in seconds and go up
240 > # to the next level. These can be overridden for monitors
241 > # on an individual basis.
242 > Monitor.alertTimeout.NOTICE=60
243 > Monitor.alertTimeout.WARNING=900
244 > Monitor.alertTimeout.CAUTION=1800
245 > Monitor.alertTimeout.CRITICAL=3600
246 >
247 > ## Threshold values
248 > #
249 > # Here we specify the threshold for each monitor. When
250 > # a threshold is broken an alert is raised. If the
251 > # UPPER threshold is broken the alertTimeout values
252 > # given above are halved to make the alert escalate
253 > # quicker.
254 >
255 > # CPU monitor threshold values
256 > Monitor.CPU.threshold.LOWER=90
257 > Monitor.CPU.threshold.UPPER=95
258 >
259 > # Load monitor threshold values
260 > Monitor.Load.threshold.LOWER=10.0
261 > Monitor.Load.threshold.UPPER=20.0
262 >
263 > # Paging monitor threshold values
264 > Monitor.Paging.threshold.LOWER=1000
265 > Monitor.Paging.threshold.UPPER=5000
266 >
267 > # Process Count threshold values
268 > Monitor.Process.threshold.LOWER=500
269 > Monitor.Process.threshold.UPPER=1000
270 >
271 > # Memory monitor threshold values
272 > Monitor.Memory.threshold.LOWER=80
273 > Monitor.Memory.threshold.UPPER=90
274 > # Whether to include 'cache' in the 'free' value
275 > # (1 is true, anything else is false)
276 > Monitor.Memory.useCacheAsFree=1
277 >
278 > # Swap monitor threshold values
279 > Monitor.Swap.threshold.LOWER=80
280 > Monitor.Swap.threshold.UPPER=90
281 >
282 > # UserCount monitor threshold values
283 > Monitor.UserCount.threshold.LOWER=100
284 > Monitor.UserCount.threshold.UPPER=200
285 >
286 > # Disk monitor threshold values
287 > Monitor.Disk.threshold.LOWER=90
288 > Monitor.Disk.threshold.UPPER=95
289 > Monitor.DiskInode.threshold.LOWER=90
290 > Monitor.DiskInode.threshold.UPPER=95
291 > # 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 > Monitor.Disk.thresholdMeasure=PERCENTAGE
295 > Monitor.DiskInode.thresholdMeasure=PERCENTAGE
296 >
297 > # DiskIO monitor threshold values (in bytes)
298 > Monitor.DiskIO.rbytes.threshold.LOWER=10000000
299 > Monitor.DiskIO.rbytes.threshold.UPPER=50000000
300 > Monitor.DiskIO.wbytes.threshold.LOWER=10000000
301 > Monitor.DiskIO.wbytes.threshold.UPPER=50000000
302 >
303 > # NetIO monitor threshold values (in bytes)
304 > Monitor.NetIO.rxbytes.threshold.LOWER=10000000
305 > Monitor.NetIO.rxbytes.threshold.UPPER=50000000
306 > Monitor.NetIO.txbytes.threshold.LOWER=10000000
307 > Monitor.NetIO.txbytes.threshold.UPPER=50000000
308 >
309 > # Queue monitor threshold values
310 > Monitor.Queue.threshold.LOWER=50
311 > Monitor.Queue.threshold.UPPER=80
312 > # Thresholds given are PERCENTAGE or VALUE
313 > # where PERCENTAGE is a percentage of the queue in use
314 > # and VALUE is an absolute value of free space
315 > Monitor.Queue.thresholdMeasure=PERCENTAGE
316 >
317 > # Services monitor threshold values
318 > #
319 > # THE SERVICES MONITOR USES A HACK
320 > # WHEREBY IT USES THE SERVICE STATUS
321 > # AS THE THRESHOLD LEVEL. THIS SHOULD
322 > # BE LOOKED AT!
323 > #
324 > # how many times we should be at the highest level before
325 > # we go to a FINAL alert
326 > Monitor.Services.reachFINALcount=5
327 >
328 > # Heartbeat threshold values
329 > # these are values in seconds from when the heartbeat
330 > # was *expected* to arrive (ie. last + hearbeat period)
331 > Monitor.Heartbeat.threshold.LOWER=180
332 > Monitor.Heartbeat.threshold.UPPER=300
333 > # this is how often we will run a "check" of heartbeats
334 > Monitor.Heartbeat.checkPeriod=50
335 > # how many times we should be at the highest level before
336 > # we go to a FINAL alert
337 > Monitor.Heartbeat.reachFINALcount=5
338 > # list of hosts we expect to have at startup
339 > # this ensures we notice hosts that aren't running, not
340 > # just those that have gone down recently.
341 > #Monitor.Heartbeat.initialHosts=importantserver.example.com;myserver.example.com
342 >
343 >
344 > ############################################################
345 > #### Alerter Configuration
346 > ############################################################
347 > # The following variables are understood by ALL alerters
348 > # for messages. They will be substituted for their
349 > # appropriate value.
350 > #
351 > # %level%               - the alert level (eg, WARNING)
352 > # %threshold%           - the threshold broken (eg, LOWER)
353 > # %source%              - the source of the alert (eg, raptor.ukc.ac.uk)
354 > # %value%               - the value reached (eg, 95)
355 > # %thresholdValue%      - the value of the threshold broken (eg, 90)
356 > # %attributeName%       - the attribute that has caused the alert (eg, CPU User)
357 > # %timeTillNextAlert%   - the time the next alert will be sent out
358 > # %timeSinceFirstAlert% - the time elapsed since the first alert for this problem
359 > # %timeOfFirstAlert%    - the time the first alert was sent
360 > #
361 >
362 > # The java package containing the alerters
363 > Alerter.PluginsPackage=uk.org.iscream.cms.server.client.alerters
364 > # And the names of the ones to activate
365 > # You might want to turn them all on, but we only activate
366 > # two basic ones by default.
367 > # Alerter.Plugins=EMail;IRC;WebFeeder;Logging;
368 > Alerter.Plugins=WebFeeder;Logging;
369 >
370 > # Configuration for the EMail alerter
371 > # The level alerts have to bypass to be e-mailed out
372 > Alerter.EMail.level = WARNING
373 > # A list of people to send alerts to
374 > Alerter.EMail.destList = me@example.com
375 > # The sender of the e-mail
376 > Alerter.EMail.sender = me@example.com
377 > # The SMTP server to send alerts to
378 > Alerter.EMail.smtpServer = smtp.example.com
379 > # The subject line of the e-mail
380 > Alerter.EMail.subject = i-scream alert: %level% alert on %source% for %attributeName%
381 > # The message in the e-mail
382 > 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%.
383 >
384 > # Configuration for the IRC alerter
385 > # The level alerts have to bypass to be sent
386 > Alerter.IRC.level = OK
387 > # The IRC server name
388 > Alerter.IRC.IRCServer = irc.example.com
389 > # and it's port
390 > Alerter.IRC.IRCPort = 6667
391 > # A list of nicks to try and be
392 > Alerter.IRC.nickList = iscreamBot;_iscreamBot;i-screamBot
393 > # Username to be
394 > Alerter.IRC.user = i-scream
395 > # Responses to CTCP prods
396 > Alerter.IRC.comment = i-scream alerting bot (based on PircBot)
397 > Alerter.IRC.finger = i-scream alerting bot (based on PircBot)
398 > # Channel to join
399 > Alerter.IRC.channel = #i-scream
400 > # Message to use when sending an alert
401 > Alerter.IRC.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value% - time till next alert (should one occur), %timeTillNextAlert%
402 > # How long to wait before reconnecting
403 > Alerter.IRC.reconnectDelay = 30
404 > # Notice to send when starting up
405 > Alerter.IRC.startupNotice = i-scream alerting bot activated
406 > # Commands the bot will recognise
407 > Alerter.IRC.stopCommand = stop alerts
408 > Alerter.IRC.startCommand = start alerts
409 > Alerter.IRC.lastAlertCommand = last alert
410 > Alerter.IRC.joinCommand = join
411 > Alerter.IRC.nickChangeCommand = nick
412 > Alerter.IRC.statCommand = statistics
413 > Alerter.IRC.uptimeCommand = uptime
414 > Alerter.IRC.timeSinceLastAlertCommand = time since last alert
415 > Alerter.IRC.versionCommand = version
416 > Alerter.IRC.helpCommand = help
417 > # Message to send when the bot is addressed and
418 > # doesn't understand the command
419 > Alerter.IRC.rejectMessage = sorry, I don't understand your request
420 >
421 > # Configuration for the Logging Alerter
422 > # This alerter writes alerts to the i-scream logfile.
423 > # The level alerts have to bypass to be logged
424 > Alerter.Logging.level = WARNING
425 > # The message to use when logging the alert
426 > Alerter.Logging.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value%
427 >
428 >
429 > ############################################################
430 > #### WebFeeder Configuration
431 > ############################################################
432 >
433 > # The WebFeeder drops alerts and latest data in to a
434 > # directory for the web interface to use. It is essentially
435 > # the link between the web interface and the server.
436 >
437 > # Set these to something to tell the WebFeeder to drop
438 > # latest data, alerts, or both. Comment themt o disable.
439 > WebFeeder.latestActive = true
440 > WebFeeder.alertActive = true
441 >
442 > # We can make the WebFeeder only drop alerts that go
443 > # past a certain level. The default is "OK", which makes
444 > # all alerts get passed on.
445 > Alerter.WebFeeder.level = OK
446 >
447 > # The WebFeeder cleans out old and stale alerts when it
448 > # performs a check. This setting is the period, in seconds,
449 > # at which a check happens.
450 > WebFeeder.checkPeriod = 120
451 >
452 > # Delete alerts older than this, in seconds.
453 > WebFeeder.alertDeleteOlderThan = 300
454 >
455 > # Data will be dropped to a subdirectory (specified
456 > # below) of this directory.
457 > WebFeeder.rootPath = /web/i-scream
458 >
459 > # SubDir is the directory below rootPath which latest
460 > # data will be placed in. Below that a directory will
461 > # be created with the machine name, and a file named
462 > # FileName (specified here) will be created containg
463 > # the data.
464 > WebFeeder.latestSubDir = latest
465 > WebFeeder.latestFileName = latest_data
466 >
467 > # As above, but for the alerts.
468 > WebFeeder.alertSubDir = alert
469 > WebFeeder.alertFileName = alert_data
470 >
471 >
472 > ############################################################

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines