Project Page Logo


Server Monitor is a java based application that monitors Web servers and Email Servers for service availability. If server becomes inaccessablie, Server monitor sends SMS based notifications to Server administrators.

Currently Server Monitor uses SMS service provided by

To provide failure free operation, two instances of server monitor can be run one as master and other as slave. Master node checks servers for service availability and slave node monitors Master node. If Master node is not accessable, slave node takes over as master node.


Server Monitor can be configured by changing required parameters in Config.xml. Here is a description of different elements

defines the mode in which Server Monitor is running. It can be Master or Slave. Type attribute can have either "master" or "slave" value. If type is set to "master" then it is necessary to provide a TCP port which is used for communication between master and slave node.

interval between two consecutive test attempts by ServerMonitor. It is expressed in minutes.

configurations related to SMS service provided by
UserId: UserId of account
Password: Password of account
FromNumber: This number will be displayed as SMS Sender's number.

Test related configurations. Id is a unique number or string to differentiate between different test sets.
ServerName: Name of the server you want to test. It can be any name just to identify the server.
ServerType: Can be either "WebServer" or "MailServer"
Address: URL of the sever
Port: Port at which server is listening. Not needed if Server type is "WebServer"
Notify: Contains a list of users with their phone numbers that are to be notified in case Server becomes inaccessable.
User: A user who will be notified when a server becomes inaccessable. Name attribute is the name of the user and currently only supported type for notifying a user is "sms"

Sample Configuration File
<?xml version="1.0" encoding="UTF-8"?> <ServerMonitor> <!-- For running as Master --> <Mode type="master" port="2254" /> <!-- For running as Slave--> <!-- <Mode type="slave" master="" port="2254"/> --> <!-- Duration between two consective test attempts, in minutes--> <TestInterval>10</TestInterval> <Sms> <UserId>nicesms-account</UserId> <Password>nicesms-password</Password> <FromNumber>123456789</FromNumber> </Sms> <Test id="1"> <ServerName>Web Server</ServerName> <ServerType>WebServer</ServerType> <Address></Address> <Notify> <User name="Kwanghyuen" type="sms">123456789</User> <User name="JongHeum" type="sms">123456789</User> </Notify> </Test> <Test id="2"> <ServerName>EMail Server</ServerName> <ServerType>MailServer</ServerType> <Address></Address> <Port>25</Port> <Notify> <User name="Kwanghyuen" type="sms">123456789</User> <User name="JongHeum" type="sms">123456789</User> </Notify> </Test> </ServerMonitor>