If you ever heard about monitoring systems it was usually some expensive closed source software or the open source package. I have little experience with the first type.
For some thoughts about the second type, read more
I can understand why Nagios is so popular, it is just great, does its job beautifully. Configuring Nagios is also just a breeze and what really takes time is putting your requirements down, configurations is very easy to understand and can be arranged in many ways so you can choose the most convenient way for you. In my case configuring it for multiple systems was just a matter of using sed to replace hosts name and IP address and redirect it to a new file. When using web interface constantly host groups and service groups are extremely useful to arrange data on the screen. Plugins system is very useful as well. You can write your own plugin in any language or you can download from free repository.
For plotting … MRTG is not my best choice. I have some experience with it when I have been using it to monitor bandwidth usage on my ASDL connection, also we are using it to monitor load on our servers. When I was setting it up it wasn’t clear … some randomness all around me. Configuration file is just amazingly cluttered, navigating is only possibly with search function build into your text editor. Not really admin friendly.
Because MRTG was so annoying to setup I went on a safari to pickup some better tool for that job and I have found a real beauty ( Really!, even graphs look nicer ). It is Munin.
Munin is great, it has agent-server architecture. That approach helps a lot in diverse networks. You can have multiple agents monitored by multiple servers. You can have server with agents deployed in different parts of your network and monitoring equipment not accessible from server.
Agents can monitor not only host which they are residing on, but SNMP anable devices as well. Munin calls agents nodes. Configuring node is literally symlinking between plugins repository and plugin configuration folder, some plugins require to run as a specific user or group, not problem add it to very clean nodes config file, you can pass environmental variables that way as well. Did I mention that it uses plugins ? Which you can easily write yourself in any language?
Server is the place where all the data are collected from agents and plotted. This part of Munin is easy to configure as well. It even allows you to group your nodes in domains, put multiple sources into one graph and feature which I didn’t employed yet … it allows you to setups alarms and it works very good with Nagios.