Helpful Guidelines

Determining Success of the Integration

Nutanix Data Collection (Plugin ID 160185)

If data collection was successful, this plugin reports a variety of data collected on the target through the API. In the event this plugin does not report, you can run an audit trail on the host and plugin ID.

Integration Status (Plugin ID 204872)

This plugin reports success or failure based on Tenable’s attempt to gather cluster information.

Additional Logs

In the event that you encounter integration failure, if debug log reporting is enabled (Tenable recommends level 3 or 4) you can review the nutanix_collect.nasl~Nutanix Prism Central log to troubleshoot issues like authentication failure, HTTP error codes from API responses, and custom log messages with helpful pointers.

Advanced Troubleshooting

Tenable gathers data about clusters, hypervisor hosts and virtual machines (VMs) from their three respective API endpoints. This section contains curl commands which can be used to troubleshoot issues with these API endpoints.

In the example commands, replace the values of “ip_address”, “username” and “password” with your own data. Tenable recommends running these from the terminal that hosts the scanner.

One set of commands is for API v4 and the other is for API v3. The API v3 commands should only be used for Prism Central versions older than pc.2024.3.

If a connection is established with the web server but the server returns an error, please refer to the “example error response” values documented in the following example. If a connection can not be established with the web server, the commands use the -v (--verbose) command-line option to help identify generic connection errors.

Collecting Cluster Data (API v4)

Copy
curl -kv --request GET \
    --url https://ip_address:9440/api/clustermgmt/v4.0/config/clusters \
    --header 'Accept: application/json' \
    -u 'username:password'

Example successful response:

Copy
{
  "data": [
    {
      "$reserved": {
        "$fv": "v4.r1"
      },
      "$objectType”: “clustermgmt.v4.config.Cluster"
      ...
    }]
}

Example error response:

Copy
{
  "timestamp": "2025-08-18T20:25:52.448+00:00",
  "status": 400,
  "error": "Bad Request",
  "message": "Bad Request",
  "path": "/api/clustermgmt/v4.0/config/clusters"
}

Collecting Cluster Data (API v3)

Copy
curl -kv --request POST \
    --url https://ip_address:9440/api/nutanix/v3/clusters/list \
    --header 'Accept: application/json' \
    -u 'username:password' \
    --header 'Content-Type: application/json' \
    --data '{
    "kind": "cluster",
    "length": 1,
    "offset": 0,
    "sort_attribute": "uuid",
    "sort_order": "ASCENDING"
}'

Example successful response:

Copy
{
  "api_version": "3.1",
  "metadata": {...},
  "entities": [
    {...}
  ]
}

Example error response:

Copy
{
  "kind": "cluster",
  "code": 0,
  "message_list": [
    {...}
   ],
  "state": "string",
  "api_version": "3.1.0"
}

Collecting Hypervisors and VMs using Auto Discovery (Optional)

Tenable provides the options to discover hypervisors and/or virtual machines during a scan and automatically add them as scan targets. The following curl commands can be run to test the API functions that enumerate the hypervisors and virtual machines. It is less likely that these commands will be needed for troubleshooting.

As with the previous commands, the API v3 commands should only be used for Prism Central versions older than pc.2024.3.

The method for interpreting success and error responses from the API is identical to that of the previous section.

Collecting Hypervisors (API v4)

Copy
curl -kv --request GET \
    --url https://ip_address:9440/api/clustermgmt/v4.0/config/hosts \
    --header 'Accept: application/json' \
    -u 'username:password'

Collecting Hypervisors (API v3)

Copy
curl -kv --request POST \
    --url https://ip_address:9440/api/nutanix/v3/hosts/list \
    --header 'Accept: application/json' \
    -u 'username:password' \
    --header 'Content-Type: application/json' \
    --data '{
    "kind": "host",
    "length": 1,
    "offset": 0,
    "sort_attribute": "uuid",
    "sort_order": "ASCENDING"
}'

Collecting Virtual Machines (API v4)

Copy
curl -kv --request GET \
    --url https://ip_address:9440/api/vmm/v4.0/ahv/config/vms \
    --header 'Accept: application/json' \
    -u 'username:password'

Collecting Virtual Machines (API v3)

Copy
curl -kv --request POST \
    --url https://ip_address:9440/api/nutanix/v3/vms/list \
    --header 'Accept: application/json' \
    -u 'username:password' \
    --header 'Content-Type: application/json' \
    --data '{
    "kind": "vm",
    "length": 1,
    "offset": 0,
    "sort_attribute": "uuid",
    "sort_order": "ASCENDING"
}'