Best way for monitoring physical and virtual servers performance

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.

Thank you.

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
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

I would suggest monitoring both the physical and virtual servers.

This way you can identify which virtual server could be causing problems and may need to be moved to a different physical server or identify that it is the physical server that is having the problem.
AbilisAuthor Commented:
Thanks Giltj.

But what about the values collected? The values for NIC traffic or for disk operations, will be individual for each VM monitored and a sum of all of this for the physical one?

This is what I need to be sure.
If you use SNMP to monitor the NIC's  and IO on the virtual machines you will only see the counters for that virtual machines as that is all it knows about.

The SNMP stats for the physical machine will include the I/O from all of the virtual machines plus whatever the host OS does.
Powerful Yet Easy-to-Use Network Monitoring

Identify excessive bandwidth utilization or unexpected application traffic with SolarWinds Bandwidth Analyzer Pack.

AbilisAuthor Commented:
Only NIC traffic is done with SNMP. Other parts are through Windows performance counters, usgin an agent installed on the VM OS. Basead on what you said about snmp, I presume that Windows counters will work the same way. Is that right?

Do you know a good online documentation for reading about monitoring hardware aspects in an hyper-v environment?
Yes, they should. I'm not sure what you are using to monitor, but you an use SNMP to monitor everything.

As far has hardware monitoring, you would just monitor it the same as you would any other OS.  The only thing that might be different is if hyper-v monitors and provides information about the virtual hosts/machines.  All of the other MIBS should be normal Windows server mibs.
AbilisAuthor Commented:
I use Nagios, an open source monitoring tool. It has a plugin that connects to an agent installed is the monitored OS. This agent get its data basead on windows performance counters, not snmp. It works even without snmp service installed.

I'm sorry, but I didn't get this part: "The only thing that might be different is if hyper-v monitors and provides information about the virtual hosts/machines"

O.K., not sure what your back ground, so I will try and explain this.

Hyper-v is the virtualization software running under a OS (Windows).  All real I/O (disk or network) and memory access is really done by the OS, but hyper-v controls which VM is doing what and when.  So it knows that VM#1 is current read the disk at 1,000 reads a second and VM#2 is reading it at 50 reads a second.  In fact it know what each VM is doing.  Since it knows that, it could have unique performance counters for each VM.

Does that make sense?

You may want to read:

Here is a checklist version of the above:

You may also want to try:

It covers hyper-v performance monitoring and has links to other hyper-v stuff.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
AbilisAuthor Commented:
Thank you very much giltjr. I took a quick look at these three links and they thats what I needed.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Virtual Server

From novice to tech pro — start learning today.