Best FOSS software for monitoring
- Collecting hardware data - CPU, Memory, Network, and Disk Metrics are collected and reported on.
- Flexible design - It is very easy to build out even very large environments via the templating system. You can also start where you are - network monitoring, server monitoring, etc. and then build it out from there as time and resources permit.
- Provides a "plugin architecture" (via XML templates) to allow end users to extend it to monitor all kinds of equipment, software, or other metrics that are not already added into the software already.
- Very complete documentation. Almost every aspect of Zabbix has been documented and reported on.
- Cost - Zabbix is FOSS software and always free. Support is reasonably priced and readily available.
Cons
- Zabbix is very complex and the documentation, while complete, is not particularly well organized. In particular, I would like to see step by step instructions (similar to the synthetic user monitoring example) for installation and setup; more about what some of the numbers mean; etc.
- Zabbix system requirements are artificially high to cover every possibility, yet rarely are those resources used. Would like to see segmented resource requirements based on the size of monitoring to more efficiently size an environment.
- Zabbix has some nasty "gotya's" that are not really addressed in the documentation. For example, when first setting up an environment, there is nothing discussing the order of setup (host group, then users, then host, for example); but doing it in the wrong order will make it much more difficult to use later on. A tutorial (or series of tutorials) setting up the first several devices would go a long way here.
- Not so much a con as an UGLY that is common to most of this class of software - Zabbix requires a great deal of detailed understanding across several different IT disciplines. DBA knowledge for maintaining the database, System Administration for setting up and maintaining the server(s) and its software, Networking for setting up monitoring of the network, each software package you will have synthetic monitors of, etc. In most larger organizations, that means a lot of collaboration, but in smaller organizations, where it may only be a single person or team doing all the work, it means someone must be deeply knowledgeable about each aspect being monitored. It is no longer enough to just know the OS it is running on and leaving it to the user to know the software, or the network team to deal with the network issues.