Can you recommend any alternatives to Nagios, capable of monitoring both Linux and Windows computers and having an extensible architecture? I would like free products, but commercial ones could also be acceptable.
I am interested in monitoring CPU load, memory load, swapping, running processes, running services as I intend to use the software for performance monitoring. I would also like the monitoring plugins to be able to generate events when a certain threshold is exceed for a period of time and to pass data to external application (custom event handler functionality).
I do not know yet the deployment scenario, therefore having a relatively small footprint and being able to run on a regular computer with little performance impact is a plus (monitor just the host).
Zabbix works great and his extremely flexible and scalable, you may distribute nodes or proxies among your sites
Maybe also the Nagios Fork Icinga is worth a look.
My sys admins have settled on Groundwork, which incorporates Nagios and other opensource products while improving the management interface, deployment, and configuration. The pay version is pretty cheap for 100 or fewer devices ($49/year).
We tried Hyperic and Zenoss. Hyperic was pretty good, but once you download it, they will hound you forever trying to sell the paid version - outside of Oracle, no one has ever called me so often about a product. Maybe that has changed now that Spring Source owns them. Zenoss looks good, but can be complicated to get setup to do useful stuff since it required a lot of snmp configuration and we started to run up against the limits of the open source version fairly early in our testing and decided that we couldn't afford the the paid version.
You might also find some other useful alternatives at http://monitoringforge.org
I run zenoss at work, but I run munin at home. They are both excellent products.
Zenoss is a full featured NMS and has many useful tools.
Munin is straight graphing and alerting. But very flexible.
If you want log file integration use zenoss. If not, use munin.
Have you looked at OpenNMS?
Two that come to mind are
I have switched from Nagios to Zabbix some time ago and though there are some problems with it - still they are easier to overcome and manage than Nagios, especially for people that are not technical nor do they have access to the server. Zabbix has nice web ui to manage hosts, services, alerts, triggers and so on and pretty flexible rule mechanism, autodiscovery, maps and other goodies - give it a try!
I used bigbrother a very long time ago, which is proprietary and shell script driven (really helps with unix-like compatibility). An open-source compatible port named hobbit was developed, which was subsequently renamed to xymon, which I then adopted. It is extremely fast, ridiculously easy to setup since it automatically graphs (using rrd), and meets AFAIK all enterprise criteria (reporting, groups, downtime, etc).
The thing that made me stick with it almost all of this time are the little things, like out of the box support for SSL cert expiration, the fact that you can configure it to alert you when something is running (cough like telnet on a solaris 9 install), and what I consider to be most important: context sensitive monitoring like doing more than just checking that port 80 is open, but making sure it's a HTTP 200, etc.
A Nagios-like alternative that is more modern and scalable would be Shinken.
100% python including a Livestatus API. So modern and maintainable.
Based on Pyro distributed programming, so no issue running it on one or ten boxes.
Of the open sourced solutions Shinken and Zabbix are the two outstanding ones that are taking off.
http://www.intellipool.se/
Intellipool is quite good (it's closed and paid) but it's not as pricey as the big boys.