I'm running several web proxy servers running on CentOS, and I'm looking for a simple way of constantly monitoring the health of the servers (how quickly they respond to web requests, how quickly web pages load, etc.)
I was thinking of possibly something with a web interface (PHP script maybe?), or possibly using tools from a bash prompt. What's an easy way of doing this? Thanks!
Nagios works really well
I recommend Zenoss Core (free). They have ZenPacks to pull custom information that needs to be tracked. Works great in my Linux/Windows environment.
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.
Nagios is great for small to medium networks.
OpenNMS is supposed to be the gold standard free monitoring for large infrastructure (thousands of hosts)
One of the most common tools used to do this is Nagios, its opensource and has a wide array of monitoring plugins, and if you don't like any of them its able to run any bash script you might like and handle the response. It displays all data through a web interface.
The configuration of nagios can be quite complicated and take a while to get used, but once your there its a fantastic tool. There are also a number of tools to help in its configuration such as nagiosconfig.
I generally think of health as fans, power, temperature, etc. If you are using dell servers, open manage can help with that. Nagios allows you to write your own plugins in whatever language, it just uses the exit status of the script. It is possible to tie open manage in with Nagios as well.
Nagios does have a web interface, and there are web interfaces that allow you to configure Nagios. But Nagios set up is not all that easy in general.
I run Nagios & Cacti, both polling through SNMP, and there has yet to be anything i cant monitor, sometimes i have to write my own php/perl module to do it, but nothing has been "unmonitorable."
Even with PHP+CURL i was able to monitor the logging in of our Exchange server's OWA portal, check that its actually logged in & can view the inbox, and if there is a failure anywhere in the path, notify an engineer.
As mentioned earlier, I like Nagios, Cacti and Munin. One more to look at that hasn't been mentioned is Monit
Another free and open source alternative that has agent based monitoring is Zabbix.