We are in need of a system management tool that continuously monitors servers'
availability and performance. In the event of network errors, the system will
alert the network administrator (or even correct the problem when possible)
before problems get seriously out of hand.
The system should run as a windows service. It should also have a configuration application
to allow the network adminstrator to create a list of tests. Each test should have a test
type (see "test types" below), a test interval (the time between tests), and a pre-defined action
(see "actions" below).
The code for this program should be created such that a coder can add additional test types,
actions, and notifications. As the winning bidder, you may be called upon to extend or support
this application for an additional fee. You may decline this if you wish.
**Test Types:**
Ping Test
URL Test
SMTP Test
DNS Test
Drive Free Space Test (Via UNC)
Service Test
NT Event Log Test
CPU Usage Test
**Actions:** Each test can be set up with an individual action profile, and each action profile may contain any number of
alert actions listed below. Each action can be set to run if a test is successful or unsuccessful. If no
action is specified for either the successful or unsuccessful test result, the system should simply log
the data to its system log (see "system log" below). Each action can be set to fire when N successful/unsuccessful results
occur.
Send an Email - Using the specified from, to, subject, message, smtp server, smtp username, and smtp password, the system
sends an email with the test information.
Restart a Service - Using the specified computer name (<computer name> or UNC), service name, parameters, and optional
username/password to connect as the system will restart the service.
Log event to a Syslog - Using the specified server, port, message, severity level, and facility, the system will send
the test information to the syslog server.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased.
## Platform
**System Log:**
All successful and unsuccessful tests and actions should be logged with date and time stamps to
a system log file. A new log file should be started each day. An option should allow logs older
than N days to be automatically deleted.
This system should be written in C# and designed to test Microsoft Windows 2000, XP, and 2003 clients and servers.