Virt-who is not reporting few ESXi hosts from vCenter Cluster

Solution Verified - Updated

Environment

  • Red Hat Satellite 6
  • VMware ESXi

Issue

  • After following article How to filter hypervisors by their hostnames using virt-who resulted in some hypervisor to report correctly whereas a couple of filter_hosts didn't report to Satellite content-host page.

  • For example below is the filter applied in virt-who configuration file /etc/virt-who.d/rhev.conf

    filter_hosts=host1.example.com,host2.example.com,host3.example.com
    
  • From the above one, host1.example.com didn't report to satellite

Resolution

  • From Satellite server check the Hypervisor hostname is resolving to its name correctly using nslookup. Also from vCenter terminal run nslookup for the ESXi host.

  • Check Domain is set appropriately for the Hypervisor. Compare it with the one that reported correctly to the Satellite.

    vCenter --> host1.example.com --> Networking --> TCP/IP configuration --> Select the Stack from the table --> Click Edit --> DNS configuration
    
  • Here check Name and Domain for the ESX host. The Domain information should be mentioned.

  • Then restart virt-who service, run

    # service virt-who stop
    # virt-who -d -o
    # service virt-who start
    
  • Remove the existing filter and add a filter with the name of the missing hypervisor in /etc/virt-who.d/rhev.conf and check in the satellite web ui => Monitor => Tasks, dynflow of the Actions::Katello::Host::Hypervisors task for the names of the hypervisors reported. The same hypervisor host1.example.com in this case might be reported with a different name on the satellite web ui because of reuse of an old ip.

For more KB articles/solutions related to Virt-who and Virtual Datacenter (VDC) Subscriptions Issues, please refer to the Consolidated Troubleshooting Article for Virt-who and Virtual Datacenter (VDC) Subscriptions Issues

Root Cause

  • On vCenter console Domain information was missing for the ESX host

Diagnostic Steps

# virt-who -p | python -m json.tool | grep "^            \"uuid\""

        "uuid": "client1.example.com"
        "uuid": "client2.example.com"
        "uuid": "client3"
        "uuid": "client4"
SBR
Product(s)
Components
Category

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.