Author
Description
Sample Report
Requirements
Usage
Setup
Supported Use Cases
Additional Commandline Options
Custom Report Configuration
Setup & Run Health Check Script on Windows
Change Log
-
This script generates a health check report similar to that of vmwareHealthCheckScript but for the new vSphere release of VMware ESX(i) 4.x/5.x and VMware vCenter 4.x/5.x and it's managed entities. User's can now fully customize the report based on the categories that are of importance to their operating environment, including selecting specific set of ESX(i) hosts and/or Virtual Machines.
The script reports on the following:
Report is now completely modular in which categories to display via a configuration file
Report can be configured to output as printer friendly format
Ability to specify specific ESX/ESXi host to query
Ability to specify specific Virtual Mchines to query
vCenter HA Advanced Runtime information
vCenter HA Configuration (primary/secondary and node states)
vCenter HA Advanced Configurations
vCenter DRS Advanced Runtime information
vCenter Resource Pool CPU/MEMORY shares
vCenter Plugin information
ESX/ESXi IP/HOSTNAME of vCenter Management IP
ESX/ESXi Newly improved Hardware and System Health Stuats information
ESX/ESXi Advanced Configurations
ESX/ESXi NUMA information
ESX/ESXi Datastore VMFS block size + version
ESX/ESXi Host capabilities
ESX/ESXi Lockdown Mode information
VM UUID,Bootime,Resource Statistics, Fault Tolerance, Thin provisioned and NPIV information
VM Resource Allocation information
VM Device information
Supports multiple email recipients
vCenter VPX Configurations summary
VMware Applications running in a VM
vCenter Managed IP per ESX(i) host
vCenter User/Group Permissions
Added Host & SCSI LUN Model attribute
Added Host boottime
Additional LUN Mapping information including Datastore,VolumeUUID,DiskName and DeviceName
VM portgroup + dvportgroup mapping
Performance Stats for both Cluster + Hosts (cpu/mem avg + %)
Performance Stats for VM (cpu/mem avg + %, ready & ballon)
Email report capability
Added additional command line options for including Cluster,Host and VM Performance stats (default: off)
New licensing format/summary
EVC Enabled information
Cluster VM monitoring
Cluster Host monitoring}
# off VMotions within a cluster
Datastore uncommitted info
CPU power management info
VM info (FT, Record/Replay, Clean Poweroff)
Host IPv6, FT, SSL Thumbprint
Host Profiles
vApp information
Distributed vSwitch information}
vCenter Build/Release
Active Sessions
ESX/ESXi Build/Release
Cluster(s) Name/Statistics (Hosts,CPU and MEM availabity, HA,DRS and DPM enabled, Resource Pools, Health)
ESX/ESXi Hardware configuration (NICs/HBAs)
ESX/ESXi Hardware Health Sensor via CIM
ESX/ESXi State
ESX/ESXi Configurations (for detailed information, use detail-hosts option)
ESX/ESXi Multipathing Info (only available in host or detail-hosts option)
ESX/ESXi Datastore summary
ESX/ESXi LUN summary
ESX/ESXi Portgroup summary
ESX/ESXi Hostd logs
CDP Summary
Recent Tasks
Virtual Machine summary
VM Storage summary
VM Network summary
VM w/Snapshots
VM w/Snapshot delta age
VM w/RDMs
VM w/NPIV enabled
VM w/connected CD-ROMs
VM w/connected Floppys
For more details, please take a look at the following sample report: here
Please join the vSphereHealthCheck Group to post comments/discussions
vSphere SDK for Perl (formally VI Perl Toolkit) or VMware vMA 4.x/5.x+ (formally VIMA)
VMware vCenter 4.x/5.x+ and/or ESX(i) 4.x/5.x+
[vi-admin@scofield ]$ ./vmwarevSphereHealthCheck.pl
Required command option 'type' not specified.
Synopsis: ./vmwarevSphereHealthCheck.pl OPTIONS
Command-specific options:
--cluster
The name of a vCenter cluster to query
--clusterperformance (default 'no')
Enable Cluster Performance gathering [yes|no] (Can potentially increase your runtime)
--conf
File containing Host and VM specific configurations to output
--datacenter
The name of a vCenter datacenter to query
--demo (default 'no')
[yes|no]
--email (default 'no')
[yes|no]
--hostlist
File containting list of ESX/ESXi host(s) to query
--hostperformance (default 'no')
Enable Host Performance gathering [yes|no] (Can potentially increase your runtime)
--logcount (default '15')
The number of lines to output from hostd logs
--printerfriendly (default 'no')
Whether the html output will be printer friendly [yes|no]
--report (default 'vmware_health_report.html')
The name of the report to output. Please add ".html" extension
--type (required)
Type: [vcenter|datacenter|cluster|host]
--vmlist
File containting list of VM(s) to query
--vmperformance (default 'no')
Enable VM Performance gathering [yes|no] (Can potentially double your runtime)
Common VI options:
--config (variable VI_CONFIG)
Location of the VI Perl configuration file
--credstore (variable VI_CREDSTORE)
Name of the credential store file defaults to <HOME>/.vmware/credstore/vicredentials.xml on Linux and <APPDATA>/VMware/credstore/vicredentials.xml on Windows
--encoding (variable VI_ENCODING, default 'utf8')
Encoding: utf8, cp936 (Simplified Chinese), iso-8859-1 (German), shiftjis (Japanese)
--help
Display usage information for the script
--passthroughauth (variable VI_PASSTHROUGHAUTH)
Attempt to use pass-through authentication
--passthroughauthpackage (variable VI_PASSTHROUGHAUTHPACKAGE, default 'Negotiate')
Pass-through authentication negotiation package
--password (variable VI_PASSWORD)
Password
--portnumber (variable VI_PORTNUMBER)
Port used to connect to server
--protocol (variable VI_PROTOCOL, default 'https')
Protocol used to connect to server
--savesessionfile (variable VI_SAVESESSIONFILE)
File to save session ID/cookie to utilize
--server (variable VI_SERVER, default 'localhost')
VI server to connect to. Required if url is not present
--servicepath (variable VI_SERVICEPATH, default '/sdk/webService')
Service path used to connect to server
--sessionfile (variable VI_SESSIONFILE)
File containing session ID/cookie to utilize
--url (variable VI_URL)
VI SDK URL to connect to. Required if server is not present
--username (variable VI_USERNAME)
Username
--verbose (variable VI_VERBOSE)
Display additional debugging information
--version
Display version information for the script
-
1. Download the packaged script vmwarevSphereHealthCheck.tar.gz and transfer it to your vMA host
2. Extract the contents:
[vi-admin@scofield ~]$ tar -zxvf vmwarevSphereHealthCheck.tar.gz
vmwarevSphereHealthCheck/
vmwarevSphereHealthCheck/vmwarevSphereHealthCheck.pl
vmwarevSphereHealthCheck/healthCheck.conf
3. You should now have a directory called vmwarevSphereHealthCheck and the script is located inside with a sample configuration file
4. If you decide to create a custom user to run this script, ensure the user has a minimum of the following permissions:
Datastore.Browse
Global.Diagnostics
Global.Licenses
Sessions.TerminateSession
Sessions.ValidateSession
System.Anonymous
System.Read
System.View
1) This will collect information about all cluster(s)/host(s) providing vCenter Server:
./vmwarevSphereHealthCheck.pl --server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter
2) This will collect information about a specific datacenter provided with vCenter Server:
./vmwarevSphereHealthCheck.pl --server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type datacenter --datacenter DATACENTER_NAME
3) This will collect information about a specific cluster provided with vCenter Server:
./vmwarevSphereHealthCheck.pl --server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type cluster --cluster CLUSTER_NAME
4) This will collect information about a specific host provided with ESX/ESXi Server:
./vmwarevSphereHealthCheck.pl --server ESX_ESXi_SERVER --username ESX_ESXi_USERNAME --password ESX_ESXi_PASSWORD --type host
-
./vmwarevSphereHealthCheck.pl --server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --conf healthCheck.conf
Please take a look at the sample healthCheck.conf configuration file attached down below
./vmwarevSphereHealthCheck.pl --server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --hostlist hostlist
where hostlist can be any filename that contains the display name of a ESX/ESXi separated by a newline
e.g.
[vi-admin@scofield ]$ cat hostlist
esx4-1.primp-industries.com
esx4-2.primp-industries.com
esxi4-1.primp-industries.com
esxi4-2.primp-industries.com
./vmwarevSphereHealthCheck.pl --server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --vmlist vmlist
where vmlist can be any filename that contains the display name of a Virtual Machines separated by a newline
e.g.
[vi-admin@scofield ]$ cat vmlist
Norman-CL1
ft-test-vm
VA-Tomcat
reflex-g2
vMA-2
build-centos
build-ubuntu
sam3testV2
Rhapsody
goldmaster
test-vm1
test-vm2
dummy
./vmwarevSphereHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --email yes
Note:
Ensure that you have all the email variables configured either within the script or in the external configuration file, else the report will not be sent.
To specify the number of the latest lines in the hostd logs, use --logcount \[number_of_lines\]
(e.g.)
./vmwarevSphereHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --logcount 20
To collect basic performance stats from all Clusters, note that the duration of the script may potentially increase. Only use if you need and by default it's disabled.
(e.g.)
./vmwarevSphereHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --clusterperforamnce yes
To collect basic performance stats from all Hosts, note that the duration of the script may potentially increase. Only use if you need and by default it's disabled.
(e.g.)
./vmwarevSphereHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --hostperformance yes
To collect basic performance stats from all VMs, note that the duration of the script may potentially double. Only use if you need and by default it's disabled.
(e.g.)
./vmwarevSphereHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --vmperforamnce yes
This will update the CSS in the html report to allow you to print the report in a friendly format
./vmwarevSphereHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type vcenter --printerfriendly yes
-
There are 54 parameters that can be configured to display various categories of the health check report. By default, everything is set to "yes" except the following 4:
CLUSTER_PERFORMANCE
HOST_PERFORMANCE
VM_PERFORMANCE
VM_DELTA
as these can potentially increase the amount of time the report takes to generate.
###################
## EMAIL OPTIONS ##
###################
EMAIL_HOST=mail.primp-industries.com
EMAIL_DOMAIN=primp-industries.com
EMAIL_TO=william@primp-industries.com,tuan@primp-industries.com,monitoring@primp-industries.com
EMAIL_FROM=vMA@primp-industries.com
###################################
## RESOURCE CONSUMPTION WARNINGS ##
###################################
# yellow < 30%
# orange < 15%
# red < 10%
YELLOW_WARN=30
ORANGE_WARN=15
RED_WARN=10
############################
## SNAPSHOT AGE WARNINGS ##
############################
# yellow > 15 days
# orange > 30 days
# red > 60 days
SNAPSHOT_YELLOW_WARN=15
SNAPSHOT_ORANGE_WARN=30
SNAPSHOT_RED_WARN=60
#################
## SYSTEM INFO ##
#################
SYSTEM_LICENSE=yes
SYSTEM_FEATURE=yes
SYSTEM_PERMISSION=yes
SYSTEM_SESSION=yes
SYSTEM_HOST_PROFILE=yes
SYSTEM_PLUGIN=yes
#################
## DVS
#################
DVS_SUMMARY=yes
DVS_CAPABILITY=yes
DVS_CONFIG=yes
###############################
## DATASTORE CLUSTER OPTIONS ##
###############################
DATASTORE_CLUSTER_SUMMARY=yes
DATASTORE_CLUSTER_POD_CONFIG=yes
DATASTORE_CLUSTER_POD_ADV_CONFIG=yes
DATASTORE_CLUSTER_POD_STORAGE=yes
#####################
## CLUSTER OPTIONS ##
#####################
CLUSTER_SUMMARY=yes
CLUSTER_PERFORMANCE=no
CLUSTER_HA=yes
CLUSTER_DRS=yes
CLUSTER_DPM=yes
CLUSTER_AFFINITY=yes
CLUSTER_RP=yes
CLUSTER_VAPP=yes
##################
## HOST OPTIONS ##
##################
HOST_HARDWARE_CONFIGURATION=yes
HOST_MGMT=yes
HOST_STATE=yes
HOST_HEALTH=yes
HOST_PERFORMANCE=no
HOST_NIC=yes
HOST_HBA=yes
HOST_ISCSI=yes
HOST_CAPABILITY=yes
HOST_CONFIGURATION=yes
HOST_ADVOPT=yes
HOST_AGENT=yes
HOST_NUMA=yes
HOST_CDP=yes
HOST_LUN=yes
HOST_DATASTORE=yes
HOST_CACHE=yes
HOST_MULTIPATH=yes
HOST_PORTGROUP=yes
HOST_DVS=yes
HOST_LOG=yes
HOST_TASK=yes
################
## VM OPTIONS ##
################
VM_STATE=yes
VM_CONFIG=yes
VM_STATS=yes
VM_RESOURCE_ALLOCATION=yes
VM_PERFORMANCE=no
VM_FT=yes
VM_EZT=yes
VM_THIN=yes
VM_DEVICE=yes
VM_STORAGE=yes
VM_NETWORK=yes
VM_SNAPSHOT=yes
VM_DELTA=no
VM_CDROM=yes
VM_FLOPPY=yes
VM_RDM=yes
VM_NPIV=yes
VM_TOOL=yes
#################
## VMware Apps ##
#################
VMW_APP=yes
##################
## VPX SETTINGS ##
##################
VPX_SETTING=yes
-
Here are instructions on configuring vSphere Health Check Script to run on Windows with PowerCLI submitted by user whinshaw
http://www.myvmland.com/?p=124
Note: For comments/inquires about this intergration, please refer to the author of the post.
##########################################################################
02-17-2013 - v5.1.0
Enhancements:
##########################################################################
12-29-2011 - v5.0.2
Enhancements:
Fixes:
Minor fixes in validation of output
##########################################################################
06-19-2011 - v5.0.0
Enhancements:
##########################################################################
04-18-2011 - v4.1.9
Enhancements:
Included vCenter Server in title of report
Included time stamp in title of report
Fixes:
VM ratio count issue resolved
Can't locate object method "group" via package "ClusterConfigInfoEx"
Compressed memory metric display issue resolved
##########################################################################
01-23-11 - v4.1.6
Fixes:
##########################################################################
01-03-11 - v4.1.5
Fixes:
##########################################################################
10-16-2010 - v4.1.4
Enhancements:
VM count per cluster displayed in Cluster Summary tab
VM-to-Host ratio displayed in Cluster Summary tab
Fixes:
Minor fix on cluster info
Added VMware/3rd Party Application Section (some reason the code was missing during one of the updates)
##########################################################################
10-10-2010 - v4.1.3
Enhancements:
VM count per datastore
Fixes:
Fixed logic for checking SIOC for non-VMFS volumes
##########################################################################
07-22-2010 - v4.1.2
Fixes:
Updated script to support running on both vMA 4.0 and vMA 4.1. If you're managing ESX(i) or vCenter 4.1 hosts, you must use vMA 4.1
##########################################################################
07-13-2010 - v4.1.0
Enhancements:
DRS Affinity Rules
In Compliance
Mandatory
User Created
DRS GROUP Rules
Host group
VM group
COS VMDK PATH
HA Configuration Issues
Host capabilities
Storage IORM
VM Directpath G2
vStorage Hardware Acceleration
Host Datastore
SIOC State
Congestion Threshold
Host Configurations
Feature specific version information
Host State
Uptime
Standby mode
VM State
Uptime
Host Authentication Services
Local
Active Directory
VM Config
App Heartbeat
VM Stats
Compressed memory
Host LUN
vStorage/SIOC capable
Host Advanced Configuratoins
VMFS3.HardwareAcceleratedLocking
DataMover.Hardwar eAcceleratedMove
DataMover.HardwareAcceleratedInit
##########################################################################
06-05-2010 - v4.0.8
Enhancements:
Added two new configuration options VMW_APP and VPX_SETTING
Added vCenter VPX Configuraton tab (only available when connecting to vCenter)
Added VMware Application tab (only available when connecting to vCenter)
Updated HA cluster failover policy display
Fixes:
Resolved minor html mis-match tags
##########################################################################
04-28-2010 - v4.0.7
Fixes:
Resolved issue with HA configuration policy failover
##########################################################################
04-02-2010 - v4.0.6
Enhancements:
Added VMFS blocksize + version in Datastore output
Added param to output printer friendly format
##########################################################################
04-01-2010 - v4.0.5
Enhancements:
Added VM Devices section (VM_DEVICE)
##########################################################################
03-27-2010 - v4.0.4
Enhancements:
Changed "Cluster Statistics" to "Cluster Summary" (CLUSTER_SUMMARY)
Added Table of Contents for Cluster Tab
Changed Cluster Performance "mem.usage.average" to "mem.consumed.average"
Added CLUSTER_SUMMARY as configurable property
Added DRS Current and Target balance information
Added VM list to Affinity Rules
Added CPU/MEMORY Shares info in Resource Pool under Cluster + CPU/MEM Units per VM
Added Lockdown Mode informaiton (applies to ESXi only)
Added 8 addtional Advanced Host Configuration including (NFS + TechSupport Mode configurations)
NFS.MaxVolumes
SendBufferSize
ReceiveBufferSize
Net.TcpipHeapSize
NFS.HeartbeatFrequency
NFS.HeartbeatTimeout
NFS.HeartbeatMaxFailures
VMkernel.Boot.techSupportMode
Added Host Capabilities section (HOST_CAPABLITIY)
Added VM Resource Allocation (shares/limits/etc) section (VM_RESOURCE_ALLOCATION)
Added vCenter Plugin information (SYSTEM_PLUGIN)
Fixes:
Resolved a few bad HTML tags
Known Issues:
Performance statistics may not display on certain runs due to known bug: http://communities.vmware.com/message/1498805#1498805
Big thanks goes out to Raphaël SCHITZ for providing some feature suggestions + extensive testing of the script!
##########################################################################
03-21-2010 - v4.0.1
Enhancements:
Email report now supports multiple email recipients
Fixes:
Thanks to user arjaysam1 for noticing there was some bad math going on with the hardware numeric sensor values, this has now been fixed so properly display the values (e.g. 48 C instead of 4800)
Thanks to user Altix for suggesting adding addtional padding to the CSS style for the scrollbar at the bottom for better visiblity
##########################################################################
03-18-2010 - v4.0.0
Enhancements:
The script has completely been re-written from the bottom up for better performance and modularity of the output. All categories that can be displayed is now configurable via a configuration file.
Ability to specify specific list of ESX/ESXi host to query via configuration file
Ability to specify specific list of Virtual Machines to query via configuration file
New html layout - Used the following references: http://www.sohtanaka.com/web-design/examples/tabs/#tab2 and http://webdevel.blogspot.com/2008/06/tabs-without-javascript.html
The new color scheme was inspired by VMware's homepage:
Cluster
HA Advanced Runtime information
HA Configuration (primary/secondary and node states)
HA Advanced Configurations
DRS Advanced Configurations
Host
IP/HOSTNAME of vCenter Management IP
Newly improved Hardware and System Health Status information
Advanced Configurations
NUMA information
Virtual Machine
UUID
Bootime
Resource statistics
Fault Tolerance information
Thin provisioned information
NPIV information
##########################################################################
02-28-2010 - v1.5.3
Enhancements:
-Added additional command line options to specify whether or not to includ Cluster,Host or VM performance stats, the default is to not display this information as it can increase the runtime of the script depending on the size of your environment
Fixes:
-Updated email functionality to have the report as an attachment
##########################################################################
02-13-2010 - v1.5.0
Enhancements:
-Added email report capablity
Fixes:
-Finally resolved performance data issue for VMs (Thanks to Raphael Schitz for reporting the initial problem and verifying the fix)
##########################################################################
01-21-2010 - v1.4.1
Fixes:
-Performance data was not properly displaying and now have been fixed for all 3 entity levels (cluster,host and vm)
##########################################################################
01-17-2010 - v1.4
Enhancements:
-Host configurations now includes vCenter managed IP Address
-Summary of User and Group permissions for vCenter server
-Host summary now includes Host & SCSI LUN Model attribute
-Host state summary now includes boottime
-Host LUNs now include additional information including Datastore,VolumeUUID,DiskName and DeviceName
-VM network summary now includes portgroup information from both standard vSwitches + distributed vSwitches
-Performance statistics (cpu/mem AVG+%) for both vCenter clusters and host
-Performance Statistics for VM (cpu/mem avg + %, ready & ballon) is optional.
Note:
Enabling VM performance stats gathering can potentially incrase the script execution up to 2x. From the sample execution in our envrironment, the report went from 46secs to 1.3min. By default this feature is disabled and you'll need to specify param --vmperformance 1 to enable at runtime.
##########################################################################
11-23-2009 - v1.3
Fixes:
-Fixed snmp output, small typo in the script
##########################################################################
05-24-2009 - v1.2
Fixes:
-Minor fix in nDVS that was causing script to halt
##########################################################################
05-04-2009 - v1.1
Enhancements:
-Display additional VM Storage details (committed,uncommitted and unshared)
yes is use some drs rules (separate and keep together) but no new feature drs rules.
of course i am using the lastest script.
the thing that i would expect that if i turn it off in the conf. file i won't get this error but the errors stays.
Have an vSphere 4.1 VC that manages both clusters and "stanadalone" (as in non clustered) ESX hosts.
Whilst I can get cluster reports OK via --type vcenter, I'm not seeing my standalone ESX hosts. I can report on the individual hosts OK using --type host
Any ideas?
I've recently received the following error running the latest script against one of our vCenters that was previously working and running daily scheduled cron jobs for the health check:
"SOAP request error - possibly a protocol issue: 500 SSL read timeout"
The above error is with vCenter role using the above mentioned permissions. If i change the role of this to admnistrator rights I get a different message.
"SOAP Fault:
Fault string: A general system error occurred:
Fault detail: SystemErrorFault"
Any chance any others have seen this? I've tried many things to troubleshoot but am coming up short.
Thanks for any assistance in advance.
Cheers
Guys, Can you help me this script extremly worked on the HP server however if performed the same scripts on the IBM chassis. Ihave been an problem on the line 468
Can't use an undefined value as an ARRAY reference at C:\Program Files (x86)\VMw
are\VMware vSphere CLI\bin\vmwarevSphereHealthCheck.pl line 468.
Some one suggest what needs to be change on the scripts as per my configuration.
Thanks
uday
As noted in the documentation, the script expects all hosts to be part of a VMware cluster. Even for a stand-alone being managed in vCenter, you would still need to create a cluster if you want that host to be part of the report. Since it's a single host, the cluster is just being used as a logical container, you do not need to enable HA/DRS nor does it make sense for a single host.
Take a look at this thread - http://communities.vmware.com/thread/170675, I know a few users have seen this in general with using the vSphere SDK for Perl but I haven't seen any real conclusion on what causes it.
This error is actually a little miss-leading and another user ran into something simliar awhile back. The issue is actually with the user that is running the script. If you take a look at the above documentation under "Setup" in step4, there are 4 permissions that's required to use the script. Please confirm that the user in fact has all 4 of those
Hello Everyone,
I have recently closed the comments section and decided to create a dedicated VMTN group for vmwarevSphereHealthCheck. Please join the group for discussions related to questions, issues/troubleshooting, feature requests/etc. By subscribing you will also be receiving the latest updates with this script. The comments section will still be available as read-only.
Thank you for your support.
--William Lam
http://www.virtuallyghetto.com/