We use Cacti for this purpose, but it still requires creating custom
datasources for the vendor-specific SNMP MIBs.
+1 for cacti.
I think pretty much everything requires bringing in the mibs and setting
up mappings etc.
I've used Nagios/Cacti/Ganglia/MRTG.