ANNEXE GLOBAL CONFIGURATION PROPERTIES

RINGSYS WEB MONITOR V1.1
REVISED: JUN 99
 
# WebMonitor.properties

# Default properties for the Web Monitor agent.

# -- DO NOT EDIT THIS FILE --
 

These properties can be overwritten in the configuration file for the agent (webmonitor.ini), in order to change its behaviour, in which case you need to restart the process for the change to be effective.

Also, they can be passed dynamically by the command line instruction agentmgt and the option –set. To obtain the current configuration, use the option –configuration

# The name of the monitor agent.

monitorName=webmonitor_v1.1

When using the standard installation program, one monitor is called WebMonitor1.1_live the other is called WebMonitor1.1_cont (like contingency).
# Port used by the RMI registry when listening to incoming connections.

rmiPort=1099

The port for running the agent as a server. Not required if disconnectedTest=true.
# Host used for the RMI callback

rmiHost=localhost

The full name+dns address of the computer hosting the monitor, or its valid IP address.
# Performance tolerance (should be >1 and reasonable ex: 1.5)

performanceTolerance=1.5

The tolerance for sudden changes (downward) of performance, comparing the average performance since the agent was started, and the last [N] performances. N is set by cycleAvgModulo.
# Default email SMTP host

hostMailAddress=localhost

The default server address for sending SMTP messages. 
# Period of time during which all urls are monitored - in minutes.

monitorPeriod=3

The period during which all URLs should be monitored (if the server is not overloaded). Will automatically speed-up or slow down if adjustableSleepDelay=true, except during the first cycle if isInitiallyAdjustableSleepDelay=false, in which case each thread will sleep during initialSleepDelay=10 seconds.
# Maximum number of threads used in one monitor.

monitorThreadPoolSize=3

The number of threads to monitor the URLs, in parallel.
# Initial delay between two connection tests - in seconds

initialSleepDelay=10

The duration for each thread to sleep between two connection tests during the first cycle if isInitiallyAdjustableSleepDelay=false or during all cycles if adjustableSleepDelay=false.
# If true, the delay between two connection tests is automatically adjusted to have all the

# urls monitored in the period of time allocated (see monitorPeriod).

adjustableSleepDelay=true

If set, will automatically adjust the duration for each thread to sleep in order to achieve the monitoring within the monitorPeriod, except may be during the first cycle, if isInitiallyAdjustableSleepDelay=false.
# If true, the delay between two connection tests is adjusted initially as well.

# If false, the first cycle of tests will be done using: initialSleepDelay

isInitiallyAdjustableSleepDelay=false

When adjustableSleepDelay=true, will still not adjust the speed of the monitor to test all the URLs as soon as possible (according to initialSleepDelay).
# Maximum time spent waiting for an acknowledgement before sending a new alarm - in minutes

maxAlarmAcknowledgeDelay=3

Maximum time for an alarm to be acknowledged, before it is escalated to the next level of escalation (PRIMARY à SECONDARY à EMERGENCY)
# Maximum time to test one URL - in minutes

maxTestDuration=5

Maximum time for testing an URL before the fault-tolerance module will timeout the test. If the number of timeouts per cycle is greater than maxTimeoutAllowed=3, a failure will be detected, and an alarm raised if urlTimeoutAlarms=true (will issue a warning in monitor.log).
# RMI Lease Value (timeout) in seconds (default = 600 ie 10mn)

rmiLeaseValue=60

Overrides the built-in timeout period for communication between monitors.
# Maximum time for the pool to wait for a free resource - in minutes

maxPoolWait=5

Maximum time for the group of thread testing the URLs to release a free resource, before the fault tolerance module will time-out the group of tests (will issue a warning in agent.log).
# If true, enable the remote management of the application

useRMI=true

Enables the communication with a GUI client, a Web front-end, or another monitor. To be turned-off with a very static and standalone configuration (will disable dynamic command line instructions).
# If true, test the application without connecting to the net

disconnectedTest=false

Disables any networking instructions, to be used only for testing.
# append the log files when restarting the agent, or erase

appendLogFiles=false

If set, will append to existing log files monitor.log, agent.log, alarms.log instead of overwriting when the agent restarts. When using plain-text database, an additional file monitor.log.append will append any monitor.log event according to dontRecordWarningEvents=false and dontRecordInfoEvents=true.
# The address we give when we send an email (Sender)

ourAddress=webmaster@localhost

The address which will show as sender in all emails sent by the monitor for alarms escalation or to specific webmasters.
# Name of the log file for the agent actions/events/errors

agentLog=agent.log

Absolute address of the agent.log file, which record information about system events.

Windows format à C:/LOGFILES/agent.log

Unix format à /home/monitor/logfiles/agent.log

# Name of the log file for the monitors actions/events/errors

monitorLog=monitor.log

Absolute address of the monitor.log file, which record information about URL specific events. More or less information will also be recorder in monitor.log.append (plain-text database) or event table (relational database).
# Name of the log file for the alarms actions/events/errors

alarmsLog=alarms.log

Absolute address of the alarms.log file, which record information about alarms, escalation, acknowledgements and webmaster messages.
# Period of time during which all remote agents are monitored - in minutes.

remoteAgentsPeriod=30

Period to monitor the other agents fond in remote.txt. Will automatically adjust the speed to converge to this period.
# Length of a cycle for timeout max, performance, logging etc.

cycleAvgModulo=15

Length of the cycle of tests, during which the performances will be averaged, at the end of which the recent average performance will be compared, and the timeout count reset to zero.
# Max number of timeout allowed on an url per cycle

maxTimeoutAllowed=3

Maximum number of timeouts allowed during a single cycle of tests on a single URL. Combinations of timeouts and failures will rather be compared to the URL specific failure tolerance.
# Number of connections attempts to a remote agent before the test is declared invalid.

RemoteAgentsMaxTestCount=3

Failure tolerance for remote monitor testing. What it means is that RemoteAgentsMaxTestCount=3 unsuccessful connections between one monitor and another will be considered to be a failure.
# Time of the pause between two connection attempts on a remote agent – in seconds

remoteAgentsRetryDelay=30

Time to wait before trying again to connect two monitors, and maybe detect a failure after RemoteAgentsMaxTestCount=3 unsuccessful connections.
# Action level for the alarms on remote agents (0=do nothing, 1=alarm, 3=log)

remoteAgentsAlarmLevel=1

Specify if failure a failure detected on a remote monitor should generate a system alarm, a logged event or nothing.
# Maximum number of escalation alarms per URL (must be >= 3 for live/cont/emergency pager)

maxTryAlarm=4

Forbids more escalation than maxTryAlarm=4, even if there is no acknowledgement (the alarm will be auto-acknowledge by SYSTEM) :

ESC No PRIM CONT EMERG

0: Alarm:0 No alarm No alarm

1: Alarm:1 Alarm:1 No alarm

2: Alarm:2 Alarm:2 Alarm:2

3: Alarm:2 Alarm:2 Alarm:2

4: No alarm No alarm No alarm

# Maximum number of concurrently active and escalating alarms - 0 if no checking.

maxAllowedAlarms=7

Forbids more that maxAllowedAlarms=7 on different URLs to escalate at the same time (will generate a single system alarm to inform maximum reached). Use to avoid for example pager over loading.
# Allow automatic change of url to public/protected (otherwise, determined once at first connect)

allowChangePublicProtected=true

Detects if an URL is password protected or public, and generate alarms each time there is a change publicà private or privateà public. Otherwise detect if public or private at first connection and won't allow any change (will be considered a failure state).
# Escalate site alarms

siteEscalation=true

Determine if URL specific alarms will be escalated (otherwise, if 

siteAlarms=true, only one alarm will be sent to PRIMary).

# Escalate system alarms

systemEscalation=true

Determine if remote monitor and system alarms will be escalated (otherwise, if systemAlarms=true, only one alarm will be sent to PRIMary).
# Raise site alarms

siteAlarms=true

Determine if URL specific alarms will be generated, or if events will be logged only. 
# Raise system alarms

systemAlarms=true

Determine if remote monitor and system alarms will be generated, or if events will be logged only.
# Test content

testContent=true

Allow or forbid actually downloading any web page content (which in many cases is not necessary to detect web failures, and will save bandwidth). If testContent=false then URL specific content policy, and other global content policies are not applicable (and will be ignored).
# Max content stored

maxContentLength=1024

Maximum size of web page which will be downloaded and where URL specific policy will be applied (ex. looking for a keyword). 
# Min content valid

minContentLength=10

Minimum size of content for the page to be valid (global content policy).
# Option to verify content once per cycle instead of every cycle

verifyContentOncePerCycle=false

Option to reduce bandwidth consumption, checking the content only once per cycleAvgModulo tests. If monitorPeriod=3 and cycleAvgModulo=10 then the content will be checked every 30 minutes.
# Raise alarm on timeout on url

urlTimeoutAlarms=true

If set, then only maxTimeoutAllowed=3 can occur on an URL before considering that there is a failure, and the timouts will be counted as failures to be compared to the URL specific failure tolerance.
# Raise alarm on content change

alarmOnContentChanged=false

If set, then allow generating content alarms (depending as well on URL specific content policy).
# Ingnore DNS problem when IP connection succeeds

ignoreDNSProblems=true

If set, then the monitor will not consider any failure where it is not possible to access the web site by name, but it is still possible to access it with is last known IP address.
# Check change of IP address

checkIPAddress=true

If set, will log any change of IP address (you may want to switch this off if you use dynamic load balancing)
# Raise alarm on restart

informRestart=true

Set if you want to notify of restart events (also, the same policy is applied as for failure notification, so if you don't subscribe to failure, you will not receive restarts).
# Do not raise an alarm for content changes, only send info msg

doInfoOnlyOnContentChanged=false

Send content alarms only to URL specific webmaster, do not generate a proper (escalated) alarm.
# Append or not advert messages

appendAdvertMessages=false

Set to append a text message to any alarm sent by the monitor. The text of the message will be read in advertMsg.
# File containing advertising message (msg.txt is root for msg.txt.com, msg.txt.fr) etc.

advertMsg=advertise.txt

Absolute address of the message to send with the alarms, if appendAdvertMessages is set.
# To record only Failure/Restart, not Warnings in db.event

dontRecordWarningEvents=false

The table event (relational database) or the file monitor.log.append are collecting all URL specific information, so you may want to select only important event types like "Failure" and "Restart".
# To record only Failure/Restart, not Infos in db.event

dontRecordInfoEvents=true

The table event (relational database) or the file monitor.log.append are collecting all URL specific information, so you may want to select only important event types like "Failure" and "Restart".
# Time to wait when shutting down the agent.

shutdownSleep=3

The time allowed for the agent to shut down properly, before being killed the hard way.
# If alarm sent to client email is sufficient, do not raise and escalate alarm

clientAlarmIsSufficient=false

If this option is set, then no alarm will be generated for an URL where there is a proper webmaster email address.
#

# Database connection

#

# Name of the class used to load the data from a data repository

database=uk.co.ringsys.webmonitor.TextDatabase

# or database=uk.co.ringsys.webmonitor.JDBCDatabase

As a database to load URLs, etc. and to log events, you can either use text files or a relational database.
URLFileName=url.txt

KobbyFileName=email.txt

RemoteAgentsFileName=remote.txt

If database=uk.co.ringsys.webmonitor.TextDatabase, then just specify the absolute address where the url.txt file (containing URLs specific information), email.txt (containing escalation details) and remote.txt (containing remote monitors addresses) can be found. 
Refer to other parts of the Documentation for the format description of these files.
#dbDriver=

#dbUrl=

#dbLogin=

#dbPassword=

If database=uk.co.ringsys.webmonitor.JDBCDatabase, then you need to set-up a JDBC database driver, a database absolute URL (containing the database server, port and name) and user security details. The JAR of the driver must be in the CLASSPATH when your agent is started up à modify .local.ksh or .agentsprofile.ksh
Refer to other parts of the Documentation for the format description of the database.