IBM Cloud Platform-Erkennung

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 22 Minuten Lesedauer
  • Die ServiceNow Discovery-Anwendung findet IBM Cloud Platform-Komponenten (Softlayer API v3 und v3.1 und Bluemix-API v2) mithilfe der IBM Cloud Platform-Muster. Die Erkennung einiger dieser Ressourcen erfordert ein Update der  Anwendung Muster für Discovery und Service-Mappingaus dem ServiceNow Store.

    Sie können die Muster auf Now Platform mithilfe der Versionen London Patch 7, Madrid Patch 2 oder höher verwenden.

    Apps im Store anfordern

    Besuchen Sie die ServiceNow Store-Website, um alle verfügbaren Apps anzuzeigen und Informationen zum Senden von Anforderungen an den Store zu erhalten. Kumulative Informationen zum Release für alle veröffentlichten Apps finden Sie in den Release-Hinweisen zum ServiceNow Store-Versionsverlauf.

    Voraussetzungen

    MID-Server
    Verwenden Sie zur Cloud-Erkennung einen dedizierten MID-Server. Der MID-Server muss über 16 Kerne und 8 GB mit 4 GB Java Memory Model (JVM)-Speicherzuweisung verfügen.
    Stellen Sie den dedizierten MID-Server mit Internetzugang bereit und stellen Sie die Verbindung her.
    Berechtigungen
    Die Cloud-Ressourcen befinden sich in einer IBM-Cloud. Erstellen Sie die IBM-Anmeldeinformationen für den Zugriff auf Ihr IBM-Konto.
    1. Navigieren zu Discovery > Akadem. Grade.
    2. Klicken Sie auf Neu.
    3. Klicken Sie auf IBM-Anmeldeinformationen, und füllen Sie das Formular aus:
      Tabelle : 1. Formular für Anmeldeinformationen
      Feld Beschreibung
      Name Name der Anmeldeinformationen Ein Beispiel ist ibm-cred.
      Reihenfolge Reihenfolge, in der die Plattform diese Anmeldeinformationen bei der Anmeldung bei Geräten verwendet. Eine kleinere Zahl gibt an, dass die Anmeldeinformationen in der Liste weiter oben angezeigt werden. Richten Sie die Reihenfolge der Anmeldeinformationen ein, wenn Sie eine große Anzahl von Anmeldeinformationen verwenden oder wenn die Sicherheitsvorkehrung Benutzer nach drei fehlgeschlagenen Anmeldeversuchen sperrt. Wenn alle Anmeldeinformationen dieselbe oder keine Nummer für die Reihenfolge haben, geht die Instanz die Anmeldeinformationen in zufälliger Reihenfolge durch. Der Standardwert ist 100.
      SoftLayer-API-Benutzer Benutzername für die Softlayer-API. Verwenden Sie den Softlayer-API-Benutzernamen, der in der Softlayer-Konsole definiert ist.
      SoftLayer-API-Schlüssel Schlüssel für die Softlayer-API. Verwenden Sie den Softlayer-API-Schlüssel, der in der Softlayer-Konsole definiert ist.
      Bluemix-API-Schlüssel Schlüssel für die Bluemix-API. Verwenden Sie den in der IBM Cloud-Konsole definierten Bluemix-API-Schlüssel.
    4. Klicken Sie auf Absenden.
    IBM Cloud-Servicekonto erstellen
    Verwenden Sie die im vorherigen Verfahren definierten Anmeldeinformationen, um das IBM Cloud-Servicekonto zu erstellen.
    1. Navigieren zu Cloud Provisioning and Governance > Servicekonten.
    2. Klicken Sie auf Neu.
    3. Füllen Sie die Felder im Formular aus:
      Tabelle : 2. Formular für Cloud-Servicekonto
      Feld Beschreibung
      Name Name der Anmeldeinformationen Ein Beispiel ist ibm-snow.
      Konto-ID IBM Konto-ID-Name. Geben Sie die IBM-Konto-ID ein.
      Discovery Anmeldeinformationen Discovery-Anmeldeinformationen, die Sie zuvor definiert haben
      Datencenter-Typ Datencenter-Typ. Beispiel: IBM Datacenter [cmdb_ci_ibm_datacenter]
    4. Klicken Sie auf Absenden.
    Discovery-Zeitplan ohne Server erstellen
    Konfigurieren Sie eine Discovery ohne Server.
    1. Navigieren Sie im Now Platformzu Discovery > Discovery-Zeitpläne.
    2. Klicken Sie auf Neu.
    3. Füllen Sie die Felder im Formular aus:
      Tabelle : 3. Formular „Discovery-Zeitplan“
      Feld Beschreibung
      Name Name für diesen Discovery-Zeitplan. Beispiel: Muster ohne Server
      Erkennen Erkennungstyp. Wählen Sie Ohne Server aus.
      MID-Server Name des MID-Servers Beispiel: Discovery_Server
      Aktiv Option zur Aktivierung dieses Zeitplans für Discovery. Aktivieren Sie dieses Kontrollkästchen, um Discovery zu aktivieren.
      Ausführen Gibt an, wie häufig der Discovery-Zeitplan ausgeführt werden soll
    4. Klicken Sie mit der rechten Maustaste auf den Header des Formulars „Discovery-Zeitplan“, und wählen Sie Speichern aus.

      Ausführungsmuster ohne Server

    5. Klicken Sie auf die Registerkarte Ausführungsmuster ohne Server.
    6. Klicken Sie auf Neu.
    7. Füllen Sie die Felder im Formular aus:
      Tabelle : 4. Formular „Ausführungsmuster ohne Server“
      Feld Beschreibung
      Name Name dieses serverlosen Ausführungsmusters. Beispiel: IBM1.
      Muster Name des Musters, das Sie ausführen möchten.

      IBM-Muster

      Wenn Sie mehrere Muster ausführen möchten, erstellen Sie mehrere Datensätze.

      Proxy-Host Vollständig qualifizierter Domänenname des Computers, auf dem Sie den Proxy-Server installieren. Geben Sie Global an.
      Aktiv Option zur Aktivierung dieses Zeitplans für Discovery. Aktivieren Sie dieses Kontrollkästchen, um Discovery zu aktivieren.
    8. Konfigurieren Sie die Parameter, die vom IBM Cloud Platform-Muster erforderlich sind, wie folgt:
      Tabelle : 5. Startprogrammparameter für Discovery-Muster
      Parameter Beschreibung
      cloud_cred_id Die sys_id der IBM-Anmeldeinformationen, die in der Konfiguration angegeben ist.
      cloud_account_id Die IBM-Konto-ID
      cloud_datacenter_type cmdb_ci_ibm_datacenter
    9. Führen Sie eine Aktualisierung durch.
    10. Um Discovery zu starten, navigieren Sie zur Discovery-Definition ohne Server, und klicken auf Discovery starten.
    IBM Flow – horizontale Erkennung
    • Wenn Sie die Erkennung mithilfe eines Zeitplans ohne Server ausführen möchte, werden die ausgewählten IBM Cloud-Platform-Muster ausgeführt und IBM Cloud-Platform-Ressourcen erkannt.
    • Wenn Sie die Erkennung mit einem Servicekonto durchführen möchten, wird ein vollständiger IBM Cloud Platform-Discovery-Zeitplan ausgeführt, der alle unterstützten IBM Cloud Platform-Ressourcen erkennt.
    Benutzerdefinierter Cloud-Vorgang
    Cloud-REST – Antwort zu Kontext hinzufügen
    Vorgang für Cloud-REST-Abfragen, der umfangreiche Antworten und eine bessere Speichernutzung unterstützt.
    • Geben Sie alle Felder mit denselben Werten wie im benutzerdefinierten Vorgang „Cloud-REST-Abfrage“ an, mit Ausnahme der Tabelle für die Antwort, die im Feld Name der Antwortvariablen festgelegt ist.

      Antwortfeld

    • Legen Sie Analyse definieren als „Keine“ fest.

    Methoden zum Abrufen von Daten für das IBM-Konto

    1. Navigieren zu Musterdesigner > Anwenderdefinierte Vorgänge.

      Cloud-REST-Abfrage

    2. Klicken Sie auf Cloud-REST – Antwort zu Kontext hinzufügen.

    Methode: Get-Aufruf

    API-URLs, die zum Abrufen der Daten verwendet werden:

    • Lastenausgleichsmodul https://api.softlayer.com/rest<api_version>/SoftLayer_Network_LBaaS_LoadBalancer/getAllObjects?objectMask=mask[listeners[defaultPool],members,healthMonitors]
    • Netzwerk https://api.softlayer.com/rest/<API_VERSION>/SoftLayer_Account/getNetworkVlans?objectMask=mask[primaryRouter.datacenter,name,id,vlanNumber,networkSpace]
    • Netzwerk https://api.softlayer.com/rest/<API_VERSION>/SoftLayer_Account/getSubnets?objectMask=mask[datacenter]
    • Netzwerk https://api.softlayer.com/rest/<API_VERSION>/SoftLayer_Account/getSecurityGroups?objectMask=mask[rules]
    • Organisationen und Bereiche https://api.<region>.bluemix.net/v2/organizations
    • https://api.<region>.bluemix.net/v2/spaces
    • SSH-Schlüssel https://api.softlayer.com/rest/v3/SoftLayer_Account/SoftLayer_Account/getSshKeys
    • Speicher https://api.softlayer.com/rest/<api_version>/SoftLayer_Account/getNetworkStorage
    • Virtueller Server https://api.softlayer.com/rest/v3.1/SoftLayer_Account/getSecurityGroups
    • http://api.softlayer.com/rest/v3.1/SoftLayer_Account/getSecurityGroups?objectMask=mask[id,name,networkComponentBindings[networkComponentId,networkComponent[networkId,guest[fullyQualifiedDomainName,hostname,id,datacenter[name]]]]]
    • https://api.softlayer.com/rest/v3.1/SoftLayer_Account/getVirtualGuests?objectMask=mask[hostname,domain,powerState,fullyQualifiedDomainName,notes,id,statusId,placementGroupId,sshKeys[label,key,id,fingerprint,createDate,modifyDate,notes],primaryBackendIpAddress,primaryIpAddress,networkVlans[id,name,note,vlanNumber],blockDeviceCount,blockDevices[device,diskImageId,mountType,guestId,id,mountMode],allowedNetworkStorage[id,fileNetworkMountAddress,iscsiTargetIpAddresses,nasType,username,serviceResourceBackendIpAddress],maxCpu,maxMemory,datacenter,networkComponentCount,regionalGroup,datacenter,location,operatingSystem[id,softwareDescription[id,name,longDescription,manufacturer,referenceCode,version]],networkComponents[guestId,id,port,name,primarySubnet[networkIdentifier,id,networkVlan[id]],status,macAddress,primaryIpAddress]]
    EVAL-Funktionen

    Verwenden Sie die folgende EVAL-Funktion, um die Lastenausgleichsmodul-API-Antwort in ein vollständiges JSON-Format umzuwandeln. Die Standardantwort hat das Format „[<resource objects>]”.

    var cloud_lb_response = ${cloud_lb_response};
    for (var i = 0; i < cloud_lb_response.size(); i++){
          cloud_lb_response.set(i, '{"result":[' + cloud_lb_response.get(i) + ']}');
    }
    CTX.setAttribute("cloud_lb_response", cloud_lb_response;
    

    Verwenden Sie die folgende EVAL-Funktion, um die Netzwerk-API-Antwort in ein vollständiges JSON-Format umzuwandeln. Die Standardantwort hat das Format „[<resource objects>]”.

    var network_response = ${network_response};
    for (var i = 0; i < network_response.size(); i++){
          network_response.set(i, '{"result":[' + network_response.get(i) + ']}');
    }
    CTX.setAttribute("network_response", network_response);
    

    Verwenden Sie die folgende EVAL-Funktion, um die IBM-Region aus der LB-Verfügbarkeitszone (Rechenzentrum) abzurufen. Dieselbe Funktion wird für andere Ressourcen im Muster verwendet.

    var res = "";
    res = IbmCloudDcToRegion.convertDctoRegion(${cloud_lb[].cloud_lb_az_short_name});
    
    

    Verwenden Sie die folgende EVAL-Funktion, um den erforderlichen Algorithmus im Muster auszuwählen.

    var rtrn
    var lb_algorithm = ${cloud_lb_pools[].lb_algorithm}.toString();
    switch (lb_algorithm){  
       case "ROUNDROBIN":
          lb_algorithm = "round-robin";
          break;    
       case "WEIGHTED_RR":
          lb_algorithm = "round-robin";
          break;          
       case "LEASTCONNECTION":
          lb_algorithm = "least-connections";
          break;     
       default: break;
    

    Verwenden Sie die folgende EVAL-Funktion, um die eindeutige Region für das Konto zu analysieren, das die Organisationen und die entsprechenden Bereiche hostet.

    var tableWithoutDuplicates = '';
    tableWithoutDuplicates =  DuplicateRemover.removeDuplicates(${account_region},["region_name"]);
    CTX.setAttribute("account_region_unique",  tableWithoutDuplicates);
    

    Verwenden Sie die folgende EVAL-Funktion, um Informationen für alle Organisationen abzurufen, die dem IBM Cloud-Konto zugewiesen sind, bei dem die Iteration zum Abrufen der eindeutigen Region durchgeführt wird.

    var cloudcall = new CloudRestAPIClient();
    var resourceTable = ${account_region_unique[*].region_name};
    var tableSize = resourceTable.size();                                     
    var tmp_response = new Packages.java.util.ArrayList();
    var all_organizations_response = new Packages.java.util.ArrayList();
    for (var i = 0; i < tableSize ; i++){
       if  (!resourceTable.get(i)) continue;
       var url = "https://api."+resourceTable.get(i)+".bluemix.net/v2/organizations";
       tmp_response = cloudcall.arrayListExecute(${service_account}, null, url, null, 'GET', null, 'true', CTX);
       
       for (var j = 0; j < tmp_response.size(); j++){
          all_organizations_response.add('{"result":[' + tmp_response.get(j) + ']}');
       }
    }
    CTX.setAttribute("all_organizations_response", all_organizations_response);
    

    Verwenden Sie die folgende EVAL-Funktion, um Informationen für alle Bereiche abzurufen, die dem IBM Cloud-Konto zugewiesen sind, bei dem die Iteration zum Abrufen der eindeutigen Region durchgeführt wird.

    var rtrn = '';
    var cloudcall = new CloudRestAPIClient();
    var resultList = new Packages.java.util.ArrayList();
    var rest = '';
    var resourceTable = ${account_region_unique[*].region_name};
    var result = new Packages.java.util.ArrayList();
    var all_organizations_response = ${all_organizations_response}
    for (var i = 0; i < resourceTable.size() ; i++){
       var url = "https://api."+resourceTable.get(i)+".bluemix.net/v2/spaces";
       result = cloudcall.arrayListExecute(${service_account}, null, url, null, 'GET', null, 'true', CTX);
       for (var z = 0; z < all_organizations_response.size(); z++){
          var jsonObj = JSON.parse(result.get(z));
          ms.log("length "+jsonObj.resources.length);
    for(var j=0;j<jsonObj.resources.length;j++){
             var guid = jsonObj.resources[j].metadata.guid;
             var url = jsonObj.resources[j].metadata.url;
             var name = jsonObj.resources[j].entity.name;
             var organization_guid = jsonObj.resources[j].entity.organization_guid;
             var allow_ssh = jsonObj.resources[j].entity.allow_ssh ? "true" : "false";
             var row = new Packages.java.util.HashMap();
     Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug(">>>>>>>>>>>>>||||||||||||>>>>>> region alias=" + resourceTable.get(i)); 
             Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug(">>>>>>>>>>>>>||||||||||||>>>>>> region full name=" + IbmCloudDcToRegion.regionNamebyAlias(resourceTable.get(i))); 
             row.put("region", IbmCloudDcToRegion.regionNamebyAlias(resourceTable.get(i)));
             row.put("space_guid",guid);
             row.put("space_url",url);
             row.put("space_name",name);
             row.put("space_organization_guid",organization_guid);
             row.put("space_allow_ssh",allow_ssh);
             row.put("rest", rest);
             resultList.add(row);
          }
       }
       CTX.setAttribute('spaces_table', resultList);
    }
         
    

    Verwenden Sie die folgende EVAL-Funktion, um alle Bereiche nach eindeutiger Region zu filtern.

    var space_region = ${spaces_table[].region};
    
    Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug("filtering space according to LDC. space_region=" + space_region);
    var regions = ${cmdb_ci_ibm_datacenter[*].region};
    Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug("input regions list=" + regions.toString());
    
    var rtrn = "false";
    if(regions.contains(space_region)) {
        rtrn = "true";
    }
    rtrn;
    

    Verwenden Sie die folgende EVAL-Funktion, um alle Bereiche nach Speichererkennung zu filtern.

    var storage_response = ${storage_response};
    for (var i = 0; i < storage_response.size(); i++){
          storage_response.set(i, '{"result":[' + storage_response.get(i) + ']}');
    }
    CTX.setAttribute("storage_response", storage_response);
    
    

    Verwenden Sie die folgende EVAL-Funktion, um die API-Antwort in das vollständige JSON-Format zu konvertieren, da die unberührte Antwort als „[<resource objects>]” formatiert ist.

    var ssh_key = ${ssh_key_json};
    for(var i = 0; i < ssh_key.size(); i++){
       ssh_key.set(i,'{"result\" : ' + ssh_key.get(i) + "}");
    }
    CTX.setAttribute("ssh_key_json", ssh_key);
    

    Verwenden Sie die folgende EVAL-Funktion, um die Verfügbarkeitszone in die Speichervolume-Tabelle einzufügen.

    var rtrn;
    var resource_group = ${network_storage[].resource_name};
    var regex = /.*-(\w{3}\d{2}).*/;
    var az_name = regex.exec(resource_group);
    if (az_name) {
       rtrn = az_name[1];
    } else {
       rtrn;
    }
    

    Verwenden Sie die folgende EVAL-Funktion, um die Region in die Speichervolume-Tabelle einzufügen.

    var res = "";
    res = IbmCloudDcToRegion.convertDctoRegion(${network_storage[].availability_zone});
    
    

    Verwenden Sie die folgende EVAL-Funktion, um die Größe der Speicher von Gigabyte in Byte zu konvertieren.

    var rtrn = '';
    
    var size = ${network_storage[].size};
    
    rtrn = (parseInt(size) * 1073741824) + ‘’;
    

    Verwenden Sie die folgende EVAL-Funktion, um die Größe der Speicher von Gigabyte in Byte zu konvertieren.

    var cloudcall = new CloudRestAPIClient();
    var resourceTable = ${network_storage[*].storage_object_id};
    var tableSize = resourceTable.size();
    var allResources = new Packages.java.util.ArrayList();
    var response = new Packages.java.util.ArrayList();
    for (var i = 0; i < tableSize ; i++){
       if  (!resourceTable.get(i)) continue;
       var url = "https://api.softlayer.com/rest/"+${api_version}+"/SoftLayer_Network_Storage/"+resourceTable.get(i)+"/getObject?objectMask=mask[snapshots]";
       // the commented out code is to call the "Cloud Rest Call" API
       
       allResources = cloudcall.arrayListExecute(${service_account}, null, url, null, 'GET', null, 'true', CTX);
       for (var j = 0; j < allResources.size(); j++){
          response.add('{"result":[' + allResources.get(j) + ']}');
       }
    }
    CTX.setAttribute("all_snapshots_response", response);
    

    Verwenden Sie den folgenden EVAL-Abschluss, der die von der API empfangene JSON-Datei in ein Format umwandelt, mit dem der JSON-Parser arbeiten kann. Die Standard-JSON wird unter $vm_json_array gespeichert, die neue JSON unter $vm_json.

    var vm_json = new Packages.java.util.ArrayList();
    vm_json.addAll(${vm_json_array});
    
    for (var i = 0 ; i < vm_json.size(); i++){
          vm_json.set(i, '{\"result\":[' + vm_json.get(i) + ']}');
    }
    
    CTX.setAttribute("vm_json", vm_json); 
    

    Verwenden Sie den folgenden EVAL-Abschluss, der „on“ zurückgibt, wenn der Stromversorgungsstatus aktiv ist. Der Wert „off“ wird zurückgegeben, wenn der Stromversorgungsstatus deaktiviert ist.

    var power = ${cmdb_ci_vm_instance[].state};
    var rtrn = '';
    
    if (power == 'Running'){
       rtrn = "on";
    }
    else {
       rtrn = "off"
    } 
    

    Verwenden Sie den folgenden EVAL-Abschluss, der die Region des CI basierend auf dem angegebenen Verfügbarkeitszonennamen zurückgibt.

    var az = ${cmdb_ci_vm_instance[].avail_zone};
    var rtrn = '';
    rtrn = IbmCloudDcToRegion.convertDctoRegion(az);
    
    Verwenden Sie den folgenden EVAL-Abschluss, der eine HashMap aus HashSets erstellt und VMs mit ihren Netzwerkspeichern verbindet. Der folgende Schlüssel wird verwendet:
    • P = Seite
    • V = VM
    • N = Netzwerkspeicher
    var rtrn = '';
    var vmJson = ${vm_json_array};
    var VMtoStorageHashMap = new Packages.java.util.HashMap();
    
    for (var p = 0 ; p < vmJson.size(); p++){
       var page = JSON.parse(vmJson.get(p));
       for (var now_V in page){
          if (page[v].allowedNetworkStorage.length > 0){
             var vm_id = page[v].id + '';
             var storageSet = new Packages.java.util.HashSet();
             for (var n in page[v].allowedNetworkStorage){
                storageSet.add(page[v].allowedNetworkStorage[n].id + '');
             }
             VMtoStorageHashMap.put(vm_id,storageSet);
          }
       }
    }
    CTX.setAttribute("VMStorageCache", VMtoStorageHashMap); 
    

    Verwenden Sie den folgenden EVAL-Abschluss, um doppelte Einträge aus Tabellen zu entfernen.

    var tableWithoutDuplicates = '';
    tableWithoutDuplicates = DuplicateRemover.removeDuplicates(${cmdb_ci_os_template},["object_id"]);
    CTX.setAttribute("cmdb_ci_os_template", tableWithoutDuplicates);
    

    Verwenden Sie den folgenden EVAL-Abschluss, der eine Liste von VM-IDs erstellt, die sich auf die aktuelle Sicherheitsgruppen-ID beziehen.

    var rtrn = '';
    //get the Security Group ID of the current record in the table for comparison
    var current_table_id = ${security_groups[].sec_group_id};
    var current_table_id_string = current_table_id + '';
    
    // get the list of instance's ID that will be then added to Security Group table
    var needed_value_id_list = ${sec_group_network_components[*].vm_instance_id};
    //get the list of Security Group IDs in the Network Component table, which will then be compared one by one to the current record of the security_groups table
    var compare_id_list = ${sec_group_network_components[*].sec_group_id};
    
    var beforeReturn = '';
    var separator = '';
    for (var i = 0; i <  compare_id_list.size(); i++)   {
       
       if   (current_table_id_string == compare_id_list.get(i)){
          
          beforeReturn += separator + needed_value_id_list.get(i);
          separator = ',';
       }
    }
    rtrn = beforeReturn;
    

    Verwenden Sie den folgenden EVAL-Abschluss, der eine HashMap von HashSets zwischen Sicherheitsgruppen und den VMs erstellt, die für ihre Verwendung konfiguriert sind.

    rtrn = '';
    var secGroupTable = ${cmdb_ci_endpoint_comp_security};
    var secToVMHashSet = new Packages.java.util.HashMap();
    
    // this loop worst case O(N*M) M = security groups, N = VMs
    for(var i=0; i<secGroupTable.size(); i++){
       var securityTableId = secGroupTable.get(i).get('object_id');
       var vmListStr = secGroupTable.get(i).get('instance_list');
       var vmList = vmListStr.split(",");
    
       var vmSet = new Packages.java.util.HashSet();
       for (var j in vmList){
          vmSet.add(vmList[j]);
       }
    
       secToVMHashSet.put(securityTableId,vmSet);
    }
    CTX.setAttribute("securityVMCache",  secToVMHashSet);
    

    Verwenden Sie den folgenden EVAL-Abschluss, der „true“ zurückgibt, wenn die aktuelle VM die aktuelle Sicherheitsgruppen-ID verwendet.

    var rtrn = '';
    var vm_id = ${cmdb_ci_vm_instance[].object_id};
    var vmHashSet = ${securityVMCache}.get(${cmdb_ci_endpoint_comp_security[].object_id});
    rtrn = vmHashSet.contains(vm_id);
    

    Verwenden Sie den folgenden EVAL-Abschluss, der „true“ zurückgibt, wenn die aktuelle VM das aktuelle Speichervolume verwendet.

    var rtrn = '';
    var vm_id = ${cmdb_ci_vm_instance[].object_id};
    var vol_id = ${cmdb_ci_endpoint_iscsi[].object_id};
    var vmHashSet = ${VMStorageCache}.get(vm_id);
    if (vmHashSet){
       rtrn = vmHashSet.contains(vol_id);
    }
    else {
       rtrn = 'false'
    }
    
    Verwenden Sie die folgende EVAL-Funktion, um die API-Antwort in das vollständige JSON-Format zu konvertieren, da die unberührte Antwort als „[<resource objects>]” formatiert ist.
    var cloud_response = ${location_groups_response}
    for (var i = 0; i < cloud_response.size(); i++){
        cloud_response.set(I, '{"result":[' + cloud_response.get(i) + ']}');
    }
    CTX.setAttribute("location_groups_response", cloud_response);
    Analysiert die eindeutigen Standortgruppen in der Tabelle „location_groups_az“ in der Spalte „lg_id“ und erstellt eine neue Tabelle „location_groups_az_unique“, die das Ergebnis enthält
    var tableWithoutDuplicates= '';
    tableWithoutDuplicates = DuplicateRemover.removeDuplicates(${location_groups_az},["lg_id"]);
    CTX.setAttribute("location_groups_az_unique", tableWithoutDuplicates);
    Erstellt eine Liste von Verfügbarkeitszonen pro Standortgruppe, die in einer neuen Spalte in „llocation_groups_az_uniquetable“ gespeichert ist. Die Listendatensätze sind absichtlich durch Kommas unterteilt, sodass im nachfolgenden Schritt eindeutige Beziehungen hergestellt werden können.
    var current_table_id= ${location_groups_az_unique[].lg_id};
    var current_table_id_string = current_table_id+ '';
    var needed_v alue_id_list = ${location_groups_az[*].lg_az_id};
    var compare_id_list= ${location_groups_az[*].lg_id};
    var beforeReturn= '';
    var separator = ',';
    for (var i= 0; i< compare_id_list.size(); i++)  {
        if (current_table_id_string == compare_id_list.get(i)){
        beforeReturn += separator + needed_v alue_id_list.get(i) + separator;
      }
    }
    rtrn = beforeReturn;
    Cloudbezogenen CI-Beziehungen aktivieren
    Um erkannte Komponenten in Anwendungsservices aufzunehmen, aktivieren Sie die CI-Beziehungen, die in der tagbasierten Discovery von Service-Mapping verwendet werden. Diese CI-Beziehungen sind im ServiceNow Store ab Version 1.0.68 verfügbar. Schritte zur Ausführung finden Sie unter Konfiguration der Tag-basierten Discovery.

    Von Discovery während der horizontalen Erkennung erfasste Daten

    Daten werden mithilfe der folgenden Muster gesammelt:
    • IBM Cloud-Lastenausgleichsmodul
    • IBM Cloud-Standortgruppen
    • IBM Cloud-Netzwerk
    • IBM Cloud-Organisationen und -Bereiche
    • IBM Cloud-Ressourcengruppen
    • IBM Cloud-SSH-Schlüssel
    • IBM Cloud-Speicher
    • IBM Cloud virtueller Server
    Daten, die für IBM-Komponenten erfasst wurden:
    Vom IBM Cloud-Lastenausgleichsmodul erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_cloud_load_balancer
    name Name des Lastenausgleichmoduls
    object_id Eindeutiger Bezeichner des Lastenausgleichmoduls
    fqdn Lastenausgleichsmoduladresse (Hostname)
    dns_name Domänenservername des Lastenausgleichmoduls
    short_description Beschreibung des Lastenausgleichmoduls, das Sie zur einfachen Identifizierung angeben
    operational_status Status des Lastenausgleichmoduls, einer der folgenden:
    • ONLINE
    • OFFLINE
    location Standort des Rechenzentrums
    state Bereitstellungsstatus des Lastenausgleichmoduls
    Zugehöriges CI: cmdb_ci_lb_service
    name Name für Mustererstellung, bestehend aus:
    • Name des Lastenausgleichmoduls
    • Typ des Protokolls
    • Ressourcentyp-Listener
    object_id Eindeutiger Bezeichner des Lastenausgleichmoduls
    port Portnummer des Listeners
    front_end_port Protokollportnummer des Listeners
    listener_protocol Protokoll des Listeners Eines der folgenden Protokolle:
    • TCP
    • HTTP
    • HTTPS
    operational_status Bereitstellungsstatus des Listeners
    Zugehöriges CI: cmdb_ci_lb_pool
    name Name für Mustererstellung, bestehend aus:
    • Name des Lastenausgleichmoduls
    • Typ des Protokolls
    • port
    • Ressourcentyp „Pool“
    object_id Eindeutiger Bezeichner des Lastenausgleichmodulpools
    port Protokoll-Port des Back-End
    pool_status Pool-Bereitstellungsstatus des Lastenausgleichmoduls
    load_balancing_method Lastenausgleichsmethode. Einer der folgenden Algorithmen:
    • "ROUNDROBIN"
    • "WEIGHTED_RR"
    • "LEASTCONNECTION"
    Zugehöriges CI: cmdb_ci_lb_pool_member
    name Name für Mustererstellung, bestehend aus:
    • Name des Lastenausgleichmoduls
    • Typ des Protokolls
    • IP-Adresse des Poolmitglieds
    object_id Eindeutiger Bezeichner des Lastenausgleichmodul-Poolmitglieds, bestehend aus:
    • Mitglieds-ID
    • Listener-ID
    ip_address IP-Adresse des Lastenausgleichsmodulmitglieds
    server_id ID des Mitglieds in IBM Cloud
    load_balancer Name des zugehörigen Lastenausgleichmoduls
    Zugehöriges CI: cmdb_ci_lb_health_service
    name Name für Mustererstellung, bestehend aus:
    • Name des Lastenausgleichmoduls
    • Typ des Protokolls
    • Ressourcentyp: Integritätsprüfung
    • resource ID
    object_id Eindeutiger Bezeichner der Integritätsdienstprüfung
    monitor_type Integritätsprüfungstyp Eine der folgenden Möglichkeiten:
    • TCP
    • HTTP
    • HTTPS
    timeout_sec Zeit in Sekunden, die auf die Antworten der Integritätsprüfung gewartet wird
    check_interval_sec Intervall in Sekunden zum Ausführen der Integritätsprüfung
    Von den IBM Cloud-Standortgruppen erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_cloud_location_group
    name Ein beschreibender Name zur Identifizierung einer Standortgruppe
    object_id Die ID des Standortgruppen-Datensatzes
    locationGroupType Name Der Name des Standortgruppentyps
    short_description Ein kleiner Hinweis zu einer Standortgruppe, den Sie nach Belieben verwenden können.
    locationGroup Type ID Die ID des Standortgruppentyps
    Vom IBM Cloud-Netzwerk erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_network
    name VLAN-Nummer
    object_id Eindeutiger Netzwerk-Bezeichner
    access_port_vlan VLAN-Nummer
    is_external Netzwerkspeicherplatzwert. Der Wert ist entweder:
    • „true“, wenn network_space „PUBLIC“ ist
    • „false“, wenn network_space „PRIVATE“ ist
    state Status hat den Wert „verfügbar“.
    Zugehöriges CI: cmdb_ci_cloud_subnet
    name Name, bestehend aus: „network_identifier/cidr“
    object_id Eindeutiger Subnetz-Bezeichner
    subnet_mask Netzmaske des Subnetzes
    gateway Gateway-IP-Adresse
    cidr Methode für die Zuweisung von IP-Adressen und IP-Routing: „network_identifier/cidr“
    Kategorie Subnetztyp
    broadcast_address Broadcast-Adresse des Subnetzes
    available_ip_count Anzahl der IP-Adressen, die im Subnetz verfügbar sind
    Zugehöriges CI: cmdb_ci_compute_security_group
    name Name der Sicherheitsgruppe
    object_id Eindeutiger Bezeichner der Sicherheitsgruppe
    short_description Beschreibung der Sicherheitsgruppe, die Sie zur einfachen Identifizierung angeben
    Zugehörige CI: cmdb_ci_compute_security_group_rule
    name Feld mit demselben Wert wie das Feld „object_id“ der Sicherheitsgruppenregel
    object_id Eindeutiger Bezeichner der Sicherheitsgruppenregeln
    erstellt Datum, an dem das CI erstellt wurde
    direction Richtung der Informationen. Eine der folgenden Möglichkeiten:
    • eingehend
    • ausgehend
    EtherType EtherType Eine der folgenden Möglichkeiten:
    • IPv4
    • IPv6
    port_range_min Der erste Port des Bereichs, für den die Regel gilt
    port_range_max Der letzte Port des Bereichs, für den die Regel gilt
    protocol Protokoll, auf das die Regel angewendet wird
    remote_group_id Sicherheitsgruppen-ID für die Quell-/Ziel-Sicherheitsgruppe. Dies bedeutet, dass diese Regel für alle IP-Adressen gilt, die in dieser Sicherheitsgruppe konfiguriert wurden.
    Von IBM Cloud-Organisationen und -Bereichen erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_cloud_org
    name Name der Cloud-Organisation
    guid Eindeutiger Bezeichner der Organisation
    url Eindeutige URL der Organisation
    billing_enabled Von der Organisation verwendete Abrechnungsmethode. Eine der folgenden:
    • Aktiviert / (TRUE)
    • Deaktiviert / (FALSE)
    quota_definition_url Ressourcen, die einer Organisation zur Verfügung stehen
    spaces_url Eindeutige URL des Speicherplatzes, der einer Organisation zugewiesen ist
    operational_status Betriebsstatus der Organisation
    Zugehöriges CI: cmdb_ci_cloud_space
    name Eindeutiger Name des Bereichs
    object_id Eindeutiger Bereichsbezeichner (GUID)
    allow_ssh Zugriff auf die Anwendung über SSH ist entweder erlaubt oder nicht erlaubt. Boolesch, einer der folgenden Werte:
    • WAHR
    • FALSCH
    URL URL des Bereichs aus der Metadatenbeschreibung
    Von den IBM Cloud-Ressourcengruppen erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_resource_group
    name Name der Ressourcengruppe
    object_id Eindeutiger Bezeichner der Ressourcengruppe
    quota_id Wert, der die der Ressourcengruppe zugeordnete Kontingent-ID angibt
    Vom IBM Cloud-SSH-Schlüssel erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_cloud_key_pair
    name Name zur Identifizierung eines SSH-Schlüssels
    object_id ID des SSH-Schlüsseldatensatzes
    key SSH-Schlüsseldatensatz
    finger_print Kurze Sequenz von Bytes, die zur Authentifizierung oder zum Nachschlagen eines längeren SSH-Schlüssels verwendet wird. Dieser Wert wird automatisch generiert, wenn der SSH-Schlüssel hinzugefügt oder bearbeitet wird. Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    created _date Datum, an dem der SSH-Schlüssel hinzugefügt wurde. Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    modify_date Datum, an dem der SSH-Schlüssel modifiziert wurde. Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    short_description Beschreibung des SSH, die Sie zur einfachen Identifizierung angeben
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    name Name des Rechenzentrums
    region Region, in der sich das Rechenzentrum befindet
    discovery_status Statusinformationen zum IBM-Rechenzentrum
    sys_class_name Klasse des Rechenzentrums
    Zugehöriges CI: cmdb_ci_cloud_service_account
    name Name des Cloud-Servicekontos
    account_id Konto-ID für dieses Cloud-Servicekonto
    discovery_credentials Anmeldeinformationen für dieses Cloud-Servicekonto
    datacenter_url URL zum Ausfüllen der logischen Rechenzentren (LDCs)
    datacenter_type Typ des Rechenzentrums Beispiel: IBM Datacenter [cmdb_ci_ibm_datacenter]
    datacenter_discovery_status Status der letzten Ausführung von „Rechenzentren erkennen“
    Vom IBM Cloud-Speicher erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_storage_volume
    name Benutzername für folgende Aktionen:
    • Zugriff auf ein Nicht-EVault-Speichervolume
    • Registrierung des EVault-Server-Agent mit dem Vault-Sicherungssystem
    object_id Eindeutiger Bezeichner für Speicherkonto
    size Kapazität des Speicherkontos, gemessen in Gigabyte
    size_bytes Kapazität des Speicherkontos, gemessen in Byte
    Bezeichnung Name der Speichernetzwerkressource
    storage_type Beschreibung des Speichertyps. Beispiel: NAS
    fqdn IP-Adresse einer Speicherressource oder vollqualifizierter Domänenname
    Gerät Eindeutige Identifikationsnummer des Geräts, das dem Speichervolume zugeordnet ist
    Zugehöriges CI: cmdb_ci_storage_vol_snapshot
    name Name der Speicher-Netzwerkressource
    object_id Eindeutiger Speicher-Bezeichner
    Kapazität Kapazität des Snapshot-Volume in Gigabyte
    fqdn IP-Adresse einer Speicherressource oder vollqualifizierter Domänenname
    location Eindeutige Verfügbarkeitszone, in der sich das Speichervolume befindet
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    name Name des Rechenzentrums
    region Region, in der sich das Rechenzentrum befindet
    discovery_status Statusinformationen zum IBM-Rechenzentrum
    sys_class_name Klasse des Rechenzentrums
    Zugehöriges CI: cmdb_ci_cloud_service_account
    name Name des Cloud-Servicekontos
    account_id Konto-ID für dieses Cloud-Servicekonto
    discovery_credentials Anmeldeinformationen für dieses Cloud-Servicekonto
    datacenter_url URL zum Ausfüllen der LDCs
    datacenter_type Typ des Rechenzentrums Beispiel: IBM Datacenter [cmdb_ci_ibm_datacenter]
    datacenter_discovery_status Status der letzten Ausführung von „Rechenzentren erkennen“
    Zugehöriges CI: cmdb_ci_availability_zone
    name Name der Verfügbarkeitszone (AZ)
    object_id Eindeutiger Bezeichner für diese Ressource
    short_description Verfügbarkeitszonenbeschreibung, die Sie angeben
    Vom IBM Cloud virtuellen Server erkannte Ressourcen
    Feld Beschreibung
    Haupt-CI: cmdb_ci_vm_instance
    name Name der VM
    object_id Eindeutiger Bezeichner der VM
    dns_domain Name des VM-Domänenservers
    fqdn VM-IP-Adresse
    short_description Beschreibung in einer Notiz, die der VM auf der IBM-Konsole angehängt wird
    CPUs Anzahl der CPU-Kerne, die dieser VM zugewiesen sind
    memory Speichergröße, die dieser VM zugewiesen ist
    disks Anzahl der Datenträger, die dieser VM zugewiesen sind
    state

    Der Ausführungsstatus der VM.

    • On – Wird von der API als „ausgeführt“ zurückgegeben
    • Off – Wird von der API als „angehalten“ zurückgegeben
    placement_group_id Platzierungsgruppen-ID
    nics Anzahl der NICs
    Zugehöriges CI: cmdb_ci_nic
    name Name, bestehend aus:
    • Name des Lastenausgleichmoduls
    • Port
    object_id Eindeutiger Bezeichner der NIC
    ip_address IP, die auf der NIC konfiguriert ist
    mac_address NIC-MAC-Details
    netmask Maske zur Unterteilung der IP-Adresse in Subnetze und zur Angabe der verfügbaren Hosts im Netzwerk
    Status Status der NIC
    Zugehörige CI: cmdb_ci_endpoint_vnic
    name Name für den VNIC-Endpunkt
    object_id Eindeutiger Bezeichner des VNIC-Endpunkts
    host Bezeichner des Hosts
    Zugehöriges CI: cmdb_ci_storage_volume
    name Benutzername für folgende Aktionen:
    • Zugriff auf ein Nicht-EVault-Speichervolume
    • Registrierung des EVault-Server-Agent mit dem Vault-Sicherungssystem
    object_id Eindeutiger Bezeichner für Speicherkonto
    size Kapazität des Speicherkontos, gemessen in Gigabyte
    size_bytes Kapazität des Speicherkontos, gemessen in Byte
    Bezeichnung Name der Speichernetzwerkressource
    storage_type Beschreibung des Speichertyps. Beispiel: NAS
    fqdn IP-Adresse einer Speicherressource oder vollqualifizierter Domänenname
    Gerät Eindeutige Identifikationsnummer des Gastes, der dem Speichervolume zugeordnet ist
    Zugehöriges CI: cmdb_ci_endpoint_nfs
    name Name für den NFS-Endpunkt
    host Bezeichner des Hosts
    protocol Angewendetes Protokoll
    Typ NFS-Endpunkttyp
    erstellt Datum, an dem der NFS-Endpunkt erstellt wurde
    aktualisiert Datum, an dem der NFS-Endpunkt aktualisiert wurde
    discovery_source Quelle der Erkennung. Beispiel: ServiceWatch
    host_name Hostname des NFS-Endpunkts
    Zugehöriges CI: cmdb_ci_endpoint_iscsi
    host Host-Bezeichner für den ISCSI-Endpunkt
    port Port, um festzulegen, wie GCP-ISCSI Kontakt zu den VMs herstellt
    protocol Angewendetes Protokoll
    Typ ISCSI-Endpunkttyp
    erstellt Datum, an dem der ISCSI-Endpunkt erstellt wurde
    aktualisiert Datum, an dem der ISCSI-Endpunkt aktualisiert wurde
    discovery_source Quelle der Erkennung. Beispiel: ImportSet
    host_name Hostname des ISCSI-Endpunkts
    Zugehörige CI: cmdb_ci_endpoint_block
    name Name für den Block-Endpunkt
    object_id Eindeutiger Bezeichner des Block-Endpunkts
    host Bezeichner des Hosts
    Zugehöriges CI: cmdb_ci_os_template
    name Name des Image. Zum Beispiel: CentOS 7.0-64 Minimal for VSI
    object_id Eindeutiger Bezeichner des Images
    guest_os Vom Image verwendetes Betriebssystem Beispiel: Linux
    root_device_type Typ des von Root verwendeten Geräts
    image_source Image-Quelle
    image_type Image-Typ
    infuse_key Schlüssel, der zur Eingabe des Image verwendet wird
    update_host_name Update-Hostname für das Image
    Anmeldeinformationen Anmeldeinformationen für das Image
    Version Version des Betriebssystems. Beispiel: „7.0-64 Minimal for VSI“
    Zugehöriges CI: cmdb_ci_cloud_key_pair
    name Name zur Identifizierung eines Schlüssels (Schlüsselbezeichnung)
    object_id ID des Schlüsseldatensatzes
    key Schlüsseldatensatz
    finger_print Kurze Sequenz von Bytes, die zum Authentifizieren oder Nachschlagen eines Schlüssels verwendet wird. Dieser Wert wird automatisch generiert, wenn der Schlüssel hinzugefügt oder bearbeitet wird. Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    created _date Datum, an dem der Schlüssel hinzugefügt wurde Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    modify_date Datum, an dem der Schlüssel modifiziert wurde Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    short_description Beschreibung, die Sie zur einfachen Identifizierung angeben
    Zugehöriges CI: cmdb_ci_compute_security_group
    name Name der Sicherheitsgruppe
    object_id Eindeutiger Bezeichner der Sicherheitsgruppe
    short_description Beschreibung der Sicherheitsgruppe, die Sie zur einfachen Identifizierung angeben
    Zugehöriges CI: cmdb_ci_endpoint_comp_security
    host Host-Bezeichner des Sicherheitsendpunkts der Berechnung
    port Eindeutiger Host-Bezeichner des Sicherheitsendpunkts der Berechnung
    protocol Angewendetes Protokoll
    Typ Typ des Sicherheitsendpunkts der Berechnung
    erstellt Datum, an dem der Sicherheitsendpunkt der Berechnung hinzugefügt wurde Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    aktualisiert Datum, an dem der Sicherheitsendpunkt der Berechnung geändert wurde Schreibgeschützt. Vorgenommene Änderungen werden ignoriert.
    discovery_source Quelle der Erkennung. Beispiel: Manuelle Eingabe
    host_name Host-Name des Sicherheitsendpunkts der Berechnung
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    name Name des Rechenzentrums
    region Region, in der sich das Rechenzentrum befindet
    discovery_status Statusinformationen zum IBM-Rechenzentrum
    sys_class_name Klasse des Rechenzentrums
    Zugehöriges CI: cmdb_ci_availability_zone
    name Name der Verfügbarkeitszone (AZ)
    object_id Eindeutiger Bezeichner für diese Ressource
    short_description Verfügbarkeitszonenbeschreibung, die Sie angeben
    Zugehöriges CI: cmdb_ci_cloud_service_account
    name Name des Cloud-Servicekontos
    account_id Konto-ID für dieses Cloud-Servicekonto
    discovery_credentials Anmeldeinformationen für dieses Cloud-Servicekonto
    datacenter_url URL zum Ausfüllen der LDCs
    datacenter_type Typ des Rechenzentrums Beispiel: IBM Datacenter [cmdb_ci_ibm_datacenter]
    datacenter_discovery_status Status der letzten Ausführung von „Rechenzentren erkennen“
    IBM Cloud virtueller Server – Ansicht „Zugehörige Elemente“
    IBM Cloud virtueller Server – Ansicht „Zugehörige Elemente“

    CI-Beziehungen

    Diese Beziehungen sollen die IBM Cloud Plattform-Erkennung unterstützen.

    Beziehungen für vom IBM Cloud-Lastenausgleichsmodul erkannte Ressourcen
    CI Beziehung CI
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    cmdb_ci_ibm_datacenter Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_ibm_datacenter Enthält::Enthalten in cmdb_ci_availability_zone
    Zugehöriges CI: cmdb_ci_cloud_load_balancer
    cmdb_ci_cloud_load_balancer Gehostet auf::Hostet cmdb_ci_ibm_datacenter
    cmdb_ci_cloud_load_balancer Enthält::Enthalten in cmdb_ci_lb_health_service
    Zugehöriges CI: cmdb_ci_availability_zone
    cmdb_ci_availability_zone Gehostet auf::Hostet cmdb_ci_cloud_load_balancer
    cmdb_ci_availability_zone Enthält::Enthalten in cmdb_ci_lb_service
    Zugehöriges CI: cmdb_ci_lb_service
    cmdb_ci_lb_service Gehostet auf::Hostet cmdb_ci_cloud_load_balancer
    cmdb_ci_lb_service Enthält::Enthalten in cmdb_ci_lb_pool
    Zugehöriges CI: cmdb_ci_lb_pool
    cmdb_ci_lb_pool Gehostet auf::Hostet cmdb_ci_cloud_load_balancer
    cmdb_ci_lb_pool Eigentümer von::Eigentum von cmdb_ci_lb_pool_member
    Zugehöriges CI: cmdb_ci_lb_health_service
    cmdb_ci_lb_health_service Enthält::Enthalten in cmdb_ci_cloud_load_balancer
    Beziehungen für von den IBM Cloud-Standortgruppen erkannte Ressourcen
    CI Beziehung CI
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    cmdb_ci_ibm_datacenter Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_ibm_datacenter Enthält::Enthalten in cmdb_ci_availability_zone
    Zugehörige CI: cmdb_ci_cloud_location_group
    cmdb_ci_cloud_location_group Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_cloud_location_group Enthält::Enthalten in cmdb_ci_availability_zone
    Beziehungen für vom IBM Cloud-Netzwerk erkannte Ressourcen
    CI Beziehung CI
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    cmdb_ci_ibm_datacenter Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_ibm_datacenter Enthält::Enthalten in cmdb_ci_availability_zone
    Zugehöriges CI: cmdb_ci_network
    cmdb_ci_network Gehostet auf::Hostet cmdb_ci_ibm_datacenter
    cmdb_ci_network Enthält::Enthalten in cmdb_ci_cloud_subnet
    Zugehöriges CI: cmdb_ci_compute_security_group
    cmdb_ci_compute_security_group Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_compute_security_group Enthält::Enthalten in cmdb_ci_compute_security_group_rule
    Beziehungen für von den IBM Cloud-Ressourcegruppen erkannte Ressourcen
    CI Beziehung CI
    Zugehörige CI: cmdb_ci_resource_group
    cmdb_ci_resource_group Gehostet auf::Hostet cmdb_ci_cloud_service_account
    Beziehungen für vom IBM Cloud-SSH-Schlüssel erkannte Ressourcen
    CI Beziehung CI
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    cmdb_ci_ibm_datacenter Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_ibm_datacenter Enthält::Enthalten in cmdb_ci_availability_zone
    Zugehöriges CI: cmdb_ci_cloud_key_pair
    cmdb_ci_cloud_key_pair Gehostet auf::Hostet cmdb_ci_cloud_service_account
    Beziehungen für vom IBM Cloud-Speicher erkannte Ressourcen
    CI Beziehung CI
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    cmdb_ci_ibm_datacenter Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_ibm_datacenter Enthält::Enthalten in cmdb_ci_availability_zone
    Zugehöriges CI: cmdb_ci_storage_volume
    cmdb_ci_storage_volume Gehostet auf::Hostet cmdb_ci_ibm_datacenter
    cmdb_ci_storage_volume Bereitgestellt::Bereitgestellt von cmdb_ci_storage_vol_snapshot
    Zugehöriges CI: cmdb_ci_storage_vol_snapshot
    cmdb_ci_storage_vol_snapshot Gehostet auf::Hostet cmdb_ci_ibm_datacenter
    cmdb_ci_storage_vol_snapshot Positioniert in Zone::Zone beinhaltet cmdb_ci_availability_zone
    Zugehöriges CI: cmdb_ci_availability_zone
    cmdb_ci_availability_zone Enthält::Enthalten in cmdb_ci_storage_volume
    Beziehungen für vom IBM Cloud virtuellen Server erkannte Ressourcen
    CI Beziehung CI
    Zugehöriges CI: cmdb_ci_ibm_datacenter
    cmdb_ci_ibm_datacenter Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_ibm_datacenter Enthält::Enthalten in cmdb_ci_availability_zone
    cmdb_ci_ibm_datacenter Gehostet auf::Hostet cmdb_ci_vm_instance
    Zugehöriges CI: cmdb_ci_vm_instance
    cmdb_ci_vm_instance Gehostet auf::Hostet cmdb_ci_ibm_datacenter
    cmdb_ci_vm_instance Standort::Häuser cmdb_ci_availability_zone
    cmdb_ci_vm_instance Verwendet::Verwendet von cmdb_ci_cloud_key_pair
    cmdb_ci_vm_instance Enthält::Enthalten in cmdb_ci_nic
    cmdb_ci_vm_instance endpoint cmdb_ci_nic
    Zugehöriges CI: cmdb_ci_availability_zone
    cmdb_ci_availability_zone Gehostet auf::Hostet cmdb_ci_vm_instance
    Zugehöriges CI: cmdb_ci_nic
    cmdb_ci_nic Gehostet auf::Hostet cmdb_ci_vm_instance
    Zugehöriges CI: cmdb_ci_os_template
    cmdb_ci_os_template Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_os_template Bereitgestellt::Bereitgestellt von cmdb_ci_vm_instance
    Zugehöriges CI: cmdb_ci_compute_security_group
    cmdb_ci_compute_security_group Gehostet auf::Hostet cmdb_ci_cloud_service_account
    cmdb_ci_compute_security_group Implementieren::Implementiert von cmdb_ci_vm_instance
    Zugehöriges CI: cmdb_ci_storage_volume
    cmdb_ci_storage_volume Gehostet auf::Hostet cmdb_ci_ibm_datacenter
    cmdb_ci_storage_volume Implementieren::Implementiert von cmdb_ci_vm_instance
    Zugehöriges CI: cmdb_ci_cloud_key_pair
    cmdb_ci_cloud_key_pair Gehostet auf::Hostet cmdb_ci_cloud_service_account
    Für die VM-Instanz erkannte Beziehungen
    CI Beziehung CI
    Server [cmdb_ci_server] Virtualisiert von::Virtualisiert VM-Instanz [cmdb_ci_instance]

    Daten, die von Service-Mapping während der tagbasierten Erkennung erfasst wurden

    Service-Mapping verwendet die Tag-basierte Discovery, um Anwendungsservice-Zuordnungen einschließlich der Cloud-Komponenten zu erstellen. Im Lieferumfang von Service-Mapping befinden sich folgende vorkonfigurierte CI-Beziehungen, die für Tag-basierte Discovery verwendet werden. Diese CI-Beziehungen sind im ServiceNow Store ab Version 1.0.68 verfügbar.
    CI Beziehung CI
    Konfigurationselement [cmdb_ci] Gehostet auf::Hostet Logisches Rechenzentrum [cmdb_ci_logical_datacenter]
    Logisches Rechenzentrum [cmdb_ci_logical_datacenter] Gehostet auf::Hostet Cloud-Servicekonto [cmdb_ci_cloud_service_account]

    Problembehandlung

    Wenn der Zuordnungsprozess nicht so verläuft, wie Sie es erwartet haben, sollten Sie den folgenden Vorschlägen folgen.
    Symptom Ursache Lösung
    Discovery fehlgeschlagen. Die Discovery-Nachricht enthält die Informationen zu einem Fehler, der durch die REST-Zeitüberschreitung verursacht wurde. Es gibt viele CIs, deren REST-Aufrufantwort in der Bereitstellung gesendet wird. Der MID-Server kann die REST-Aufrufantwort nicht verarbeiten, ohne dass die vom Parameter mid.sa.cloud.request_timeout gesteuerte Zeitbegrenzung überschritten wird. Standardmäßig ist der Parameter mid.sa.cloud.request_timeout auf 30.000 Millisekunden festgelegt.
    Erhöhen Sie den Wert dieses Parameters auf dem entsprechenden MID-Server, und führen Sie die Discovery erneut aus.
    Hinweis:
    Wenn dieser Parameter in der zugehörigen Liste der Konfigurationsparameter für den betreffenden MID-Server nicht angezeigt wird, müssen Sie ihn möglicherweise hinzufügen.
    Bei Musterdesigner tritt während einer Debug-Sitzung ein Fehler auf. Die Musterdesigner-Meldung enthält die Informationen zu einem Fehler, der durch eine Zeitüberschreitung verursacht wurde. Beim Musterdesigner tritt ein Fehler aufgrund einer Zeitüberschreitung beim Muster-Debugging auf (und nicht während der Discovery). Standardmäßig ist der Parameter sa.debugger.max_timeout auf 240 Sekunden festgelegt.

    Erhöhen Sie den Wert dieses Parameters auf dem betreffenden MID-Server.