Docker-Virtualisierung
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.
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
- 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
| 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] | |
| 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
| 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 |
| 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