Die ODS (Online Diagnostic System)-Funktion automatisiert das Debugging von NSX zur Laufzeit. ODS wird über in NSX integrierte Runbooks implementiert. Runbooks enthalten Debugging-Prozeduren und besitzen vollständige Beobachtbarkeit für NSX Komponenten. Ein Runbook generiert einen Debugging-Bericht. Außerdem generiert es Laufzeitartefakte eines Problems, z. B. Paketerfassung, Live-Core-Dump des Benutzerprozesses und Ausgabe von Skripts und Tools. Diese Artefakte können später erfasst und für Offline-Analysen und Debugging verwendet werden. Beachten Sie, dass ein vordefiniertes Runbook nicht geändert werden kann.

Sie können APIs verwenden, um die folgenden Runbook-Vorgänge durchzuführen:

  • Aufrufen eines Runbooks für Laufzeit-Debugging
  • Prüfen des Debugging-Berichts
  • Herunterladen der vom aufgerufenen Runbook generierten Artefakte
  • Verwalten des Lebenszyklus eines Runbooks

Vordefinierte Runbooks

Ab NSX 4.1.1 wird ODS auch für Unified Appliance (UA) unterstützt. In der folgenden Tabelle sind die Runbooks und auch die Knoten aufgeführt, auf denen Sie sie ausführen können.

Tabelle 1.
Runbook Beschreibung Knoten Version
PnicPerf Dieses Runbook kann pNIC TX- und RX-Leistungsprobleme erkennen.

In diesem Runbook wird die ID des zu diagnostizierenden logischen Ports als Eingabeargument verwendet.

ESXi 4.1
OverlayTunnel Dieses Runbook kann Overlay-Tunnelausfälle identifizieren, z. B. Gateway-Konfigurationsfehler, fehlender Tunnel, inaktiver Tunnel.

Dieses Runbook verwendet die IP-Adresse des Quell-VTEP und die IP-Adresse des Ziel-VTEP als Eingabeargumente.

ESXi 4.1
PortBlock Dieses Runbook kann Ursachen für die Blockierung eines Ports identifizieren, z. B. die Blockierung eines DVPorts aufgrund einer falschen LSP/LS-Konfiguration. ESXi 4.1
AdfCollect Dieses Runbook erfasst Leistungsdaten des ESXi-Datenpfads über den ADF-Collector.

Dieses Runbook verwendet die folgenden Eingabeargumente:

  • advanced: Gibt an, ob erweiterte Leistungstools aktiviert sind.
  • cycle: Anzahl der ADF-Erfassungszyklen.
  • interval: Warteintervall zwischen aufeinanderfolgenden ADF-Erfassungszyklen in Sekunden.
ESXi 4.1
ControllerConn Dieses Runbook kann Controller-Konnektivitätsprobleme identifizieren, die durch Controller-Ausfall, Proxy-Ausfall, Underlay-Netzwerkausfall oder FQDN-Auflösungsfehler verursacht werden.

Dieses Runbook verwendet die IP-Adresse des ESXi-Hosts und die IP-Adresse des Controllers als Eingabeargumente.

ESXi 4.1
NxgiPlatform

Dieses Runbook dient zur Diagnose von Problemen im NXGI-Plattformdatenpfad, der verschiedene Funktionen unterstützt, darunter Distributed MPS, Endpoint-Schutz, IDFW, IDS und Intelligence.

Dieses Runbook verwendet -Funktionalität als Eingabeargument. Dies ist die spezifische abhängige NXGI-Funktionalität (MPS, IDFW, IDS, EPP oder Intelligence, wobei EPP die Standardeinstellung ist), die Überprüfung oder Debugging erfordert.

ESXi 4.1.1
VifInfo

Dieses Runbook erhält detaillierte Informationen zu einer virtuellen Schnittstelle, die als Eingabe für andere Runbooks verwendet werden kann.

Dieses Runbook verwendet VIF als Eingabeargument.

ESXi 4.1.1
EdgeHealth
Dieses Runbook führt die folgenden Funktionen aus:
  • Führt eine Triage häufiger Edge-Down-Probleme durch, die bei Bereitstellungen und Upgrades auftreten.
  • Schlägt Problemumgehungen vor, um den Edge-Knoten wieder in einen fehlerfreien Zustand zu versetzen und normale Funktion wiederherzustellen.

Dieses Runbook verfügt über kein Eingabeargument.

Edge 4.1.1
MacAddressInfo
Dieses Runbook diagnostiziert Probleme im Zusammenhang mit einer bestimmten MAC-Adresse und überprüft und behebt Leistungsprobleme auf einem Host-Switch. Es führt die folgenden Funktionen aus:
  • Dieses Runbook bezieht MAC-Adressdetails (z. B. MAC, VLAN, VNI und Port-ID) aus der Host-Switch-MAC-Adresstabelle für eine bestimmte MAC-Adresse und einen Host-Switch und stellt eine Diagnose bereit, wenn keine MAC-Adresse vorhanden ist.
  • Bei Angabe einer statischen MAC-Adresse, die von einem VNIC verwendet wird, werden auch die VLAN- und VNI-Informationen des VNIC-Ports abgerufen.

Dieses Runbook verwendet den Host-Switch-Namen und die MAC-Adresse als Eingabeargumente.

ESXi 4.1.1
EdgeDpBfd

Dieses Runbook führt eine Triage von NSX-Edge-BFD-Problemen durch.

Dieses Runbook verwendet die Quell-IP und die Ziel-IP der BFD-Sitzung als Eingabeargumente. Die Erfassung wird auch als optionales Argument verwendet, um sicherzustellen, dass nur sitzungsspezifische BFD-Pakete gefiltert und erfasst werden.

Edge 4.1.1
DistributedMps

Dieses Runbook überprüft den Systemzustand der Malware Prevention Service-Pipeline (MPS) und diagnostiziert alle Probleme mit MPS, wie z. B. eine Fehlfunktion des Schutzes auf einer bestimmten VM oder die Nichtüberprüfung bestimmter Dateien.

Das Eingabeargument für dieses Runbook ist die VM-UUID der VM, deren Schutz diagnostiziert werden soll.

ESXi 4.1.1
DuplicateVtepDetectorProvider

Dieses Runbook erkennt alle doppelten IP-Adressen oder Bezeichnungen in VTEPs.

Dieses Runbook verfügt über kein Eingabeargument.

UA 4.1.1
LspStaleInfo

Dieses Runbook ruft die veralteten logischen Ports ab.

Dieses Runbook verfügt über kein Eingabeargument.

UA
BgpNeighborState

Dieses Runbook diagnostiziert verschiedene Flows, die dazu führen können, dass der BGP-Nachbar ausfällt. Das Runbook erfasst auch die folgenden unterstützenden Artefakte für das Offline-Debugging.

  • BGP- und BFD-Paketerfassung.
  • Ping- und Traceroute-Ergebnisse.

Dieses Runbook verwendet die folgenden Eingabeargumente:

  • Peer-IP: Dies ist ein obligatorisches Argument und verwendet die IP-Adresse des BGP-Nachbarn.
  • Name des logischen Routers: Dies ist ein obligatorisches Argument und verwendet den vom Benutzer konfigurierten Namen des logischen Routers.
  • Paketerfassung: Dies ist ein optionales Argument. Wenn dieser Wert auf „True“ festgelegt ist, erfasst das Runbook BGP/BFD-Pakete. Standardmäßig ist dieser Wert auf „False“ festgelegt.
Edge 4.1.1
PimMrouteState

Dieses Runbook führt eine Triage des Verlustes von Multicast-Datenverkehr durch, was aus verschiedenen Gründen auftreten kann.

Mithilfe einer Quell-IP des Absenders des Multicast-Datenverkehrs und einer Gruppen-IP des Multicast-Datenverkehrs hilft dieses Runbook dabei, die Hauptursache des Problems zu identifizieren und unterstützende Artefakte für das Offline-Debugging zu erfassen.

In diesem Runbook dienen die Quell-IP, die Gruppen-IP und die Datenverkehrsrichtung als Eingabeargumente.

Edge 4.1.1
OspfNbrState

Dieses Runbook führt eine Triage der Probleme mit dem OSPF-Nachbarstatus durch, indem verschiedene logische Flows diagnostiziert werden.

In diesem Runbook dient die IP-Adresse des Nachbarn als Eingabeargument.

Edge 4.1.1
IdpsDpStatus

Dieses Runbook überprüft den Status des IDPS/IDS-Moduls (In-Context-Engine) und der IDPS-Engine. Außerdem werden geladene Profile, Regeln, Signaturen und erfasste Ereignisse in sowohl dem IDPS-Modul als auch dem IDPS-Engine-Modul verglichen.

Dieses Runbook verfügt über kein Eingabeargument.

ESXi 4.1.1
NxgiPlatformUA

Dieses Runbook diagnostiziert Probleme auf der Management Plane für die NXGI-Plattform, welche verschiedene Funktionen wie Distributed MPS, Endpoint Protection, IDFW, IDS und Intelligence unterstützt. Dieses Runbook kann in Verbindung mit dem NxgiPlatform-Runbook verwendet werden, das auf Transportknoten ausgeführt wird.

In diesem Runbook wird die Transportknoten-ID als optionales Eingabeargument verwendet.

UA 4.1.1
CorfuServer

Dieses Runbook überprüft die Stabilität des Corfu-Serverlayouts, den Infra-Ping- und Festplatten-E/A-Zustand sowie die Integrität des Komprimierers.

Um die standardmäßig einbezogenen vergangene Tage oder Stunden von Protokollereignissen zu überschreiben, verwendet dieses Runbook die einbezogenen vergangenen Tage und Stunden als Eingabeargumente.

UA 4.1.1
EdgeIDPS

Dieses Runbook überprüft und ruft Statistiken für die in Edge vorhandene IDS/IPS-Signatur ab.

Dieses Runbook verwendet die Signatur-ID als Eingabeargument.

Edge 4.1.1
EdgeRouting

Dieses Runbook überprüft mehrere Aspekte der Integrität eines bestimmten logischen Routers und stellt eine Liste von Edge-Prozessen bereit, die sich nicht in einem guten Zustand befinden. Das Runbook enthält Anweisungen zur Fehlerbehebung für häufige Probleme beim vertikalen Routing.

Das Runbook sammelt verschiedene Informationen und meldet den Status der Routing-Protokolle, Tunnel und Ports. Es führt eine Integritätsprüfung für den Routing-Stack und verschiedene Daemons durch, die vom Routing auf dem Edge verwendet werden. Für die angegebene Ziel-IP werden die RIB-, FIB- und ARP-Tabellen überprüft. Außerdem werden ein Ping und eine Traceroute unter Verwendung der Quell- und Ziel-IP ausgeführt.

Dieses Runbook verwendet die folgenden Eingabeargumente:
  • Ziel-/Peer-IP: Dies ist ein obligatorisches Argument.
  • Quell-IP: Dies ist ein obligatorisches Argument. Die Quell-IP wird für Ping und Traceroute verwendet und muss eine IP der Schnittstelle sein, an die die Ziel-IP weitergeleitet werden soll.
  • Name des logischen Routers (LR): Dies ist ein obligatorisches Argument. Dies ist der Name des logischen Routers, wie im System konfiguriert.
Edge 4.1.1

PimConfigCheck

Dieses Runbook stellt weitere Details dazu bereit, was genau fehlgeschlagen ist, wenn im Edge der Fehler „routing_config_error“ auftritt. Es hilft auch bei der Behebung des Problems.

Dieses Runbook verfügt über kein Eingabeargument.

Edge 4.1.1
NCPPendingPod Dieses Runbook debuggt einen Pod, der im Status „Ausstehend“ feststeckt.

Dieses Runbook verwendet den Namespace und den Namen des ausstehenden Pods als Eingabeargumente.

ESXi 4.1.2
PortStatusInfo Dieses Runbook erkennt Probleme auf einem Port, der mit vSwitch verbunden ist.

Dieses Runbook verwendet die VIF-ID als Eingabeargument zum Abrufen von Portdetails.

ESXi 4.2.1

Schritte zum Debuggen zur Laufzeit

Führen Sie die folgenden Schritte aus, um das Debugging zur Laufzeit durchzuführen:

Schritt 1: Rufen Sie eine Liste der vordefinierten Runbooks ab.

Führen Sie die folgende API aus, um eine Liste vordefinierter Runbooks abzurufen.

GET https://<nsx-mgr>/policy/api/v1/infra/sha/pre-defined-runbooks

Diese API gibt eine Liste vordefinierter Runbooks zusammen mit den folgenden Informationen zurück:

  • Konfigurationsdetails.
  • Knotentyp, auf dem das Runbook unterstützt wird.
  • Allgemeine Details des Runbook wie ID, Name und Pfad.
  • Parameterdetails, sofern zum Zeitpunkt des Aufrufens des Runbooks erforderlich.

Beispielantwort:

{
    "results": [
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 300,
                "threshold_number": 5,
                "throttle_cycle": 10
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "advanced",
                    "optional": true,
                    "parameter_type": "BOOLEAN",
                    "default_value": "False"
                },
                {
                    "name": "cycle",
                    "optional": false,
                    "parameter_type": "INTEGER",
                    "max": "20",
                    "min": "1"
                },
                {
                    "name": "interval",
                    "optional": true,
                    "parameter_type": "INTEGER",
                    "max": "300",
                    "min": "1"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "00000000-0000-4164-6643-6f6c6c656374",
            "display_name": "AdfCollect",
            "path": "/infra/sha/pre-defined-runbooks/00000000-0000-4164-6643-6f6c6c656374",
            "relative_path": "00000000-0000-4164-6643-6f6c6c656374",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "069a4c7b-532a-4926-a402-6a7986a306b2",
            "realization_id": "069a4c7b-532a-4926-a402-6a7986a306b2",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880454,
            "_create_user": "system",
            "_last_modified_time": 1669600880454,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 60,
                "threshold_number": 5,
                "throttle_cycle": 3
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "0000436f-6e74-726f-6c6c-6572436f6e6e",
            "display_name": "ControllerConn",
            "path": "/infra/sha/pre-defined-runbooks/0000436f-6e74-726f-6c6c-6572436f6e6e",
            "relative_path": "0000436f-6e74-726f-6c6c-6572436f6e6e",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "3914cbe4-41b4-45f1-9dad-2bd96a2de0d8",
            "realization_id": "3914cbe4-41b4-45f1-9dad-2bd96a2de0d8",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880493,
            "_create_user": "system",
            "_last_modified_time": 1669600880493,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 120,
                "threshold_number": 5,
                "throttle_cycle": 5
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "src",
                    "optional": false,
                    "parameter_type": "COMPOUND"
                },
                {
                    "name": "dst",
                    "optional": false,
                    "parameter_type": "COMPOUND"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "0000004f-7665-726c-6179-54756e6e656c",
            "display_name": "OverlayTunnel",
            "path": "/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c",
            "relative_path": "0000004f-7665-726c-6179-54756e6e656c",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "3597af28-e670-456e-8347-4d1a53a5cb90",
            "realization_id": "3597af28-e670-456e-8347-4d1a53a5cb90",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880518,
            "_create_user": "system",
            "_last_modified_time": 1669600880518,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 120,
                "threshold_number": 5,
                "throttle_cycle": 5
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "lsp",
                    "optional": false,
                    "parameter_type": "STRING"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "00000000-0000-0000-506e-696350657266",
            "display_name": "PnicPerf",
            "path": "/infra/sha/pre-defined-runbooks/00000000-0000-0000-506e-696350657266",
            "relative_path": "00000000-0000-0000-506e-696350657266",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "53f29b77-dcf5-4561-85ec-8f35280e3f3a",
            "realization_id": "53f29b77-dcf5-4561-85ec-8f35280e3f3a",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880553,
            "_create_user": "system",
            "_last_modified_time": 1669600880553,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 60,
                "threshold_number": 5,
                "throttle_cycle": 3
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "vif",
                    "optional": false,
                    "parameter_type": "STRING"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "00000000-0000-0050-6f72-74426c6f636b",
            "display_name": "PortBlock",
            "path": "/infra/sha/pre-defined-runbooks/00000000-0000-0050-6f72-74426c6f636b",
            "relative_path": "00000000-0000-0050-6f72-74426c6f636b",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "6f411a92-30c0-4838-9758-c00220cb5fab",
            "realization_id": "6f411a92-30c0-4838-9758-c00220cb5fab",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880572,
            "_create_user": "system",
            "_last_modified_time": 1669600880572,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        }
    ],
    "result_count": 5,
    "sort_by": "display_name",
    "sort_ascending": true
}
In der obigen Antwort werden die folgenden vordefinierten Runbooks zurückgegeben.
  • AdfCollect
  • ControllerConn
  • OverlayTunnel
  • PnicPerf
  • PortBlock

    Wenn ein Runbook beim Aufruf einen Parameter erfordert, werden die Parameterdetails im Schlüssel parameters angegeben. Das Overlay-Tunnel-Runbook erfordert z. B. zwei Parameter: source und destination, bei denen es sich um lokale und Remote-VTEP-IPs des untersuchten Tunnels handelt.

Schritt 2: Rufen Sie die Parameterdetails des Runbooks ab.

Führen Sie die folgende API aus, um die Parameterdetails eines Runbooks abzurufen, das Sie aufrufen möchten.

https://{{MANAGER_IP}}/policy/api/v1/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c/help
{
    "summary": "Runbook to diagnose overlay tunnel issues.",
    "parameter_info": [
        {
            "summary": "IP address of source VTEP",
            "parameter": {
                "name": "src",
                "optional": false,
                "parameter_type": "COMPOUND"
            }
        },
        {
            "summary": "IP address of destination VTEP",
            "parameter": {
                "name": "dst",
                "optional": false,
                "parameter_type": "COMPOUND"
            }
        }
    ]
}
Beachten Sie, dass in der Aufruf-API eines Runbooks parameter name -> key und parameter type -> value zugeordnet wird.
Schritt 3: Rufen Sie das Runbook auf.

Führen Sie die folgende API aus, um ein Runbook aufzurufen.

POST https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/<invoke-name>

Beispielanforderung: Aufrufen des Overlay-Tunnel-Runbooks.

POST https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/OverlayTunnel
{
    "runbook_path": "/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c",
    "target_node": "6c7a9374-459d-46b2-9ea6-c63b37c7cc38",
    "arguments": [
        {
            "key": "src",
            "value": "192.168.0.11"
        },
        {
            "key": "dst",
            "value": "192.168.0.10"
        }
    ]
}
target_node kann ein Hostknoten, ein Edge-Knoten oder ein Unified-Appliance-Knoten sein.

Die ID eines Hosts oder eines Edge kann über die folgende API abgerufen werden.

https://{{MANAGER_IP}}/api/v1/transport-nodes

Die Liste der Appliance-IDs kann über die Cluster-API abgerufen werden. Die gültige ID ist die externe ID der Appliance mit manager-Rolle.

https://{{MANAGER_IP}}/api/v1/cluster/nodes
Schritt 4: Überprüfen Sie den Bericht des aufgerufenen Runbooks.

Führen Sie die folgende API aus, um den Bericht des aufgerufenen Runbook abzurufen.

GET https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/<invoke-name>/report

Beispielanforderung:

GET https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/OverlayTunnel/report

Beispielantwort:

{
    "invocation_id": "70527fed-1e5e-4fed-a880-28cde04a66b1",
    "target_node": "6c7a9374-459d-46b2-9ea6-c63b37c7cc38",
    "timestamp": 1662469099,
    "sys_info": {
        "host_name": "sc2-10-185-4-158.eng.vmware.com",
        "os_name": "VMkernel",
        "os_version": "7.0.3"
    },
    "result_message": "Tunnel 192.168.0.11 -> 192.168.0.10 is in up state",
    "recommendation_message": "No changes required as the tunnel is in up state.",
    "step_details": [
        {
            "step_id": 1,
            "action_summary": "Check the status of tunnel for the given source/destination VTEPs.",
            "action_result": "Tunnel 192.168.0.11 -> 192.168.0.10 is in state up"
        }
    ],
    "status": {
        "request_status": "SUCCESS",
        "operation_state": "FINISHED"
    }
}

In der Antwort werden einige Metadateninformationen zurückgegeben, z. B. der Zeitstempel und Systemdetails wie Hostname und Betriebssystem. Der Bericht enthält auch das Ergebnis des Debuggings und eventuelle Abhilfemaßnahmen sowie die zur Fehlersuche ausgeführten Schritte mit einer Zusammenfassung der Maßnahmen und dem Ergebnis der einzelnen Schritte. Wenn das Debugging aus irgendeinem Grund unterbrochen wird, enthält das Feld operation_state einen Wert, der den Grund für die Unterbrechung angibt. Wenn der Runbook-Aufruf nicht erfolgreich verläuft, enthält der Bericht Fehlerdetails und zeigt keine Debugging-bezogenen Felder an.

Schritt 5: Laden Sie Artefakte herunter.
  1. Führen Sie die folgende API aus, um Artefakte zu erfassen.

    POST https://{{mgr-ip}}/policy/api/v1/infra/sha/runbook-invocations/{{invocation-name}}

    Beispielanforderung:
    POST https://{{mgr-ip}}/policy/api/v1/infra/sha/runbook-invocations/{{invocation-name}}
    {
        "runbook_path": "/infra/sha/pre-defined-runbooks/00000000-0000-4164-6643-6f6c6c656374",
        "target_node": "{{target-node}}",
        "arguments": [
            {
                "key": "advanced",
                "value": "{{advanced-mode}}"
            },
            {
                "key": "cycle",
                "value": "{{cycle-count}}"
            },
            {
                "key": "interval",
                "value": "{{interval-in-sec}}"
            }
        ]
    }

    Wenn der Parameter advanced zum Zeitpunkt des Aufrufs auf „false“ festgelegt ist, erfasst das Runbook Topologieinformationen, Netzwerkstatistiken, NSX-DP-Statistiken und Uplink-Informationen. Wenn der Parameter advanced auf „true“ festgelegt ist, führt das Runbook zusätzlich erweiterte Performance-Tools wie vmkstats (nur auf der physischen Maschine verfügbar) aus.

    Der Parameter cycle definiert wie oft der ADF-Collector bei einem Aufruf ausgeführt wird.

    Der Parameter interval definiert die Wartezeit zwischen aufeinanderfolgenden ADF-Collector-Ausführungen. Dieser wird nur angewendet, wenn für den Parameter cycle ein Wert größer 1 festgelegt ist.

    Beispielantwort:

    {
        "invocation_id": "80a0037a-52e1-48d7-b28e-c3bfb8475e8c",
        "target_node": "b794f78f-7eb0-433f-8f11-63e6b3121c28",
        "timestamp": 1668674073,
        "sys_info": {
            "host_name": "sc2-rdops-vm06-dhcp-204-101.eng.vmware.com",
            "os_name": "VMkernel",
            "os_version": "7.0.3"
        },
        "result_message": "ADF data collection runbook completes.",
        "recommendation_message": "No action needs to be taken.",
        "step_details": [
            {
                "step_id": 1,
                "action_summary": "Run ADF collector.",
                "action_result": "ADF data collection is successfully performed in the following time point(s) along with the following artifact(s): [(2022-11-17 08:35:30, a44f0446-0ac3-4e7f-8513-fb1248985d9e.tar)]",
                "artifacts": [
                    "a44f0446-0ac3-4e7f-8513-fb1248985d9e"
                ]
            }
        ],
        "status": {
            "request_status": "SUCCESS",
            "operation_state": "FINISHED"
        }
    }
  2. Führen Sie die folgende API aus, um die Artefakte herunterzuladen.

    GET https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/<invoke-name>/artifact

Wenn das Runbook die Artefakte generiert hat, gibt die API eine Paketdatei zurück. Andernfalls wird eine Fehlermeldung zurückgegeben. Speichern Sie die binäre Antwort in einer tar.gz-Datei. Diese Datei enthält einen Runbook-Aufrufbericht (in JSON) sowie eine TAR-Datei für die durchgeführte ADF-Sammlung.

Ändern einer Runbook-Konfiguration

Zuerst wird eine Transportknotengruppe (TN) erstellt, an die dann ein Runbook-Profil gebunden wird. Wenn Sie die Konfiguration eines Runbooks ändern, wird diese auf allen Knoten geändert, an die das Runbook-Profil gebunden ist. Sie können konfigurieren, ob ein Runbook aktiviert ist oder nicht, wann eine Zeitüberschreitung beim Debugging auftritt und wie häufig das Runbook mit dem Drosselzyklusmechanismus aufgerufen werden kann. Der Drosselzyklusmechanismus gibt an, wie oft ein Runbook in einer bestimmten Zeit ausgeführt werden kann.

Beachten Sie, dass ein Runbook nur ein Profil besitzen kann, wohingegen ein Knoten möglicherweise mehrere Runbook-Profile besitzt, die auf den TN-Gruppen basieren, denen es angehört. In diesem Fall wird das Profil mit der höchsten Priorität auf den Knoten angewendet.

Um die Runbook-Konfiguration zu ändern, führen Sie die folgenden Schritte aus:

Schritt 1: Erstellen Sie eine TN-Gruppe von ESXi.

Führen Sie die folgende API aus, um eine TN-Gruppe zu erstellen.

PATCH https://<nsx-mgr>/policy/api/v1/infra/domains/default/groups/<group-name>

Beispielanforderung:

PATCH https://<nsx-mgr>/policy/api/v1/infra/domains/default/groups/<group-name>
{
    "expression": [
        {
            "paths": [
                "/infra/sites/default/enforcement-points/default/host-transport-nodes/TN1"
            ],
            "resource_type": "PathExpression"
        }
    ],
    "extended_expression": [],
    "reference": false,
    "group_type": [],
    "resource_type": "Group"
}
Schritt 2: Ändern Sie die Konfiguration des Runbook-Profils und binden Sie die TN-Gruppe an das Profil.

Führen Sie die folgende API aus, um die Konfiguration zu ändern:

PATCH https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-profiles/<profile-name>

Beispielanforderung:

PATCH https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-profiles/<profile-name>
{
    "runbook_path": "/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c",
    "applied_to_group_path": "/infra/domains/default/groups/tngroup2",
    "config": {
        "enabled": true,
        "timeout": 120,
        "threshold_number": 2,
        "throttle_cycle": 6
    }
}

In diesem Beispiel beläuft sich throttle_cycle auf 6 Minuten und threshold_number auf 2. Das bedeutet, dass das Runbook innerhalb von 6 Minuten maximal zweimal aufgerufen werden kann.

Vollständige Informationen zu ODS-APIs finden Sie im API-Handbuch für NSX Intelligence & NSX Application Platform.