Best way for monitoring physical and virtual servers performance
I'm starting to monitor my Windows 2008 servers with the open source Nagios. Using it, I can monitor various aspects of hardware and software/service in my server. The point is that now I'm face to face with a virtual environment and I'd like to know what would be the best way to monitor the victuals and physicals servers. For example: considering the VMs disks, should I monitor disk I/O queue length and disk time occupied for the virtual machines, for the physical one or both? What the explanation for the answer of that?
The network interfaces are also something: if I monitor the traffic in a virtual NIC, am I going to get the traffic just for that virtual NIC or for the physical one?
Memory and CPU are also a concern.
In summary, my concern is about the hardware involved, to avoid being redundant or letting something important out.
Completing the needs, what would be the best way, in case of bottlenecks, to monitor what is the offending virtual machine in a physical server?
Take in mind that everything needs to be monitored by Nagios, avoiding the use of any hyper-v monitor component.
Documentation and white papers about this are welcome as well.
The servers topology looks like this:
First Win2008 with Hyper-V = four VMs
Second Win2008 with Hyper-V = four VMs
Virtual Machines are using Win 2003 and Win 2008.
Each physical machine has 2 Intel Xeon, model E5430 Quad-Core