SRVMON SERVER MONITORING SUITE
This suite is currently under development. This is a draft release. Version 1.0 expected around May/June 2015.
CURRENT VERSIONS :
Part | Version | Status | Priority |
---|---|---|---|
SRVMON DB | v | v | v |
-DB SQL | 1.1 | R1 Finished! | Freeze |
-Routines | 1.1 | R1 Finalization | Freeze |
SRVMON DIRECTOR | v | v | v |
-Updater | 1.1 | R1 Finished! | Freeze |
-Server | 1.0 | R1 Finished! | Freeze |
SRVMON AGENT | 1.0 | R1 Finished! | Freeze |
SRVMON WEBUI | 0.5 | R1 Development | High |
SRVMON DESKTOP | ?.? | R2 Planned | Low |
SRVMON ANDROID | ?.? | R2 Planned | Low |
SRVMON IOS | ?.? | R3 Maybe | None |
Overall suite version : 0.8 (Not ready for R1)
About
SRVMON is a simple monitoring suite for servers, switches, routers and every other device which has network access. SRVMON uses a SQL database, where it stores the hosts which should be checked. A user can define multiple status checks which can then be applied to a host. A user group can be notified via E-mail if there is any change in status of a host.
The suite is divided in multiple parts.
Database
The first and most important part is the database. The database has been created in MariaDB but should also work with MySQL. It should also be possible to use MSSQL. The database also offers multiple stored routines which can be used to control the data of the database.
Director
The next part is the SRVMON director. The directory also has 2 parts. The first part is the UPDATER which runs on the database server. The UPDATER then fetches a list of the available hosts from the database and checks if the hosts are reachable. The second part of the director is the SERVER, which is used to receive the XML data from the AGENTS. The UPDATER is written in Java and the SERVER is written in PHP.
- A director Shell script is available for testing (director-bash.sh)
- An updater written in C is planned (Just because I can :-)).
Agent
The next part is the SRVMON agent component. The SRVMON agent is used on the clients in order to communicate with the database and also used to execute the check commands on the host. The agent can execute multiple check commands which can be defined in the database. A service could be a simple shell script which checks the CPU usage. The agent would then periodically execute the script and send the output to the DIRECTOR server using XML data. The agent is written in Java.
- An agent Shell script is available for testing (agent-bash.sh)
- An agent written in C is planned (Just because I can :-)).
Web UI
An other part is the Web UI. The WebUI can be used to view and configure the SRVMON suite. The webinterface has been written in PHP5, JQuery/Javascript and also uses Bootstrap.
Desktop Client
The last part is the desktop client, which is essentially the same as the webinterface only that it is a standalone application. I created the application only to show you that it is possible to create multiple user interfaces for this suite because all the main logic happens in the database.
- Not yet decided if I use C++ w/ QT or Java...
Why
I created this monitoring suite just for fun and I know that there are other monitoring solutions available but I wanted to do my own project. The goal of this project is to create a completely customizable monitoring solution. Please feel free to modify and improve this suite.
I also set to my goal, that I want to get this package into the official Debian repositories so that everyone can get, work and share this project.
For any questions please send a mail to .
Prerequisites
Webserver requirements
- Apache 2
- MariaDB (or MySQL)
- PHP5
- PHP-GD
- PHP-FPDF
- PHP-MCRYPT
Server requirements
As operating system for the webinterface and director, I used Debian 7.8 Wheezy.
The agents should run on every system which supports Java and the SQL connector for Java. The service scripts that I use are simple shell scripts.
NOTE: You are not required to use the agent component. It is also possible to write an own agent in a shell script as long as it supports a connection to the database. The only thing that the agent does, is scheduling the service checks and executing the stored procedures in the database.
NOTE: A mobile client for Android devices is planned.