Consider collectd (<a href="http://collectd.org/" rel="nofollow">http://collectd.org/</a>). Unlike a lot of the usual suspects, collectd is a daemon that records the usual server health stats every 10 seconds into rrd files. After running it for two years on a few dozen systems, it's never failed or caused undue load on its own. We often see events that would have gone completely unnoticed in a 5-minute monitoring window.
I've just started testing nagios <a href="http://www.nagios.org/" rel="nofollow">http://www.nagios.org/</a>.<p>It looks like complete overkill for a single server and I don't know how useful it is but it does look promising. It certainly looks like it would scale to tens if not hundreds of machines easily.<p>It includes an alert structure so different events triggers different actions. For example if the database stops responding email the DBA, if it's a router email the network admin etc.<p>Again I can't vouch for it over the long term as it's only been a week or so of testing but I can't complain atm.<p>It's a PITA field to research and I'm trying to avoid the 'roll my own' urges as I'd quite like to write it ;)<p>Anyone else got any ideas? There is a python based monitoring application out there somewhere that I stumbled upon about 6 months ago with a great plugin API and neato graphs but I can't find it again :( I blame google and not my incompetence :)
Cacti with SNMP is a very good single app solution to keeping an eye on server health trends.<p><a href="http://cacti.net/screenshots.php" rel="nofollow">http://cacti.net/screenshots.php</a><p>Smokeping is quite useful for monitoring network and basic http request response times.<p><a href="http://oss.oetiker.ch/smokeping/" rel="nofollow">http://oss.oetiker.ch/smokeping/</a><p>Nagios is good for actively monitoring services and alerting you when things go wrong.<p>
I generally use those and create tons of additional monitoring tools that generate reports/charts.
Are you talking about site load or server load? <p>If you want to measure the load on a server, look into the sar utility, which is included in Linux and all other Unix'es. It will take snapshots of data at 10 minute intervals and store them. Other tools will take that data and turn it into a bar graph or other visualization.
I'd like to know this too. <p>Rock Solid Arcade I suspect at many points is outgrowing my cacheless hit the database on every page setup. I started out with a cron job monitoring top every minute, and many times the usage hits 50% - I'm using Django, so the GIL means that's at full capacity, but I have no idea how instantaneous that figure is.<p>I got some helpful advice on the Django chat room to monitor Apache, but really what I'd like is for some warning to be dumped to a log if a connection queue backs up for more than a second (i.e. the server is at full capacity). That'll be time to cache/upgrade. :)
I used nagios at the last place I worked with a number of servers, and I was pretty happy with it, although I could very easily imagine something better.