Docker Virtualisation
Découverte utilise pour Docker Pattern collecter des données sur des objets spécifiques dans un Docker moteur, exécuté sur un Linux hôte.
La ServiceNow® plateforme prend en charge la détection de Docker version 1.11.0 ou ultérieure.
Prérequis
- Privilèges de l’utilisateur
- L’utilisateur dont les informations d’identification sont utilisées pour exécuter Docker Découverte doit avoir des privilèges définis par l’une des méthodes suivantes :
- Attribuez à un utilisateur des droits élevés pour exécuter des commandes, puisque le démon Docker s’exécute en tant qu’utilisateur racine. Le modèle Docker prend en charge l’utilisation de commandes privilégiées, telles que sudo ou pbrun, pour s’exécuter en tant qu’utilisateur racine.
- Affecté à un groupe nommé docker, qui dispose de privilèges spéciaux pour l’exécution des commandes Docker. Pour obtenir des instructions sur la configuration d’un groupe, consultez la documentation sur Docker.
- Derniers schémas
- Déployez la dernière version de l’application Schémas de découverte et de mappage des services à partir de ServiceNow Store.
Restrictions et considérations relatives à Docker
- L’analyse du processus initial Découverte permet d’identifier une application dans un conteneur et de la classer correctement. Toutefois, les sondes suivantes lancées pour explorer cette application ne peuvent pas voir à l’intérieur du conteneur et ne peuvent pas renvoyer de détails sur l’application.
- Découverte analyse tous les conteneurs qu’il trouve, y compris les conteneurs inactifs, ce qui peut ralentir Découverte. Vous devez supprimer les conteneurs qui ne sont pas en cours d’exécution.
- Avant de définir la propriété sn_itom_pattern.manifest_digest_image_id sur vrai et d’exécuter la découverte : empêchez la création d’enregistrements Docker en double en supprimant tous les Docker enregistrements d’images.
- Un seul moteur Docker est autorisé par ordinateur (sur une machine physique ou virtuelle).
Données collectées par Découverte lors d'une détection horizontale
| Table et champs | Description |
|---|---|
| Moteur de Docker [cmdb_ci_docker_engine] | |
| Nom [name] | Stocke des informations sur les instances du moteur Docker. |
| Architecture du système d’exploitation [os_arch] | |
| Validation GIT [git_commit] | |
| Date de version [build_date] | |
| Version [version] | |
| Version de l’API [api_version] | |
| Version de Go [go_version] | |
| Est en grappe [is_clustered] | |
| Processus en cours [running_process] | |
| Commande du processus en cours [running_process_command] | |
| Paramètres clés du processus en cours [running_process_key_parameters] | |
| Image de Docker [cmdb_ci_docker_image] | |
| Nom [name] | Stocke des informations sur la représentation unique globale des images Docker. |
| ID de l’image [image_id] | |
| Aperçu de l’image [image_digest] | |
| Taille (octet) [size_byte] | |
| Création de l’image [Image_created_at] | |
| Image locale de Docker [cmdb_ci_docker_local_image] | |
| Nom [name] | Stocke les instances locales d’images Docker. |
| ID de l’image [image_id] | |
| Balise de l’image de Docker [cmdb_ci_docker_image_tag] | |
| Nom [name] | Stocke les balises à partir d’images Docker locales. |
| ID de l’image [image_id] | |
| Référentiel [repository] | |
| Balise [tag] | |
| Conteneur Docker [cmdb_ci_docker_container] | |
| Nom [name] | Stocke les conteneurs Docker trouvés sur l’hôte. Lorsque des enregistrements en double sont créés, les tâches de déduplication s’affichent une fois la découverte exécutée. Pour plus d’informations sur la résolution de ces tâches, consultez l’article Rendre l’identificateur de conteneur Docker indépendant [KB1443042] dans la section ServiceNow® Base de connaissances. |
| ID de l’image [image_id] | |
| ID du conteneur [container_id] | |
| Taille (octets) [size_bytes] | |
| Commande [command] | |
| Création du conteneur [container_created] | |
| Statut [status] | |
| Table et champ | Description |
|---|---|
| Référentiel du conteneur [cmdb_ci_container_repository] | |
| Nom [name] | Le nom du référentiel de conteneur. |
| Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry] | |
| Nom [name] | Le nom de l'entrée du référentiel du conteneur. |
| Catégorie [category] | Catégorie de l'entrée du référentiel du conteneur. |
Relations CI
| CI | Relation | CI |
|---|---|---|
| cmdb_ci_server | Exécution ::Exécute sur | cmdb_ci_docker_engine |
| cmdb_ci_docker_engine | Gére ::Géré par | cmdb_ci_docker_container |
| cmdb_ci_docker_engine | Gére ::Géré par | cmdb_ci_docker_local_image |
|
cmdb_ci_docker_image |
Instanciations ::Instancié par |
cmdb_ci_docker_container |
|
cmdb_ci_docker_local_image Remarque :
Le sens de cette relation est inverse pour toutes les versions de stockage antérieures à la version 1.0.99, février 2023. |
Instanciations ::Instancié par |
cmdb_ci_docker_container |
| cmdb_ci_docker_image_tag | Inscrit le ::A enregistré | cmdb_ci_docker_local_image |
| cmdb_ci_docker_local_image | Instanciations ::Instancié par | cmdb_ci_docker_image |
| CI | Relation | CI |
|---|---|---|
| Image de Docker [cmdb_ci_docker_image] | Mis en service à partir de::Mis en service | Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry] |
| Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry] | Hébergé sur::Hôtes | Référentiel du conteneur [cmdb_ci_container_repository] |
Règles d’identification, d’imbrication et d’hébergement
Discovery utilise un identificateur de règle d’application pour trouver le moteur Docker, puis applique d’autres règles pour identifier des objets Docker spécifiques.
- Identificateur de la règle d’application
Le système crée l’élément de configuration (CI) cmdb_ci_docker_engine lors de la classification du processus. Sur cette base, Discovery utilise l’identificateur Application Rule de la table Application [cmdb_ci_appl] pour identifier le moteur Docker particulier rencontré. Après avoir établi cette identité, Discovery utilise les relations définies dans les règles d’imbrication et d’hébergement pour créer et mettre à jour avec précision les CI de composant Docker individuels associés à ce moteur.
- Identificateurs
Nom Table Attributs Conteneur Docker Conteneur Docker [cmdb_ci_docker_container] container_id Image globale de Docker Image de Docker [cmdb_ci_docker_image] image_id Image locale de Docker Image locale de Docker [cmdb_ci_docker_local_image] image_id Balise de l’image de Docker Balise de l’image de Docker [cmdb_ci_docker_image_tag] référentiel, balise - Règles d’imbrication et d’hébergement
- Découverte Docker utilise ces éléments Créer ou modifier un ensemble de règles d’imbrication et Créer ou modifier un ensemble de règles d’hébergement pour créer des éléments de configuration (CI) à partir des données retournéespar le modèle Docker. Une fois que Discovery a identifié le moteur Docker par sa relation avec la table Application [cmdb_ci_appl], il utilise ces règles pour identifier les CI spécifiques connectés à ce moteur à partir de leurs relations les uns avec les autres. En connectant les composants les uns aux autres de cette manière, à partir de l’application, en commençant par le moteur, Découverte évite de créer des CI en double pour les composants d’autres moteurs Docker qui utilisent le même nom ou image_id.
Tableau 1. Règle d’imbrication Société parente Enfant Relation Image locale de Docker Balise de l’image de Docker Est inscrit Tableau 2. Règles d’hébergement Société parente Enfant Relation Conteneur Docker Moteur de Docker Géré par Image locale de Docker Moteur de Docker Géré par