I need a website / server / network monitoring and reporting system created, smiler to services like [url removed, login to view], alerta.com.
However I want mine to be different in a few ways.
1) My site will be 100% free
2) I would like the developer (you) to use some Ajax if possible to make this thing shine
The system will have a unique way to collect stats and uptime / failures,
This will be unique to my system, users will supply the URL to their install of PhpSysInfo, and the script will pull the XML data for phpsysinfo, and store in database. We will store the following about the server on each request,
( phpsysinfo returns results for all of this in XML so it is easy..)
3) # of users logged in SSH
4) Load Averages
5) All of the networks Traffic data
6) % of memory used ( broken down in total, Kernal+applications, Buffers and Chached )
7) Disk swap in use
8) Each of the mounted file systems and the %, along with the total of all.
The script will also notice if the server has been rebooted since las check by seeing if uptime is smaller than last check. The script will assume server is down if no phpsysinfo page is returned.
Users should be able to setup alerts for the following things,
2) High Load ( defined by user, so if phpsysinfo shows load of 2 and user set alert level at 1.98, 2 is larger, so alert sent.
3) Notice of Reboot
4) Drive or Partition space warning, during signup of server to account, the script should pull a record of all partitions, so users can set warning for any partition when it reaches X % of usage.
Users should be notified by Email. ( ALL email's should be also saved in MySQL so users can lookup history of emails sent to them )
Each email should have as much info as possible, like a failure notice should include the last 3 checks when the server was up's load, users #, and Memory / Drive %'s. It should also send a Traceroute so users can quickly see if it is a server or network issue quickly.
Users should only get one failure notice, and when service is back online, the should get an online notice with the following, Weather uptime has changed, and if server was rebooted ( by checking uptime ), the total duration of downtime, the load, and drive %'s.
Other emails related to other alerts other than up/down notices, should just include info important to the alert.
So a Drive Usage warning should be like:
Drive or Partition /home is 80% full, 8GB used of 10GB allowed.
You set your drive warning for /home to 80%.
The Script/Sytem, data storage, ans signup
The system should store all data in MySQL, I have very fast SQL servers, however the size of storing all of this data will be huge, so make sure you code this perfect to not waste space, or speed.
Users should be able to signup, and verify email address.
Users should have a control panel, where they can add an unlimited # of servers to check.
There should be an area that list all servers, where they can quickly see basic stats. See image [url removed, login to view] for example.
There should be a history tab, where users can pull data for a specific time frame, and it will create charts of drive usage, and show the average for the load in the selected time, along with any other data possible.
We want to be an server monitor, but also an archive of all the servers past data so administrators can quickly diagnose issues.
There should be an area, where users can get links to "Public Stats" which will be unique per server, that will show a summary for the server. ( so users can post the link for their customers, etc.) the page should include,
the overall uptime and downtime, and average load since monitoring started. Should also list the current months days, and the down/uptime, and the average load for each day in a list, then a toggle to go back and forth between older months, and an option for a yearly view.
The script is needed ASAP, some payment can be made upfront, but not all, final payment made once site delivered. Programmers will also get 15% ad revenue for the first 6 months the site is in operation, and if you continue to help, we can extend that time, and increase %.