NVIDIA Minerva must register with the NMX-T (telemetry) and NMX-C (controller) services to begin receiving network telemetry and control data. Communication between these services is secured using certificate-based mTLS encryption. The installation creates the NVIDIA Minerva root CA. You generate the certificates for the switch trays hosting NMX-C and NMX-T from that CA, and then configure them on the switch trays, as described in Generate Certificates.
Registering NMX-T does not send telemetry to NVIDIA Minerva. To collect NVLink telemetry for the dashboards, see Connect to Data Sources.
Generate Certificates
-
On the Swarm manager node, go to the NVIDIA Minerva install directory (
~/minervaby default) and runsvm nmx-certwith--p12, a name, and the address NMX-C and NMX-T are registered under:cd ~/minerva ./svm nmx-cert --p12 <name> <address>-
<name>: a label for the files (lowercase letters, digits, and hyphens), typically the switch's hostname. -
<address>: the address you register in/nmx/v1/services. It goes into the certificate, so a different address fails the connection with a hostname mismatch. Add more addresses after the first if the switch is registered under several.
Example:
nvidia@ubuntu:~$ cd ~/minerva nvidia@ubuntu:~/minerva$ ./svm nmx-cert --p12 example 192.0.2.10 [nmx-peer-cert] INFO Issuing 'example' from /home/nvidia/minerva/secrets/ca-certs/root-ca.crt [nmx-peer-cert] INFO SANs: IP:192.0.2.10,DNS:example [nmx-peer-cert] INFO Bundle ready: /home/nvidia/minerva_nmx_certs/example [nmx-peer-cert] INFO example-ca.crt, example-tls.crt, example-tls.key, example-tls.p12 (empty password) -> NVOS cluster-manager import [nmx-peer-cert] INFO Copy example-ca.crt and example-tls.p12 to the switch tray, ... -
-
The files are written to
~/minerva_nmx_certs/<name>/:-rw-r--r-- 1 nvidia nvidia 1184 example-ca.crt -rw-r--r-- 1 nvidia nvidia 1716 example-tls.crt -rw------- 1 nvidia nvidia 3272 example-tls.key -rw------- 1 nvidia nvidia 4155 example-tls.p12The p12 has an empty password. The directory also holds PEM copies and a
READMEthat you can ignore for this procedure. -
Copy
<name>-ca.crtand<name>-tls.p12to the switch tray, and apply them to NMX-C and NMX-T with the NVOS cluster manager commands. The commands are:nv action import system security certificate server_cert uri-bundle file:///tmp/<name>-tls.p12 nv action import system security ca-certificate ca-cert uri file:///tmp/<name>-ca.crt nv action update cluster apps nmx-controller manager certificate server_cert nv action update cluster apps nmx-controller manager ca-certificate ca-cert nv action update cluster apps nmx-controller manager encryption mtls nv action update cluster apps nmx-controller manager enabled nv action update cluster apps nmx-telemetry manager certificate server_cert nv action update cluster apps nmx-telemetry manager ca-certificate ca-cert nv action update cluster apps nmx-telemetry manager encryption mtls nv action update cluster apps nmx-telemetry manager enabled
Set Compute Tray Hostnames
On GB and Vera Rubin racks, a compute tray reports its GPU product name (for example, GB100 or GR100) instead of a hostname until you set one. NVIDIA Minerva needs the hostname to show a compute tray and its GPUs in the NVLink topology. Without it, Topology shows the rack's switch trays but no compute trays or GPUs.
On each compute tray, set the hostname and check it:
sudo nvidia-smi --set-hostname=<compute-tray-hostname>
nvidia-smi --get-hostname
The compute tray and its GPUs appear in Topology within a few minutes. You don't need to register NMX-C again.
A GPU reset clears the hostname. Set it again after each GPU reset.
Register the Services
Register the services by making a POST request to the /nmx/v1/services endpoint. NMX-C listens on port 9370 and NMX-T listens on port 9351.
For example, to register NMX-C:
curl --request POST \
--url https://<ip_address>/nmx/v1/services \
--header 'X-API-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"Name": "Registration",
"Description": "Example registration to controller",
"ServiceType": "CONTROLLER",
"ServiceConnectionInformation": {
"Address": "192.0.2.10",
"PortNumber": 9370
},
"CollectorID": "c06cd2dc"
}'
CollectorID is optional. It's the ID of the collector that manages the switch (see Create a Collector Bootstrap Bundle in Install Collectors for a Hybrid Deployment). If omitted, the only available collector is used. If there is none, or more than one, the request fails.
Check the Status of a Registered Service
To retrieve the status of all registered services, make a GET request to the /nmx/v1/services endpoint:
curl --request GET \
--url https://<ip_address>/nmx/v1/services \
--header 'X-API-Key: <api-key>'
You can add a filter to the response to retrieve either telemetry or controller services exclusively:
curl --request GET \
--url 'https://<ip_address>/nmx/v1/services?type=TELEMETRY&offset=0&limit=1' \
--header 'X-API-Key: <api-key>'
Use type=CONTROLLER to list controller services.
Delete a Registered Service
To delete a service, make a DELETE request to /nmx/v1/services/{id}, where {id} is the entity ID of the service returned by the registration response or by a prior GET request:
curl --request DELETE \
--url https://<ip_address>/nmx/v1/services/<service_id> \
--header 'X-API-Key: <api-key>'
To find the ID, list the services as shown in Check the Status of a Registered Service.
Last updated: