Nagios
Nagios is THE monitoring system today. It is quick, featureful and easily extensible. With the addition of PNP, observed metrics can be stored in RRAs and graphed with RRDtool. If you're looking for quick comprehensive graphing of standard system metrics like CPU, Memory and Network, check out Ganglia.
Plugins
Nagios is most easily extensible through the scripting of additional plugins. There are guidelines for developers doing so to follow here but I've never once seen them followed in the wild. Here are several BASH plugins that are coded to these guidelines including two basic examples so you can more easily code your own to spec. I hope to put up at least skeleton code to spec for some of the other languages I know such as Perl, Python, PHP, Java and C. Please let me know if you already have such code.
File | Version | Description | Language | License |
---|---|---|---|---|
check_timestamp_digit | 0.1 | Example of how to code a Nagios plugin to spec in BASH. | BASH | GPL v2 |
check_skeleton | 0.1 | Skeleton code to implement a plugin in BASH | BASH | GPL v2 |
check_cpu | 0.4 | Check any or all of the CPU percentages | BASH | GPL v2 |
check_deviceio | 0.2 | Check read/write/total device I/O | BASH | GPL v2 |
check_mail_relays | 0.1 | Check mail relay usage | BASH | GPL v2 |
check_mem | 0.2 | Check memory usage/free | BASH | GPL v2 |
check_mem_snmp | 0.1 | Check memory usage/free via SNMP | BASH | GPL v2 |
check_mysql_slave | 0.1 | Check MySQL slave is up-to-date | BASH | GPL v2 |
check_mysql_uptime | 0.1 | Check if MySQL has restarted since last check | BASH | GPL v2 |
check_route | 0.1 | Check that a route is in the routing table | BASH | GPL v2 |