Virtualisation Docker
Découverte utilise le Docker Pattern pour collecter des données sur des objets spécifiques dans un moteur Docker s'exécutant sur un hôte Linux.
La plateforme ServiceNow® prend en charge la détection des versions Docker 1.11.0 ou ultérieures.
Prérequis
- Privilèges d'utilisateur
- L'utilisateur dont les informations d'identification sont utilisées pour exécuter Docker Découverte doit disposer de privilèges définis par l'une des méthodes suivantes :
- Fournissez à un utilisateur des droits élevés pour l'exécution des commandes, car 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, à 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 concernant le Docker.
- Derniers modèles
- Déployez la dernière application Discovery and Service Mapping Patterns à partir de ServiceNow Store.
Restrictions et considérations à propos de Docker
- L'analyse initiale du processus Découverte peut identifier une application dans un conteneur et la classifier 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 en double Docker en supprimant tous les Docker enregistrements d’images.
- Un seul moteur Docker est autorisé par ordinateur (sur un ordinateur physique ou virtuel).
Données collectées par Découverte lors d'une détection horizontale
| Table et champs | Description |
|---|---|
| Moteur 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 globale unique des images de Docker. |
| ID de l'image [image_id] | |
| Synthèse 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 de Docker. |
| ID de l'image [image_id] | |
| Balise de l'image de Docker [cmdb_ci_docker_image_tag] | |
| Nom [name] | Stocke les balises des images locales de Docker. |
| 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. Dans les cas où des enregistrements en double sont créés, les tâches de déduplication s’affichent une fois 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 | Runs::Runs On | cmdb_ci_docker_engine |
| cmdb_ci_docker_engine | Manages::Managed By | cmdb_ci_docker_container |
| cmdb_ci_docker_engine | Gère ::Géré par | cmdb_ci_docker_local_image |
|
cmdb_ci_docker_image |
Instanciations ::Instanciées par |
cmdb_ci_docker_container |
|
cmdb_ci_docker_local_image Remarque :
Le sens de cette relation est inverse pour toutes les versions de magasin antérieures à la version 1.0.99, février 2023. |
Instanciations ::Instanciées par |
cmdb_ci_docker_container |
| cmdb_ci_docker_image_tag | Inscrit le ::S’est inscrit | cmdb_ci_docker_local_image |
| cmdb_ci_docker_local_image | Instantiates::Instantiated By | 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 règle d'application
Le système crée l'élément de configuration (CI) cmdb_ci_docker_engine pendant la classification du processus. Sur cette base, Discovery utilise l'identificateur de règle d'application sur 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 sur Docker utilise ces éléments Créer ou modifier une collection de règles d’imbrication et Créer ou modifier une collection de règles d’hébergement pour créer des éléments de configuration (CI) à partir des données traité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 liés à ce moteur à partir de leurs relations les unes avec les autres. En connectant les composants les uns aux autres de cette manière, depuis l'application vers le bas, à partir du 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 attribut image_id.
Tableau 1. Règle d'imbrication Parent Enfant Relation Image locale de Docker Balise de l'image de Docker Est inscrit Tableau 2. Règles d'hébergement Parent Enfant Relation Conteneur Docker Moteur de Docker Géré par Image locale de Docker Moteur de Docker Géré par