What is pymon?
The web site on sourceforge describes it as the following:
pymon is an open source network and process monitoring solution
implemented in python. The interface and conifiguration is designed
to be easily and rapidly deployed, saving on time and overhead often
associated with other monitoring solutions.
But what does that mean? It means that if you have 10 or 100 or 1000 servers, you can install pymon, make simple edits in a config file and then run it. You will be notified of the changes you care about on the servers you care about.
For instance, you can configure pymon to ping your servers every 5 minutes (or every 30 seconds, if that's what you want!). You also supply a ping count. The number of successful pings during each check gives you the raw data to check the server's "ping state." So if your server only responded to 3 out of 4 ping counts, then it will return with .75 or 75%. You can adjust the thresholds in the config file as well. Maybe 75% is enough for you, but maybe it's not. There are three states: OK, WARN, and ERROR. Each servive you want monitored can set "default" thresholds which will be used unless there are individual thresholds defined. So, for ERROR I can say anything between 0-50; WARN 51-79; OK 80-100. I will only get emails for ping checks that return less than 80%. The emails will give me the information I need to know and let me know if it's a WARNing or an ERROR.
Then there are checks for web servers (HTTP return status), general port connection availibility, SMTP checks, web page scraping (check for a particular string on a web page), etc. Pretty much anything on the network for which there are predictable results you can monitor with pymon.
History
Before pymon, there was a collection of shell scripts that did all kinds of specialized analysis and reporting. This was used in conjunction with a NetSaint install (back in the late 90's before They switched to Nagios). These were migrated to python in a procedural manner, and a lot of junk was dropped. It was then that it got the name "PyMonitor." Later, the code base got an object oriented refactor. And then another one. At that point, a code branch was created to explore a rewrite using the twisted networking framework, and around the same time, its name got shortened and all the capiltal letters went away.
The original purpose has always been to be easier and faster to setup, configure, maintain, and extend than Nagios.