One of the main benefits of deploying system virtualization technology is the isolation provided by the virtualization platform. It increases the security where the infected or compromised guest has zero effect on the other running guests and on the host machine itself. Such encapsulation renders the current state of the guest system state to be unknown. We propose and implemented new approach to monitor the virtual machines. The idea simply laid on having a centralized monitor and mobile agents. The mobile agents will be spread among the running virtual machines, each machine will host one agent. The monitor will continuously check the remote machine health state and availability and automatically recover those which marked as unhealthy/not-available (crashed).