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.73
Committed: Fri Feb 28 15:19:09 2003 UTC (21 years, 2 months ago) by tdb
Branch: MAIN
Changes since 1.72: +2 -2 lines
Log Message:
Changed queue monitoring period from 15 seconds to 5 minutes. Makes sense
to do this now we've dramatically reduced the flow of packets.

File Contents

# Content
1 # 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 # 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: tdb $
13 # $Id: system.conf,v 1.72 2003/02/27 22:08:03 tdb Exp $
14 #
15 # http://www.i-scream.org.uk/
16 #
17
18 ############################################################
19 #### Configuration Files & Groups
20 ############################################################
21
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 # 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
120
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
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
174
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 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
195
196 ############################################################
197 #### Database interface configuration
198 ############################################################
199
200 # The name for the Database Interface. This should match
201 # the name given to the Root Filter.
202 DBInterface.name=database
203
204
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;
237
238 # Alerts timeout after a given time in seconds and go up
239 # to the next level. These can be overridden for monitors
240 # on an individual basis.
241 Monitor.alertTimeout.NOTICE=60
242 Monitor.alertTimeout.WARNING=900
243 Monitor.alertTimeout.CAUTION=1800
244 Monitor.alertTimeout.CRITICAL=3600
245
246 ## Threshold values
247 #
248 # Here we specify the threshold for each monitor. When
249 # a threshold is broken an alert is raised. If the
250 # UPPER threshold is broken the alertTimeout values
251 # given above are halved to make the alert escalate
252 # quicker.
253
254 # CPU monitor threshold values
255 Monitor.CPU.threshold.LOWER=90
256 Monitor.CPU.threshold.UPPER=95
257
258 # Load monitor threshold values
259 Monitor.Load.threshold.LOWER=10.0
260 Monitor.Load.threshold.UPPER=20.0
261
262 # Process Count threshold values
263 Monitor.Process.threshold.LOWER=500
264 Monitor.Process.threshold.UPPER=1000
265
266 # Memory monitor threshold values
267 Monitor.Memory.threshold.LOWER=80
268 Monitor.Memory.threshold.UPPER=90
269 # Whether to include 'cache' in the 'free' value
270 # (1 is true, anything else is false)
271 Monitor.Memory.useCacheAsFree=1
272
273 # Swap monitor threshold values
274 Monitor.Swap.threshold.LOWER=80
275 Monitor.Swap.threshold.UPPER=90
276
277 # UserCount monitor threshold values
278 Monitor.UserCount.threshold.LOWER=100
279 Monitor.UserCount.threshold.UPPER=200
280
281 # Disk monitor threshold values
282 Monitor.Disk.threshold.LOWER=90
283 Monitor.Disk.threshold.UPPER=95
284 # Thresholds given are PERCENTAGE or VALUE
285 # where PERCENTAGE is a percentage of disk in use
286 # and VALUE is an absolute value of space free
287 Monitor.Disk.thresholdMeasure=PERCENTAGE
288
289 # Queue monitor threshold values
290 Monitor.Queue.threshold.LOWER=50
291 Monitor.Queue.threshold.UPPER=80
292 # Thresholds given are PERCENTAGE or VALUE
293 # where PERCENTAGE is a percentage of the queue in use
294 # and VALUE is an absolute value of free space
295 Monitor.Queue.thresholdMeasure=PERCENTAGE
296
297 # Services monitor threshold values
298 #
299 # THE SERVICES MONITOR USES A HACK
300 # WHEREBY IT USES THE SERVICE STATUS
301 # AS THE THRESHOLD LEVEL. THIS SHOULD
302 # BE LOOKED AT!
303 #
304 # how many times we should be at the highest level before
305 # we go to a FINAL alert
306 Monitor.Services.reachFINALcount=5
307
308 # Heartbeat threshold values
309 # these are values in seconds from when the heartbeat
310 # was *expected* to arrive (ie. last + hearbeat period)
311 Monitor.Heartbeat.threshold.LOWER=180
312 Monitor.Heartbeat.threshold.UPPER=300
313 # this is how often we will run a "check" of heartbeats
314 Monitor.Heartbeat.checkPeriod=50
315 # how many times we should be at the highest level before
316 # we go to a FINAL alert
317 Monitor.Heartbeat.reachFINALcount=5
318 # list of hosts we expect to have at startup
319 # this ensures we notice hosts that aren't running, not
320 # just those that have gone down recently.
321 #Monitor.Heartbeat.initialHosts=importantserver.example.com;myserver.example.com
322
323
324 ############################################################
325 #### Alerter Configuration
326 ############################################################
327 # The following variables are understood by ALL alerters
328 # for messages. They will be substituted for their
329 # appropriate value.
330 #
331 # %level% - the alert level (eg, WARNING)
332 # %threshold% - the threshold broken (eg, LOWER)
333 # %source% - the source of the alert (eg, raptor.ukc.ac.uk)
334 # %value% - the value reached (eg, 95)
335 # %thresholdValue% - the value of the threshold broken (eg, 90)
336 # %attributeName% - the attribute that has caused the alert (eg, CPU User)
337 # %timeTillNextAlert% - the time the next alert will be sent out
338 # %timeSinceFirstAlert% - the time elapsed since the first alert for this problem
339 # %timeOfFirstAlert% - the time the first alert was sent
340 #
341
342 # The java package containing the alerters
343 Alerter.PluginsPackage=uk.org.iscream.cms.server.client.alerters
344 # And the names of the ones to activate
345 # You might want to turn them all on, but we only activate
346 # two basic ones by default.
347 # Alerter.Plugins=EMail;IRC;WebFeeder;Logging;
348 Alerter.Plugins=WebFeeder;Logging;
349
350 # Configuration for the EMail alerter
351 # The level alerts have to bypass to be e-mailed out
352 Alerter.EMail.level = WARNING
353 # A list of people to send alerts to
354 Alerter.EMail.destList = me@example.com
355 # The sender of the e-mail
356 Alerter.EMail.sender = me@example.com
357 # The SMTP server to send alerts to
358 Alerter.EMail.smtpServer = smtp.example.com
359 # The subject line of the e-mail
360 Alerter.EMail.subject = i-scream alert: %level% alert on %source% for %attributeName%
361 # The message in the e-mail
362 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%.
363
364 # Configuration for the IRC alerter
365 # The level alerts have to bypass to be sent
366 Alerter.IRC.level = OK
367 # The IRC server name
368 Alerter.IRC.IRCServer = irc.example.com
369 # and it's port
370 Alerter.IRC.IRCPort = 6667
371 # A list of nicks to try and be
372 Alerter.IRC.nickList = iscreamBot;_iscreamBot;i-screamBot
373 # Username to be
374 Alerter.IRC.user = i-scream
375 # Responses to CTCP prods
376 Alerter.IRC.comment = i-scream alerting bot (based on PircBot)
377 Alerter.IRC.finger = i-scream alerting bot (based on PircBot)
378 # Channel to join
379 Alerter.IRC.channel = #i-scream
380 # Message to use when sending an alert
381 Alerter.IRC.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value% - time till next alert (should one occur), %timeTillNextAlert%
382 # How long to wait before reconnecting
383 Alerter.IRC.reconnectDelay = 30
384 # Notice to send when starting up
385 Alerter.IRC.startupNotice = i-scream alerting bot activated
386 # Commands the bot will recognise
387 Alerter.IRC.stopCommand = stop alerts
388 Alerter.IRC.startCommand = start alerts
389 Alerter.IRC.lastAlertCommand = last alert
390 Alerter.IRC.joinCommand = join
391 Alerter.IRC.nickChangeCommand = nick
392 Alerter.IRC.statCommand = statistics
393 Alerter.IRC.uptimeCommand = uptime
394 Alerter.IRC.timeSinceLastAlertCommand = time since last alert
395 Alerter.IRC.versionCommand = version
396 Alerter.IRC.helpCommand = help
397 # Message to send when the bot is addressed and
398 # doesn't understand the command
399 Alerter.IRC.rejectMessage = sorry, I don't understand your request
400
401 # Configuration for the Logging Alerter
402 # This alerter writes alerts to the i-scream logfile.
403 # The level alerts have to bypass to be logged
404 Alerter.Logging.level = WARNING
405 # The message to use when logging the alert
406 Alerter.Logging.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value%
407
408
409 ############################################################
410 #### WebFeeder Configuration
411 ############################################################
412
413 # The WebFeeder drops alerts and latest data in to a
414 # directory for the web interface to use. It is essentially
415 # the link between the web interface and the server.
416
417 # Set these to something to tell the WebFeeder to drop
418 # latest data, alerts, or both. Comment themt o disable.
419 WebFeeder.latestActive = true
420 WebFeeder.alertActive = true
421
422 # We can make the WebFeeder only drop alerts that go
423 # past a certain level. The default is "OK", which makes
424 # all alerts get passed on.
425 Alerter.WebFeeder.level = OK
426
427 # The WebFeeder cleans out old and stale alerts when it
428 # performs a check. This setting is the period, in seconds,
429 # at which a check happens.
430 WebFeeder.checkPeriod = 120
431
432 # Delete alerts older than this, in seconds.
433 WebFeeder.alertDeleteOlderThan = 300
434
435 # Data will be dropped to a subdirectory (specified
436 # below) of this directory.
437 WebFeeder.rootPath = /web/i-scream
438
439 # SubDir is the directory below rootPath which latest
440 # data will be placed in. Below that a directory will
441 # be created with the machine name, and a file named
442 # FileName (specified here) will be created containg
443 # the data.
444 WebFeeder.latestSubDir = latest
445 WebFeeder.latestFileName = latest_data
446
447 # As above, but for the alerts.
448 WebFeeder.alertSubDir = alert
449 WebFeeder.alertFileName = alert_data
450
451
452 ############################################################