There are a couple of different ways.
If the VM is on VMware ESX(i) servers, then the box293_check_vmware plugin has a check built in called "Guest_NIC_Usage".
box293_check_vmware can be downloaded here:
http://exchange.nagios.org/directory/Pl ... re/details
I am unsure of other Hypervisors if there is a way to look at the VM's bandwidth.
The other way to monitor is via the guest Operating System itself. If this is Windows you could use NSClient++ to query the performance counters for the NIC in/out traffic. For example:
\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Received/Sec
\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Sent/Sec
Here is a page with a bunch of examples:
https://sites.google.com/a/box293.com/n ... interfaces
There are also linux checks that allow you to check interface bandwidth, some via nrpe and others via snmp. Search the Nagios Exchange for these.
Finally, you can enable SNMP on the Operating System of the VMs and use MRTG to do bandwidth checks.