Everyone has mentioned Nagios - which is great, but may not give you everything you need.
A better option for what you are looking for might be OpsView - which is just a wrapper around nagios really, but adds graphs of services over time - so you can see what your servers have been doing over the past day, week, month or year.
Both Nagios and OpsView take some time to set up however.
One very useful and extremely easy-to-install answer is munin. The default install of munin gives you a simple web-page with graphs of all sorts of low-level server metrics, such as how much of your memory is used for cache or actively by apps. How many inodes your filesystem is using,disk i/o speed, CPU activity -broken down by type - etc. It will even monitor apache or mysql for you - how many processes are doing what at any given instant. The only thing I don't think it will do is check the actual response time of your web pages - but even that wouldn't be too hard to set up.