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.74
Committed: Sun Mar 9 21:49:12 2003 UTC (21 years, 2 months ago) by tdb
Branch: MAIN
Changes since 1.73: +22 -2 lines
Log Message:
Added support for all the new stuff that ihost provides us with. Ideally
this lot needs to be revamped some day, but for now this brings it all back
up to date.

The biggest change is in the Disk monitor. It wasn't overly neat before,
so I've tidied that up, and also added support for inode monitoring.

Created the DiskIO, NetIO, and Paging monitors to support new types of data
we now handle. The first two sprung from the Disk monitor, whilst the last
is pretty normal.

Configuration has been updated to support the new monitors, although I
don't really have a feel for thresholds for the new types of data.

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.73 2003/02/28 15:19:09 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;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 ############################################################