SNMP is considered the best way. If you're using Windows 2000 Pro/Server or any flavour of linux/unix, you can use MRTG (Tobias Oetiker (
www.mrtg.org)) and SNMP. For more power and flexibility, choose an independent SNMP package that gathers results on its own (NET-SNMP aka UCD-SNMP) and then dump the results into RRDTOOL (also by Tobias Oetiker (
www.rrdtool.com)). The learning curve of RRDTOOL compared to MRTG is quite steep, however.
You'll most likely need perl (
www.perl.org or activeperl for windows).
For an idea of how it works with rrdtool + ucd-snmp, visit
this site I use at home.