# This is the default system configuration file
# used by all components of the i-scream system
#
# ALL configuration that uses the centralised
# configuration system has this file as its 
# root of configuration
#
# $Author: tdb1 $
# $Id: system.conf,v 1.55 2001/05/29 17:02:34 tdb1 Exp $
#
############################################################
#### Configuration Files & Groups
############################################################

# for computing machines
group.computing=Host.129.12.4.*;
group.rocks=Host.agate.ukc.ac.uk;Host.arkose.ukc.ac.uk;Host.basalt.ukc.ac.uk;Host.chalk.ukc.ac.uk;\
            Host.chert.ukc.ac.uk;Host.granite.ukc.ac.uk;Host.jade.ukc.ac.uk;Host.jasper.ukc.ac.uk;\
            Host.magnetite.ukc.ac.uk;Host.obsidian.ukc.ac.uk;Host.pumice.ukc.ac.uk;\
            Host.pyrite.ukc.ac.uk;Host.slate.ukc.ac.uk;Host.topaz.ukc.ac.uk;
group.compsoc=Host.compsoc1.ukc.ac.uk

config.computing=computing.conf
config.rocks=rocks.conf
config.compsoc1=rocks.conf

# for library machines
group.library=Host.129.12.58.*;
config.library=library.conf

# for SSB machines
group.ssb=Host.stue*.ukc.ac.uk;
config.ssb=ssb.conf

# mySQL configuration
config.mySQL=mySQL.conf

############################################################
#### Misc system-wide configuration
############################################################

# the time (in seconds) that checks should be made for
# changes in configuration
ConfigurationProxy.updateTime=60

# The time interval at which the Queue's should be monitored
Queue.MonitorInterval=15
# The upper limit for a Queue
Queue.SizeLimit=1000
# The removal algorithm
Queue.RemoveAlgorithm=FIRST


############################################################
#### FilterManager configuration
############################################################

# The default port to listen for new host connections
FilterManager.listenPort=4567



############################################################
#### Filter configuration
############################################################

# The default port for Filter's to listen on
Filter.UDPListenPort=4589
Filter.TCPListenPort=4589

# Plugin Information
Filter.PluginsPackage=uk.org.iscream.cms.server.filter.plugins
Filter.Plugins=TypeChecker;EnforceEssentialData

# The name for the root filter
RootFilter.name=root

# The default parent filter (should almost always be the same as Filter.rootFilter)
Filter.parentFilter=root



############################################################
#### Root filter interfaces configuration
############################################################

# Comment either of these (or delete them) and
# that interface won't be started
RootFilter.realtimeInterfaceName=realtimeclients
RootFilter.dbInterfaceName=database



############################################################
#### Client interface configuration
############################################################

# The port for the client interface to listen on
ClientInterface.listenPort=4510
# The name for the client interface
ClientInterface.name=realtimeclients



############################################################
#### Database interface configuration
############################################################

# The name for the Database interface
DBInterface.name=database



############################################################
#### Host Configuration
############################################################

# The default filter for a new host
Host.filter=computingFilter;

# The default update times for a new host
Host.UDPUpdateTime=10
Host.TCPUpdateTime=60
Host.AveragerUpdateTime=5

# The services checks to run on a host
Host.serviceChecksPackage=uk.org.iscream.cms.server.filter.plugins



############################################################
#### Monitor Configuration
############################################################

## The monitors to run
Monitor.PluginsPackage=uk.org.iscream.cms.server.client.monitors
Monitor.Plugins=CPU;Load;Process;Disk;Memory;Swap;Services;\
                Heartbeat;Queue;UserCount;WebFeeder;

## Default alert timeouts
# these can be override on a per-monitor basis
# timings of the alerts (in seconds)
Monitor.alertTimeout.NOTICE=60
Monitor.alertTimeout.WARNING=900
Monitor.alertTimeout.CAUTION=1800
Monitor.alertTimeout.CRITICAL=3600

## Threshold values
# 
# note: if the UPPER threshold is broken,
# the alertTimeout values are halved.
# This is to escalate the alert quicker.
#

# CPU monitor threshold values
Monitor.CPU.threshold.LOWER=90
Monitor.CPU.threshold.UPPER=99


# Load monitor threshold values
Monitor.Load.threshold.LOWER=10.0
Monitor.Load.threshold.UPPER=20.0


# Process Count threshold values
Monitor.Process.threshold.LOWER=1000
Monitor.Process.threshold.UPPER=1500


# Memory monitor threshold values
Monitor.Memory.threshold.LOWER=80
Monitor.Memory.threshold.UPPER=90


# Swap monitor threshold values
Monitor.Swap.threshold.LOWER=80
Monitor.Swap.threshold.UPPER=90


# UserCount monitor threshold values
Monitor.UserCount.threshold.LOWER=100
Monitor.UserCount.threshold.UPPER=200


# Disk monitor threshold values
Monitor.Disk.threshold.LOWER=90
Monitor.Disk.threshold.UPPER=95
# Thresholds given are PERCENTAGE or VALUE
# where PERCENTAGE is a percentage of disk in use
# and VALUE is an absolute value of space free
Monitor.Disk.thresholdMeasure=PERCENTAGE


# Disk monitor threshold values
Monitor.Queue.threshold.LOWER=50
Monitor.Queue.threshold.UPPER=80
# Thresholds given are PERCENTAGE or VALUE
# where PERCENTAGE is a percentage of disk in use
# and VALUE is an absolute value of space free
Monitor.Queue.thresholdMeasure=PERCENTAGE


# Services monitor threshold values
# 
# THE SERVICES MONITOR USES A HACK
# WHEREBY IT USES THE SERVICE STATUS
# AS THE THRESHOLD LEVEL.  THIS SHOULD
# BE LOOKED AT!
#
# how many times we should be at the highest level before
# we go to a FINAL alert
Monitor.Services.reachFINALcount=5


# Heartbeat threshold values
# these are values in seconds from when the heartbeat
# was *expected* to arrive (ie. last + hearbeat period)
Monitor.Heartbeat.threshold.LOWER=180
Monitor.Heartbeat.threshold.UPPER=300
# this is how often we will run a "check" of heartbeats
Monitor.Heartbeat.checkPeriod=50
# how many times we should be at the highest level before
# we go to a FINAL alert
Monitor.Heartbeat.reachFINALcount=5



############################################################
#### Alerter Configuration
############################################################
# The following var's are understood by ALL alerters for messages
#
# %level%               - the alert level (eg, WARNING)
# %threshold%           - the threshold broken (eg, LOWER)
# %source%              - the source of the alert (eg, raptor.ukc.ac.uk)
# %value%               - the value reached (eg, 95)
# %thresholdValue%      - the value of the threshold broken (eg, 90)
# %attributeName%       - the attribute that has caused the alert (eg, CPU User)
# %timeTillNextAlert%   - the time the next alert will be sent out
# %timeSinceFirstAlert% - the time elapsed since the first alert for this problem
# %timeOfFirstAlert%    - the time the first alert was sent
#

# alerters to run
Alerter.PluginsPackage=uk.org.iscream.cms.server.client.alerters
Alerter.Plugins=EMail;IRC;WebFeeder;Logging;


# EMail alerter configuration
Alerter.EMail.level = WARNING
Alerter.EMail.destList = dev@i-scream.org.uk
Alerter.EMail.sender = dev@i-scream.org.uk
Alerter.EMail.smtpServer = mercury.ukc.ac.uk
Alerter.EMail.subject = i-scream alert: %level% alert on %source% for %attributeName%
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%.


# IRC alerter configuration
Alerter.IRC.level = OK
Alerter.IRC.IRCServer = killigrew.ukc.ac.uk
Alerter.IRC.IRCPort = 6667
Alerter.IRC.nickList = iscreamBot;_iscreamBot;i-screamBot
Alerter.IRC.user = i-scream
Alerter.IRC.comment = i-scream alerting bot
Alerter.IRC.channel = #i-scream
Alerter.IRC.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value% - time till next alert (should one occur), %timeTillNextAlert%
Alerter.IRC.reconnectDelay = 30
Alerter.IRC.startupNotice = i-scream alerting bot activated 
Alerter.IRC.stopCommand = stop alerts
Alerter.IRC.startCommand = start alerts
Alerter.IRC.lastAlertCommand = last alert
Alerter.IRC.joinCommand = join
Alerter.IRC.nickChangeCommand = nick
Alerter.IRC.statCommand = statistics
Alerter.IRC.uptimeCommand = uptime
Alerter.IRC.timeSinceLastAlertCommand = time since last alert
Alerter.IRC.versionCommand = version
Alerter.IRC.helpCommand = help
Alerter.IRC.rejectMessage = sorry, I don't understand your request


# Logging alerter configuration
Alerter.Logging.level = WARNING
Alerter.EMail.message = %level%: %attributeName% on %source% has passed %threshold%(%thresholdValue%) threshold with %value%



############################################################
#### WebFeeder Configuration
############################################################

# Define these (one or both_ to turn on the WebFeeder's,
# comment it to turn them off
WebFeeder.latestActive = true
WebFeeder.alertActive = true

# Only pass on alerts past this level
Alerter.WebFeeder.level = OK

# Check period in seconds (for cleaning stale/old alerts)
WebFeeder.checkPeriod = 120

# Delete alerts older than this, in seconds.
# Files are only check every WebFeeder.checkPeriod seconds.
WebFeeder.alertDeleteOlderThan = 300

# Root Path
WebFeeder.rootPath = /usr/local/proj/co600_10/webroot

# Latest Data
WebFeeder.latestSubDir = latest
WebFeeder.latestFileName = latest_data

# Alert Data
WebFeeder.alertSubDir = alert
WebFeeder.alertFileName = alert_data


############################################################
