Virtualisation Docker

  • Rversion finale: Washingtondc
  • Mis à jour 3 août 2023
  • 5 minutes de lecture
  • Détection 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.

    Détection exécute le classifieur de processus Moteur Docker dans le réseau. Si le classifieur identifie le processus dockerd ou docker daemon, il déclenche la sonde Modèle horizontal (HorizontalDiscoveryProbe), qui lance le modèle Docker et commence à collecter les données des composants Docker.
    Remarque :
    Pour plus d’informations sur la migration de sonde à modèle, consultez l’article de la base de connaissances KB0694477

    Prérequis

    Privilèges d'utilisateur
    L'utilisateur dont les informations d'identification sont utilisées pour exécuter Docker Détection 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, 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 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

    Lorsque vous utilisez la virtualisation Docker, prenez en compte les éléments suivants :
    • L'analyse initiale du processus Détection 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étection analyse tous les conteneurs qu'il trouve, y compris les conteneurs inactifs, ce qui peut ralentir Détection. 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étection : 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étection lors d'une détection horizontale

    Ces attributs sont détectés, en plus des attributs dérivés des tables OSLV parentes.
    Table et champs Description
    Moteur Docker [cmdb_ci_docker_engine]
    ID de l'image [image_id] Stocke des informations sur les instances du moteur Docker.
    Synthèse de l'image [image_digest]
    Taille (octets) [size_bytes]
    Image créée [image_created]
    Nom [name]
    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]
    Image créée [image_created]
    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 apparaissent une fois la détection exécutée. Pour plus d’informations sur la façon de résoudre ces tâches, consultez l’article Rendre l’identificateur de conteneur Docker indépendant [KB1443042] dans le 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]
    La section d'extension Collect Container Repository détecte les informations suivantes.
    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

    Le modèle Docker identifie les relations suivantes entre les CI détectés.
    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 Manages::ManagedBy cmdb_ci_docker_local_image

    cmdb_ci_docker_docker_image

    Instantiates::InstantiatedBy

    cmdb_ci_docker_container

    cmdb_ci_docker_local_image

    Remarque :
    La direction de cette relation est inverse pour toutes les versions de magasin antérieures à la version 1.0.99, février 2023.

    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
    Figure 1. Relations parent et enfant des tables dépendantes OSLV et Docker
    Table OSLV
    La section d'extension Collect Container Repository du modèle Docker identifie les relations suivantes.
    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
    La détection Docker utilise ces règles : 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 returé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étection é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