VMware Health Check Report v0.9.5

VMware Health Check Report v0.9.5

Description:

This script generates a health check report of all attributes pertaining  to a single ESX/ESXi 3.x+ host or VMware vCenter and its managed  entities (i.e. clusters and individual ESX/ESXi 3.x+ hosts). The  generated report is based off of some earlier Powershell script

work created by

Ivo Beerens/

Duncan Eppping.

I was primarily motivated on this project because it allowed me to start  learning about how to utilize the VI API through the VI Perl Toolkit.  Existing information provided by the RCLI and VI Perl Toolkit default  utilities are useful though they can be limited. This gave me an  opportunity to learn how to write my own Perl scripts that may  ultimately lead to more functional tools that the community as well as  VI administrators can utilize.

The generated health check report contains most of what Ivo Beerens has  included in his latest release. For this project, I am attempting to  create a non-Powershell solution as opposed to the direction taken by  Ivo and Duncan. This Perl script will generally be a work in progress as  I continue to learn about the API. Moreover, I hope that this will be  something of use to administrators especially those seeking to query  important pieces of information such as VM(s) containing snapshots  and/or RDM(s).


The script reports on the following:

  • vCenter Build/Release
  • License summary
  • 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 sample reports located

here and

here

Requirements:

Usage

[vi-admin@vima-primp-industries ~]$ ./vmwareHealthCheck.pl
Required command option 'type' not specified.

Synopsis: ./vmwareHealthCheck.pl OPTIONS


Command-specific options:
   --cluster
      The name of a vCenter cluster
   --datacenter
      The name of a vCenter datacenter
   --logcount
      The number of lines to output from hostd logs
   --report
      The name of the report to output
   --type (required)
      Type: [vcenter|datacenter|cluster|host|detail-hosts]


Common VI options:
   --config (variable VI_CONFIG)
      Location of the VI Perl configuration file
   --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

Supported Use Cases:

1) This will collect information about all cluster(s)/host(s) providing vCenter Server:

./vmwareHealthCheck.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:

./vmwareHealthCheck.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:

./vmwareHealthCheck.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:

./vmwareHealthCheck.pl --server ESX_ESXi_SERVER --username ESX_ESXi_USERNAME --password ESX_ESXi_PASSWORD --type host

5) This will collect detail information about all ESX/ESXi hosts under  vCenter (for datacenter/cluster specific, please look at option 1-3).

This option is meant to provide a report similiar to that of

esxhealthscript within the capablities of the VI API utilizing the VI Perl Toolkit. For  a high level view of your VMware environment, please use the other  options, as this pertains to detail configurations of your hosts.

./vmwareHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type detail-hosts

To specify the number of the latest lines in the hostd logs, use --logcount

number_of_lines

(e.g.)

./vmwareHealthCheck.pl -server VC_SERVER --username VC_USERNAME --password VC_PASSWORD --type detail-hosts --logcount 20

Custom Configurations

Edit the following at the top of the script to configure the warning  levels for the various resource consumptions (disk,memory,cpu):

####################################
#
resource consumption warnings
####################################
#
yellow < 30 %
my $yellow_warn = 30;

#
orange < 15 %
my $orange_warn = 15;

#
red < 10%
my $red_warn = 10;

Edit the following at the top of the script to configure the number of days aged for a snapshot delta file:

######################################
#
vm snapshot age warnings
######################################
#
yellow < 15 days
my $snap_yellow_warn = 15;

#
orange < 30 days
my $snap_orange_warn = 30;

#
red < 60 days+
my $snap_red_warn = 60;

Changes

##########################################################################

03-24-2009 - v0.9.5

Fixes:

-Updated code to properly handle Recent Tasks section in case one of the fields do not exists

Info:

-This script will no longer recieve new features, I'll continue to  maintain for bug fixes/etc. All new development will be focused on the  vSphere version of the script at -

VMware vSphere Health Check Report v4.1.4

##########################################################################

03-24-2009 - v0.9.4

Fixes:

-There was a bug reported by Duncan Epping and others regarding hosts  that were appearing in the wrong cluster with respect to the portgroup  listings, this should be fixed.

Enhancements:

-Detail Hardware Health sensor readings provided by CIM

-CDP Summary (individual

cdp.pl available)

##########################################################################

02-28-2009 - v0.9

Fixes:

-Due to VMware API bug, the VMDK count per VM is not displaying correctly, a work around has been setup to print # of disks

Enhancements:

-Retrieve script version by using --version

-Cluster Health

-Recent Tasks

##########################################################################

02-11-2009 - v0.8

Fixes:

-Fixed an issue where disconnected VM(s) may cause the script to halt

Enhancements:

-Added hostd logs with --logcount flag to specify the last number of lines (default 15 lines)

-Performance enhancement, script should execute much faster (YMMV)

Example report

here

##########################################################################

02-09-2009 - v0.7

Fixes:

-Removed invalid cluster stats (output was not regarding consumption but availablity)

-Fixed an issue that may allow the script to execute on Windows VI Perl Toolkit again(no guarantees)

Enhancements:

-Licensing/features information

-Active Sessions

-ESX UUID

-Additional ESX/ESXi host configurations (available with

host or

detail-hosts flag)

-Performance increase on script execution (YMMV)

-Added

detail-hosts flag which provides additional host configurations (comparable to

esxhealthscript)

  • VMotion enabled
  • Service Console network summary
  • VMkernel summary
  • DNS
  • Offload capabilities
  • Diagostic Partition
  • vswif summary
  • vSwitch/cdp summary
  • Firewall known services
  • ...much more

Example report

here

##########################################################################

02-05-2009 - v0.6

Fixes:

-Fixed minor typographic errors

-Fixed issue if no additional hardware vendor information is available

-Fixed potential issue with displaying information about datastores not being accessible

Enhancements:

-Display snapshot deleta file(s) age (options configurable by users)

-Display

root resource pool information if appliacable

##########################################################################

02-04-2009 - v0.5

Fixes:

-Cleaned up a little of the html structure

-Fixed issue when no ntpServers configured

-Fixed issue when VMware tool status is not available

-Fixed the order of the Adv options

-Fixed Host to Datastore access (If a datastore is presented to hosts  that reside in separate clusters, false positives may be included in the  output)

Enhancements:

-Added support for --datacenter argument for specifying a specific datacenter in vCenter

-Additional hardware info (possibly AssetTag if configured)

-Display Adv options: Disk.SchedNumReqOutstanding and NFS.LockDisable

##########################################################################

02-01-2009 - v0.4

Fixes:

-Only display summary on valid clusters (w/hosts attached)

Enhancements:

-Display hosts in cluster with inconsistent storage presentation

-Display hosts in cluster with inconsistent portgroup configurations

-Display Disk.UseDeviceReset

-Display Disk.UseLunReset

##########################################################################

02-02-2009 - v0.4

Fixes:

-Fixed color output to highlight the correct values

-Fixed the output of the script execution time to output correct time format

Enhancements:

-Display MB,GB,TB and MHz,GHz instead of just (MB,MHz)

-Display cluster resources % free

-Display hosts in cluster with inconsistent LUN access


TO-DO/WIP

-None atm

Known Issues

1) Firewall information is limited to only known and blessed services, this is a limitation of the VI API

2) Multiple Service Console interfaces may not display correctly

3) SNMP infor (may or may not work)

Comments

Please take a close look at the documentation, that is what it's there for. It'll describe the requirements and how to execute the script.

This script uses the VI Perl Toolkit, it's not a Powershell script. You can install VI Perl Toolkit on both Windows or Linux or use VMware VIMA virtual appliance which as described is a RedHat Linux system. I in no way claim this will function in VI Perl Toolkit on Windows but you can try it and let us know, I know it's worked in the past revisions and I've tried my best to keep it within the default environment of the VI Perl Toolkit (e.g. not using packages not installed by default with VITK).

If you're so inclined to include command syntax, you can customize the script to do so, but it's unnecessary in my opinion. The source is there for any further customization you may require in your operating environment.

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

OK, a couple quick tests yields one success and a couple failures.

This is on a freshly imported and configured VIMA

vCenter check:

./vmwareHealthCheck.pl --server 192.168.2.110 --username Administrator --password xxxx --type datacenter --datacenter DemoNet --report test.html[/b]

This worked as expected - got details on my vCenter version, licenses, and current connections

So I try to get more data:

./vmwareHealthCheck.pl --server 192.168.2.110 --username Administrator --password xxxx --type detail-hosts --report test.html

And I get:

[i]No clusters found.[/i][/b]

Which is no surprise as I have no clusters defined (or at least no clusters as I understand the concept)

I thought this was the syntax to get the "detailed data" as displayed in the sample pages....

So let's try a host:

./vmwareHealthCheck.pl --server 192.168.2.150 --username root --password xxxx --type host --report test.html

And I get:

[i]Generating VMware Health Report "test.html" (this can take a few minutes depending on environment size. Get a cup of coffee/tea and come back) ...

Can't use an undefined value as an ARRAY reference at ./vmwareHealthCheck.pl line 1091.

End Disconnect[/b][/i]

????

Should it matter - this is a2 host environment with a single defined datacenter. One host is ESX 3.5.3 and one is ESXi 3.5.3. vCenter is 2.5 v4. All installs are "brand new"

As mentioned before, if you're using any options other than --type host, you'll be required to have a cluster defined for the information to be extracted, if you don't you can modify the script or add a cluster. It looks like in your first execution you have a cluster under your datacenter DemoNet that is why that one was successful. When you run --type detail-hosts it'll just provide further details for your entire vCenter so there should be cluster's defined for this to properly function.

In terms of your last use case, you probably don't have something defined and I did not check and it errors out. I'll take a look at what information is being extracted at line 1091 but it's letting you know that it's trying to access an undefined array reference.

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Also are you using the latest version of this script, v0.8? I'm looking at line 1091 and it references the LUN's seen on your system and even if you don't have external FC/iSCSI LUN's presented to the host it should still seen the internal SCSI LUNs.

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

OK - this set-up is using NFS, so there's no FC/SCSI/iSCSI

$ ./vmwareHealthCheck.pl --version

VI Perl Toolkit version: 1.6

Script 'vmwareHealthCheck.pl' version: 3.5 Update 2

That returns the version of the VI Perl Toolkit, if you look in the source or the generated report it should give you a version number. (e.g. v0.8)

Also it's fine if you're using NFS, but the local storage should still be seen as a SCSI LUN.

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Neat, I never looked into their internal versioning variable. I'll need to add that in a future release.

If you add the following:

$Util::script_version = $version;

It'll allow you to print out the version of the script. That's good to know for future troubleshooting.

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

I ran a healthcheck today (v.9) against three ESX 3.5.3 hosts and in the section "ESX/ESXi State" for the column marked "VMOTION ENABLED" all 3 of them show as "NO". However, the hosts are, in fact, enabled for VMotion via vSwitch0, and it (VMotion) works just fine.

I tried to poke through the script to understand what was being called to garner that value, but I'm just too new to this to make much sense of it (and frankly I have no intention of becoming an exert in perl scripting)

Can you please explain why I might be seeing this value in this point of the healthcheck report? The VMotion is enabled on vSwitch0 but the VMs all reside on vSwitch2, which does not have VMotion enabled.

TIA

Don

So I'm retrieving the flag that determines if vMotion is enabled using the managed object HostSystem at: http://www.vmware.com/support/developer/vc-sdk/visdk25pubs/ReferenceGuide/vim.host.Summary.ConfigSum...

hostSystem->summary->config->vmotionEnabled

This property will return either a boolean of true or false and I just modify it to print either YES or NO. You can find the exact line in v0.9 @ 1413

On how it determines this is in the underlying implementation of the API, it could be that if you have two vMotion networks that it's picking the first, I'm not exactly sure.

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

William,

Excellent work. I was wondering if the older versions are available anywhere. I looked around here and on your website but didn't find anything. Can you post them either here or on your website?

Sorry, the latest version contains fixes/enhancements/updates from the previous releases. Previous version will not be supported, any reason why you're looking at older releases?

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

I was looking to find a version that didn't have the cluster requirement to report on an entire Virtual Center environment. I have a few environments that are not in a cluster and can't put into a cluster without a ton of red tape.

I took a peek at 0.9 to see if I could figure out how to remove the cluster requirement as you've mentioned but its way beyond my Perl skills.

All versions of the script end up at the cluster level for data extraction. If you're looking for any other level, you'll need to make modifications to the script and remove some of the cluster specific attributes that's extracted. I suggest taking a look at the VI API reference guide and understanding how the object model works: http://www.vmware.com/support/developer/viperltoolkit/doc/perl_toolkit_appliance_idx.html

You can also look at the VI API community forums for snippets of code or if you have further question. In general, clusters allow for DRS/HA configurations, so that's why the data starts at that level. If you're running vCenter, it does not hurt to create a cluster and just disable those functions if you want them enabled. Good luck

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Also note - for ALL my VMs in the "Virtual Machine" section - the "# of vNIC(s)" shows as zero.

And - one of the hosts has 5 VMs, yet the "VM(s) VMDK Disk Information:" has nothing in the table other than the header. The only thing unique to this host is the fact that it has a couple of Vista VMs (all others being Win2k/Win2k3)

Not sure about the NICs, I have VMs that have VMware Tools installed and some that don't and they all report perfectly fine. In terms of the VMDK Disk Information, that was really an "experimental" feature, I was playing with the option of extracting fragmentation information via the API but realized that was only pertinent to VMDK's that were in the 2gb sparse format, it should print "N/A" under fragmentation if the disk is not of the 2gbsparse format. The reason why it's not printing is if the VMDK is powered on, the fragmentation info will not be available. This information may not end up being too useful, I'm still considering if I should remove it from a future update as discussed in my release notes.

One thing I would double check is that all your hosts are running at least ESX(i) 3.5u2+, else the data being extracted may not be supported.

=========================================================================

--William

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Evening everyone,

Just released a update 0.9.4 that adds a few enhancements and primarily fixes an issue with hosts being miss-reported in the "portgroups" section. I've had few individuals help me test the new fix, so hopefully you won't see the issue again.

Motivated by Scott Lowe's recent post about cdp I've gone ahead an added that information and also Hardware health sensor information via CIM.

Give the new script a run and let me know if you guys/gals run into any issues.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

http://twitter.com/lamw

Feature request:

Would it be hard to add data for configured/connected Floppy/CD/Serial devices? It's good to know what's connected for VMotion capability

Floppy & CD-Rom is already being captured, Serial devices should not be hard but not sure when I'll have the free cycles to implement and test. You're more than welcome to update the script Smiley Wink

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

http://twitter.com/lamw

If you find this information useful, please award points for "correct" or "helpful".

This is a very valuable script. If you have a lot of RDMs, this gives you a clear mapping of what VMs are using what RDMs. This allowed us to reclaim a few unused RDMs once we saw proof from the report. The manual process of checking VMs for RDMs is not nearly as effective.

One tip, you might want to leave the password argument out of the command line. This keeps it out of the history and also ensures any special characters in your password get passed through correctly to authenticate with VC.

This script is wonderful, thank you! We have an ESX 3.5 farm added to VC 2.5 on which this script runs well. We also have a smaller farm for hosting legacy Windows operating systems on ESX 3.0.2 with VC 2.0.2. I would like to know if there is a similar script that will give the same details on ESX 3.0.2 as well.

When I run the script, I receive a SOAP Fault "An error occurred while communicating with the remote host" and the report ends after having recorded the the ESX/ESXi Datastore table header. The cluster I'm targeting has 6 nodes sharing 8 luns (7fc, 1 nfs). I commented out printHostDataStoreInfo and it failed in the same place place. I commented out printPG and the same...

It seems as though I need my virtual center connection reestablished after the ESX/ESXi LUN table is created. Any ideas?

... edit ...

I don't speak perl, but I did find that when I comment out printHostDatastoreInfo, it is now completing on another cluster.

I am getting the same error as cmcalvin-

SOAP Fault:

-


Fault string: Not initialized: boolean fileOwner

Fault detail: InvalidRequestFault

End Disconnect

I am just running this on a very simple VI - vSphere 4, 2 ESX servers (one ESXi and one ESX), no clusters, just 3 datacenters, one populated with a folder and the 2 ESX servers inside the folder.

I am using vCLI 4.0

-David Davis, vExpert, VCP, CCIE

Author of Train Signal's VMware ESX Server videos training series available at www.TrainSignal.com

Actually, you need to be using the vSphere version of the script since fileOwner is a new property in vSphere: http://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuide/vim.host.DatastoreBrowser...

This is why you're seeing the error.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

Twitter: @lamw

If you find this information useful, please award points for "correct" or "helpful".

Hi William,

Thanks so much for your fast response and direction to the right script!

This healthcheck script is great - I wasn't sure what I would do if it didn't work in vSphere.

I am going to make a video about it now.

All the best to you,

David

np. Let me know if you run into any other issues. Don't forget you'll need to use either vSphere SDK for Perl or vMA 4.0 as (VIMA 1.0 and VI Perl Toolkit) will not work with vSphere vCenter or ESX(i) hosts

Looking forward to the video Smiley Happy

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

Twitter: @lamw

If you find this information useful, please award points for "correct" or "helpful".

Is it possible to add to the virtual machines table? I'd like to see the HD size and the total disk consumption with snapshots. Thanks.

I prefer it on as a separate table, the VM table is getting quite crammed and I hate for users to keep scrolling as that is something I don't enjoy in reports Smiley Wink

You're more than welcome to adjust it to fit your environment.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

If you find this information useful, please award points for "correct" or "helpful".

I agree, but there is some data I can live without in that table. I've only used PowerShell and I wasn't sure if using Perl it was possible to get those two data points and how. Thanks.

As I mentioned, the data is there, but I won't be updating the script to cram everything down within that table. You're more than welcome to display the results how ever you like but this is more of a cosmetic request than functionality and everyone will want the report to look a certain way. So unfortunately I will not be able to fulfil this request. If you take the time to understand how the data is being extract, then you'll find it pretty easy to re-arrange the data points.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

If you find this information useful, please award points for "correct" or "helpful".

Hello

Some time ago I set up my VIMA Appliance with ghettoShutdown.pl and vmwareHealthCheck.pl and they have been working perfectly for the past several months. Now for some reason the vmwareHealthCheck.pl has stopped working. The other one, I do not want to try at least during work hours but the commands sudo vifp addserver esxiserver.domain.com and sudo vifp removeserver esxiserver.domain.com work fine so there does not seem to be a firewall issue. I at this time have opted to stay at VMWare ESXi Server 3i, 3.5.0, 123629 so as to take advantage of being able to use these scripts as we do not yet have the budget to move to the full licensed version of ESX.

The only thing I haven't done yet to to try and resolve the issue is reboot my ESXi Server. Any ideas as to why I would get the error - SOAP request error - possibly a protocol issue: 500 SSL read timeout: ?

Command:

/home/vi-admin/reports/vmwareHealthCheck.pl --server esxiserver --username root --password abc123 --type host --logcount 10 --report /home/vi-admin/reports/esxiserver.html

Error:

SOAP request error - possibly a protocol issue: 500 SSL read timeout:

Environment Info:

VMWare ESXi Server 3i, 3.5.0, 123629

vmwareHealthCheck.pl

VMware Health Report v0.9.4

Actually I've seen this personally and I'm not sure why this occurs either. I suspect perhaps the host might be busy or vMA/VIMA is not able to fully established a connection. I've only seen this a handful of times and generally when I connect to vCenter and not to an individual host which makes a little more sense, since vCenter might be busy processing other requests.

Unfortunately I can't shed much more light and it's pretty rare when i do see the problems so can't comment on why this occurs. I would just double check to see what else might be occurring during the time the report is executed.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

If you find this information useful, please award points for "correct" or "helpful".

Thanks for the info William. I wonder if it has anhything do do with the following: I configured it to give me the last 10 lines from the log, each of my three ESXi boxes have the same entries.

Activation : Invoke done on

Throw vmodl.fault.RequestCanceled

Result:

(vmodl.fault.RequestCanceled) {

dynamicType = ,

msg = ""

}

Failed to send response to the client: Broken pipe

Event 777 : User root@127.0.0.1 logged in

FormatField: Invalid (vim.LicenseManager.DiagnosticInfo.key)

Could be but again, I've never figured out why this occurs. I've just seen it happen every so often.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Comuunity

If you find this information useful, please award points for "correct" or "helpful".

1st off , great script provides soo much information (too much in my case).

As a suggestion , how hard would it be to add a switch to allow sections to be removed (enabled/disabled) from the report

e.g. I would like are report that only shows say hardware health , which excludes all other sections.

As a total perl n00b , not sure if this is easy or if I can do it just now by a simple '#' at the beging of a particular section

This script's main use case is provide a full dump of an environment and capture quite a bit of information. It's not meant to capture subset of the data, however you can try to modify the script, there are a few functions that specifically retrieves specific pieces of the host system. Though I would not recommend modifying the script, since there are certain sections that are derived from some of the previous function calls and you could break the report. You'll want to take a look at line 237 and depending on which type of report you're running, you'll comment out the appropriate function call. Note, any changes from the default script will not be supported, so I won't be able to answer any further questions regarding changes to the script.

FYI - If you're just looking to monitor hardware health, you can take a look at this script -

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Community

If you find this information useful, please award points for "correct" or "helpful".

Scanning another new cluster today and I get the following:

Use of uninitialized value in concatenation (.) or string at ./vmwareHealthCheck.pl line 1845.

This is a scan using the "--type detail-hosts" option.

This error repeats 39 times. They kind of appear to pop up in pairs....

It's a single cluster environment with 13 total ESX hsosts (3 errors per host = 39??). Should it matter, one of the them is woefully out of date - I think it's in 3.5 U1

The output file is generated, and it certainly looks "normal" - but I thought I'd ask...

I have access to this cluster for 2 more days.

Based on that line #, it looks like it's regarding the last most recent tasks ... I think I know what's going on and this has been resolved in the vSphere report but I've not back ported that to this report. If I get a quick chance tonight, I'll go ahead an update it.

FYI - All new development has gone to vSphere report and the other reason is I no longer have a standard VI environment to test against. Should upgrade to vSphere Smiley Wink

Thanks for the feedback

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Community

If you find this information useful, please award points for "correct" or "helpful".

Of course I can't say much publicly about my customer - but they will be upgrading real, real soon. At the moment, they even have update manager TURNED OFF. You'd think with a cluster of 13 hosts staying current would be a snap....

VMware is really awesome, but some of the stuff I see that carries business critical data is rather astounding. My customers clearly have guardian angels....

Another interesting question. Not worth any work, but it just strikes me as odd (but the "data source" might mean something)

I ran a "datacenter" and a "cluster" scan - given that there's a single cluster here they are in effect the same report.

However, the time stamps on the snapshots differ greatly (by 13 minutes) - does each type of scan use a different time source?

Give the latest version a go, it should resolve the problem you were seeing earlier with regards to the line of code on 1845

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Community

If you find this information useful, please award points for "correct" or "helpful".

$ ./vmwareHealthCheck.pl -server itr-vcenter01 --username vancod --password XXXXX --type detail-hosts --report XXXX_All_Hosts.html

Global symbol "$taskString" requires explicit package name at ./vmwareHealthCheck.pl line 1845.

Execution of ./vmwareHealthCheck.pl aborted due to compilation errors.

My bad, I didn't have a VI3 environment to test on, so was not able to catch this typo.

The new vSphere script has a variable called "taskString" and the previous script uses "task_string". I can't update the doc right now, but I've checked in the fix into sourceforge SVN - http://vghetto.svn.sourceforge.net/viewvc/vghetto/scripts/vmwareHealthCheck.pl?view=log

Go ahead and download the new version and give it a shot, if it works I'll publish the update tonight.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Community

If you find this information useful, please award points for "correct" or "helpful".

Works great - no errors.

The output has about 15k more data - oddly enough it looks like it discovered a few LUNs that were not there in the last version. I asked - the customer did not extend any news LUNs.

Thanks!

Hello everyone,

We recently hit a snag with our development environment and we need your help - http://engineering.ucsb.edu/~duonglt/vmware/help.html

Any contributions are appreciated!

Thanks!

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at: http://engineering.ucsb.edu/~duonglt/vmware/

Twitter: @lamw

vGhetto Script Repository

VMware Code Central - Scripts/Sample code for Developers and Administrators

VMware Developer Community

If you find this information useful, please award points for "correct" or "helpful".

Did the 1845 error from above get fixed? I have the same situation. We are upgrading them to vSphere however I was going to run this script to document the environment before I start. Also wanted to get the list of hardware in the server so I could compare it to the vSphere HCL. I was planning on using the script for fact finding.

Got it to run without line 1845. Good. However if I specify --server and --type detail-hosts together, no go. Using --server and --type host works.

Hi all,

it seems to be that the script which was appended to this doc has not been updated, its the version from January.

After changing the variable name in line 1845 from taskString to task_string it works!

I have corrected the task_string typo, but now I get:

Get a cup of coffee/tea and check out http://www.engineering.ucsb.edu/~duonglt/vmware/

SOAP Fault:

-


Fault string: Not initialized: boolean fileOwner

Fault detail: InvalidRequestFault

Any ideas?

Maybe this is permission related. Do you use this script in windows or with the VMA? I use the VMA.

I use a self built Linux host.

Version history
Revision #:
1 of 1
Last update:
‎01-30-2009 04:35 PM
Updated by: