Docker-Virtualisierung

  • Freigeben Version: Washingtondc
  • Aktualisiert 3. August 2023
  • 4 Minuten Lesedauer
  • Discovery verwendet das Docker Pattern, um Daten über bestimmte Objekte in einer Docker-Engine zu erfassen, die auf einem Linux-Host ausgeführt wird.

    Die ServiceNow® Platform unterstützt die Erkennung von Docker Release 1.11.0 oder höher.

    Discovery führt den Prozessklassifizierer „Docker Engine“ im Netzwerk aus. Wenn der Klassifizierer den Prozess dockerd oder docker daemon identifiziert, löst der Klassifizierer die Probe „Horizontal Pattern“ (HorizontalDiscoveryProbe) aus, die das Muster „Docker“ startet und mit dem Erfassen von Daten aus Docker-Komponenten beginnt.
    Hinweis:
    Weitere Informationen zur Migration von Probe zu Muster finden Sie im Wissensartikel KB0694477

    Voraussetzungen

    Benutzerrechte
    Der Benutzer, dessen Anmeldeinformationen zum Ausführen der Docker Discovery verwendet werden, muss über Berechtigungen verfügen, die mit einer der folgenden Methoden definiert wurden:
    • Erteilen Sie einem Benutzer erweiterte Rechte für die Ausführung von Befehlen, da der Docker-Daemon als Root-Benutzer ausgeführt wird. Das Muster „Docker“ unterstützt die Verwendung privilegierter Befehlewie sudo oder pbrun, die als Root-Benutzer ausgeführt werden sollen.
    • Zuweisung zu einer Gruppe mit dem Namen docker, die über besondere Berechtigungen zum Ausführen von Docker-Befehlen verfügt. Anweisungen zum Einrichten einer Gruppe finden Sie in der Dokumentation zu Docker.
    Neueste Muster
    Stellen Sie die aktuelle Anwendung „Discovery and Service Mapping Patterns“ aus dem ServiceNow Store bereit.

    Einschränkungen und Überlegungen für Docker

    Beachten Sie bei Verwendung der Docker-Virtualisierung Folgendes:
    • Der erste Prozess-Scan von Discovery kann eine Anwendung in einem Container identifizieren und korrekt klassifizieren. Nachfolgende Probes, die gestartet werden, um die Anwendung zu untersuchen, können jedoch nicht in den Container sehen und keine Details zur Anwendung zurückgeben.
    • Discovery durchsucht alle gefundenen Container, einschließlich inaktiver Container. Dadurch kann Discovery verlangsamt werden. Daher sollten Sie nicht ausgeführte Container löschen.
    • Bevor Sie die Eigenschaft sn_itom_pattern.manifest_digest_image_id auf „ wahr “ setzen und die Erkennung ausführen, verhindern Sie, dass doppelte Docker Datensätze erstellt werden, indem Sie alle Docker Bilddatensätze löschen.
    • Pro (physischem oder virtuellem) Computer ist nur eine Docker-Engine zulässig.

    Von Discovery während der horizontalen Erkennung erfasste Daten

    Zusätzlich zu den aus den übergeordneten OSLV-Tabellen abgeleiteten Attributen werden die folgenden Attribute erkannt.
    Tabelle und Felder Beschreibung
    Docker-Engine [cmdb_ci_docker_engine]
    Image-ID [image_id] Speichert Informationen zu Instanzen der Docker-Engine.
    Image-Auszug [image_digest]
    Größe (Byte) [size_bytes]
    Image erstellt [image_created]
    Name [name]
    Docker-Image [cmdb_ci_docker_image]
    Name [name] Speichert Informationen zur global eindeutigen Darstellung von Docker-Images.
    Image-ID [image_id]
    Image-Auszug [image_digest]
    Größe (Byte) [size_byte]
    Image erstellt [image_created]
    Lokales Docker-Image [cmdb_ci_docker_image]
    Name [name] Speichert lokale Instanzen von Docker-Images
    Image-ID [image_id]
    Docker-Image-Tag [cmdb_ci_docker_image_tag]
    Name [name] Speichert Tags aus lokalen Docker-Images
    Image-ID [image_id]
    Repository [repository]
    Tag [tag]
    Docker-Container [cmdb_ci_docker_container]
    Name [name] Speichert Docker-Container, die auf dem Host gefunden wurden

    In Fällen, in denen doppelte Datensätze erstellt werden, werden Deduplizierungsaufgaben angezeigt, sobald die Erkennung ausgeführt wird. Weitere Informationen zur Lösung dieser Aufgaben finden Sie im Artikel Docker-Container-Bezeichner unabhängig machen [KB1443042] in der ServiceNow® Knowledge Base.

    Image-ID [image_id]
    Container-ID [container_id]
    Größe (Byte) [size_bytes]
    Befehl [command]
    Container erstellt [container_created_at]
    Status [status]
    Diese Informationen werden vom Erweiterungsabschnitt Collect Container Repository erkannt.
    Tabelle und Feld Beschreibung
    Container-Repository [cmdb_ci_container_repository]
    Name [name] Der Name des Container-Repositorys.
    Container-Repository-Eintrag [cmdb_ci_container_repository_entry]
    Name [name] Der Name des Container-Repository-Eintrags.
    Kategorie [category] Die Kategorie des Container-Repository-Eintrags.

    CI-Beziehungen

    Die folgenden Beziehungen zwischen erkannten CIs werden vom Docker-Muster identifiziert.
    CI Beziehung CI
    cmdb_ci_server Runs::Runs On cmdb_ci_docker_engine
    cmdb_ci_docker_engine Manages::Managed By cmdb_ci_docker_container
    cmdb_ci_docker_engine Manages::ManagedBy cmdb_ci_docker_local_image

    cmdb_ci_docker_docker_image

    Instantiates::InstantiatedBy

    cmdb_ci_docker_container

    cmdb_ci_docker_local_image

    Hinweis:
    Die Richtung dieser Beziehung ist für alle Store-Versionen vor 1.0.99, Februar 2023, umgekehrt.

    Instantiates::InstantiatedBy

    cmdb_ci_docker_container

    cmdb_ci_docker_image_tag RegisteredOn::HasRegistered cmdb_ci_docker_local_image
    cmdb_ci_docker_local_image Instantiates::Instantiated By cmdb_ci_docker_image
    Abbildung : 1. Über- und untergeordnete Beziehungen für abhängige OSLV- und Docker-Tabellen
    OSLV-Tabelle
    Der Erweiterungsabschnitt Collect Container Repository des Docker-Musters identifiziert diese Beziehungen.
    CI Beziehung CI
    Docker-Image [cmdb_ci_docker_image] Bereitgestellt von::Bereitgestellt Container-Repository-Eintrag [cmdb_ci_container_repository_entry]
    Container-Repository-Eintrag [cmdb_ci_container_repository_entry] Gehostet auf::Hostet Container-Repository [cmdb_ci_container_repository]

    Identifizierungs-, Containment- und Hosting-Regeln

    Discovery verwendet für die Suche nach der Docker-Engine einen Bezeichner für Anwendungsregeln und wendet dann andere Regeln an, um bestimmte Docker-Objekte zu identifizieren.

    Bezeichner für Anwendungsregeln

    Das System erstellt während der Prozessklassifizierung das Konfigurationselement (CI) cmdb_ci_docker_engine. Darauf aufbauend, verwendet Discovery den Bezeichner der Anwendungsregel in der Anwendungstabelle [cmdb_ci_appl], um die spezifische Docker-Engine zu identifizieren. Nach der Herstellung dieser Identität verwendet Discovery die Beziehungen, die in den Containment- und Hosting-Regeln definiert sind, um die einzelnen CIs der Docker-Komponente, die zu dieser Engine gehören, genau zu erstellen und zu aktualisieren.

    Kennungen
    Name Tabelle Attribute
    Docker-Container Docker-Container [cmdb_ci_docker_container] container_id
    Globales Docker-Image Docker-Image [cmdb_ci_docker_image] image_id
    Lokales Docker-Bild Lokales Docker-Image [cmdb_ci_docker_image] image_id
    Docker-Bild-Tag Docker-Image-Tag [cmdb_ci_docker_image_tag] Repository, Tag
    Containment- und Hosting-Regeln
    Docker Discovery verwendet die folgenden Regeln zum Erstellen oder Bearbeiten einer Sammlung von Containment-Regeln und Erstellen oder Bearbeiten einer Sammlung von Hosting-Regeln, um Konfigurationselemente (CI) aus den vom Muster „Docker“ zurückgegebenen Datenund zu erstellen. Nachdem Discovery die Docker-Engine anhand ihrer Beziehung zur Anwendungstabelle [cmdb_ci_appl] identifiziert hat, werden diese Regeln angewendet, um die spezifischen CIs, die mit dieser Engine verbunden sind, anhand ihrer Beziehungen zueinander zu identifizieren. Indem die Komponenten auf diese Weise (von der Anwendung nach unten, ausgehend von der Engine) verbunden werden, verhindert Discovery, dass doppelte CIs für Komponenten aus anderen Docker-Engines erstellt werden, die denselben Namen oder dieselbe image_id aufweisen.
    Tabelle : 1. Containment-Regel
    Übergeordnet Untergeordnetes Element Beziehung
    Lokales Docker-Bild Docker-Bild-Tag Hat sich registriert
    Tabelle : 2. Hosting-Regeln
    Übergeordnet Untergeordnetes Element Beziehung
    Docker-Container Docker-Engine Verwaltet von
    Lokales Docker-Bild Docker-Engine Verwaltet von