Before asking VMware or your vendor for a health check on your VMware enviornemnt you can use the free Healthcheck script as an early start. Actually its a great idea to automate it to send you and update of your enviornment status weekly. Below is a bit more of the VMware Healthcheck script as posted by Ibeerens on the VMware Community forum:
What is VMware HealthCheck Script?
VMware Healthcheck is a Powershell script that reports information like snapshots, VMware tools version, datastore space, CDROM and/or floppy drives connected, VM details etc. to HTML and e-mail the output. This script can be scheduled so that for example you get every week a rapport in your mailbox with the status of the VMware environment.
Reason for creating this script:
As VMware Consultant I see a lot of common problems in VMware environments like:
- Snapshots are enabled and forgot the commit to the VM.
- Datastores are almost full (for example if snapshots are enabled)
- VMware tools versions are different
- CDROM and floppy drives are still mounted to the VM
- Virtual Machines have CPU and Memory limits or reservations (VMs are swapping)
- In the VM, the VMware Tools timesync option is not enabled
In the Virtual Infrastructure Client (VIC) it is difficult to see this sort of information. By creating a Powershell script, I can do a quick inventory. In a lot of VMware environments I created a scheduled tasks, so the script runs once a week and sent to HTML rapport to the administrator.
What does the script:
I wrote a Powershell script with HELP from the VMTN community that makes a HTML file and sent the output by e-mail to a person or distribution list. The Healthcheck script does the following checks:
- VMware ESX hardware
- VMware ESX versions
- VMware VirtualCenter versions
- Active snapshots
- CDROM and Floppy drive(s) mounted to the VM
- Datastore information like capacity, free space and the percentage free space
- VirtualMachine (VM) information like VMware tools version, CPU, Memory reservations and limits etc.
- On what VMs VMware Tools timesync is not enabled
Requirements:
The following software must be installed:
Microsoft Powershell 1.0
(http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx)
VMware Infrastucture (VI) toolkit for Windows 1.0
http://www.vmware.com/download/sdk/
Set the ExecutionPolicy in Windows Powershell to RemoteSigned by using the following command:
set-ExecutionPolicy RemoteSigned
Installation:
- Unzip the Healthcheck.zip script to a directory on the VC server for example.
- When the ZIP if unpacked there are two files:
- Healthcheck.ps1, this is the Powershell script
- Style.CSS, controls the HTML layout
Configuration:
- Edit the Powershell.ps1 file
edit the following variables:
$vcserver=”localhost”
Enter the VC server, if you execute the script on the VC server you can use the localhost name
$filelocation=”D:\temp\Healthcheck.htm”
Specify the location where to store the HTML output
$enablemail=”yes”
Enable (yes) or disable (no) to sent the script by e-mail
$smtpServer = “mail.ivobeerens.nl”
Specify the SMTP server in your network
$mailfrom = “VMware Healtcheck <mailto:powershell@ivobeerens.nl>”
Specify the from field
$mailto = mailto:ivo@ivobeerens.nl
Specify the address where the e-mail to sent to
Usage:
Manually run the Healthcheck.ps1 script”:
1. Open Powershell
2. Browse to the directory where the Healthcheck.ps1 script resides
3. enter the command:
./Healthcheck.ps1
To create a schedule task in for example Windows 2003 use the following syntax in the run property:
Powershell -command “& ‘path\Healthcheck.ps1’
edit the path
Powershell -command “& ‘path\Healthcheck.ps1’
edit the path .
Future:
- List Orphaned VMDK’s
- Add performance information like VM usage
- Check timesync on the VMware hosts
Ah not to forget you can download the VMware Healthcheck script at VMware HealthCheck Script