So far I have been using the Nagios monitoring system. However, I'm not familiar with Cacti. How does Cacti compare to Nagios?
While Romeo has laid out the basic facts I'd like to add a bit of experience to the answer:
- Basics Cacti is focused on graphs. It doesn't do any of the up/down monitoring that is provided by something like Nagios. Classically Nagios does not provide any useful graphs, but more on that later.
- Config Scaling Cacti tends to be configured through the GUI manually. Eventually you will hopefully scale enough to find this frustrating. I've switched to Munin in places where there's lots of configuration management and it is easy to turn a server inventory into a config file with templates. Nagios tends to be configured with config files so hopefully you script the translation of your inventory in that format too. Then you can scale to thousands of nodes without redesigning your monitoring system.
- Distinctions blur. The classic distinction between Cacti/Nagios of graphing vs up-down status has been blurred in a number of Nagios derivatives. Icinga and OMD, for instance, integrate graphing into a Nagios-style monitoring architecture.
- Plugin Availability Doing something in the Nagios world gives you access to tons of well tested plugins to monitor almost anything under the sun. Cacti also has plugins, but not nearly as many.
So obviously my Cacti experience hasn't been that great and I'd recommend you look elsewhere for your long-term graphing needs.
Nagios is generic monitoring solution which can be extended by using snmp agents, custom plugins and so on.
Cacti is a complete frontend to RRDTool, it stores all of the necessary information to create graphs and populate them with data in a MySQL database
Cacti can be used as graph solution in Nagios to represent in graphic manner historical data (memory usage, processor usage, network bandwidth and so on). Cacti of course can be used also as standalone system and generate graphical presentation of data, collected from logs, via scripts and so on.