Utilisation de l'inventaire personnalisé - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de l'inventaire personnalisé

Vous pouvez affecter toutes les métadonnées souhaitées à vos nœuds en créant un inventaire personnalisé Inventory AWS Systems Manager. Par exemple, supposons que vous gériez un grand nombre de serveurs dans des racks dans votre centre de données et que ces serveurs ont été configurés en tant que nœuds gérés par Systems Manager. Vous stockez actuellement des informations sur l'emplacement des racks de serveurs dans une feuille de calcul. Avec un inventaire personnalisé, vous pouvez spécifier l'emplacement des racks de chaque nœud en tant que métadonnées du nœud. Lors de la collecte d'inventaire à l'aide de Systems Manager, ces métadonnées sont collectées avec les autres métadonnées d'inventaire. Vous pouvez ensuite transférer toutes les métadonnées d'inventaire vers un compartiment Amazon S3 central à l'aide de la synchronisation de données de ressources et interroger les données.

Note

Systems Manager prend en charge un maximum de 20 types d'inventaires personnalisés par Compte AWS.

Pour affecter un inventaire personnalisé à une nœud, vous pouvez utiliser l'action d'API Systems Manager PutInventory, comme décrit dans Démonstration : Affecter des métadonnées d'inventaire personnalisé à un nœud géré. Sinon, vous pouvez créer un fichier JSON d'inventaire personnalisé et le charger sur le nœud. Cette section explique comment créer le fichier JSON.

L'exemple suivant de fichier JSON avec inventaire personnalisé spécifie les informations sur les racks concernant un serveur sur site. Cet exemple spécifie un type de données d'inventaire personnalisé ("TypeName": "Custom:RackInformation"), avec plusieurs entrées sous Content qui décrivent les données.

{ "SchemaVersion": "1.0", "TypeName": "Custom:RackInformation", "Content": { "Location": "US-EAST-02.CMH.RACK1", "InstalledTime": "2016-01-01T01:01:01Z", "vendor": "DELL", "Zone" : "BJS12", "TimeZone": "UTC-8" } }

Vous pouvez également spécifier des entrées distinctes dans la section Content, comme illustré dans l'exemple suivant.

{ "SchemaVersion": "1.0", "TypeName": "Custom:PuppetModuleInfo", "Content": [{ "Name": "puppetlabs/aws", "Version": "1.0" }, { "Name": "puppetlabs/dsc", "Version": "2.0" } ] }

Le schéma JSON pour l'inventaire personnalisé nécessite les sections SchemaVersion, TypeName et Content, mais vous pouvez définir les informations dans ces sections.

{ "SchemaVersion": "user_defined", "TypeName": "Custom:user_defined", "Content": { "user_defined_attribute1": "user_defined_value1", "user_defined_attribute2": "user_defined_value2", "user_defined_attribute3": "user_defined_value3", "user_defined_attribute4": "user_defined_value4" } }

La valeur de TypeName est limitée à 100 caractères. La valeur TypeName doit également commencer par le mot Custom en majuscule. Par exemple, Custom:PuppetModuleInfo. Par conséquent, les exemples suivants entraîneraient une exception : CUSTOM:PuppetModuleInfo, custom:PuppetModuleInfo.

La section Content inclut des attributs et des données. Ces éléments ne sont pas sensibles à la casse. Par contre, si vous définissez un attribut (par exemple: « Vendor » : « DELL »), vous devez faire référence à cet attribut de manière cohérente dans vos fichiers d'inventaire personnalisés. Si vous spécifiez « Vendor » : « DELL » (avec un « F » majuscule dans vendor) dans un fichier, puis « vendor » : « DELL » (avec un « f » minuscule dans vendor) dans un autre fichier, le système renvoie une erreur.

Note

Vous devez enregistrer le fichier avec une extension .json et l’inventaire que vous définissez doit être composé uniquement de valeurs de chaîne.

Une fois le fichier créé, vous devez l'enregistrer sur le nœud. Le tableau suivant montre l'emplacement où les fichiers JSON d'inventaires personnalisés doivent être stockés sur le nœud.

Système d'exploitation Chemin

Linux

/var/lib/amazon/ssm/node-id/inventory/custom

macOS

/opt/aws/ssm/data/node-id/inventory/custom

Windows

%SystemDrive%\ProgramData\Amazon\SSM\InstanceData\node-id\inventory\custom

Pour obtenir un exemple d'utilisation de l'inventaire personnalisé, consultez Obtention de l'utilisation des disques de votre flotte à l'aide des types d'inventaires personnalisés EC2 Systems Manager.

Suppression de l'inventaire personnalisé

Vous pouvez utiliser l'opération d'API DeleteInventory pour supprimer un type d'inventaire personnalisé et les données associées à celui-ci. Vous appelez la commande delete-inventory à l'aide de l'AWS Command Line Interface (AWS CLI) pour supprimer toutes les données d'un type d'inventaire. Vous appelez la commande delete-inventory avec l'option SchemaDeleteOption pour supprimer un type d'inventaire personnalisé.

Note

Un type d'inventaire est également appelé un schéma d'inventaire.

Le paramètre SchemaDeleteOption inclut les options suivantes :

  • DeleteSchema : cette option supprime le type personnalisé spécifié et toutes les données qui lui sont associées. Vous pouvez recréer le schéma plus tard, si vous le souhaitez.

  • DisableSchema : si vous sélectionnez cette option, le système désactive la version actuelle, supprime toutes les données qui lui sont associées et ignore toutes les nouvelles données si la version est antérieure ou égale à la version désactivée. Vous pouvez réactiver ce type d'inventaire en appelant l'action PutInventory pour une version ultérieure à la version désactivée.

Pour supprimer ou désactiver l'inventaire personnalisé à l'aide de l'AWS CLI
  1. Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).

    Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l'AWS CLI.

  2. Exécutez la commande suivante pour utiliser l'option dry-run afin de voir quelles données seront supprimées du système. Cette commande ne supprime aucune donnée.

    aws ssm delete-inventory --type-name "Custom:custom_type_name" --dry-run

    Le système retourne des informations telles que les suivantes.

    {
       "DeletionSummary":{
          "RemainingCount":3,
          "SummaryItems":[
             {
                "Count":2,
                "RemainingCount":2,
                "Version":"1.0"
             },
             {
                "Count":1,
                "RemainingCount":1,
                "Version":"2.0"
             }
          ],
          "TotalCount":3
       },
       "TypeName":"Custom:custom_type_name"
    }

    Pour plus d'informations sur la synthèse de la suppression d'inventaire, consultez Comprendre la synthèse de la suppression d'inventaire.

  3. Exécutez la commande suivante pour supprimer toutes les données d'un type inventaire personnalisé.

    aws ssm delete-inventory --type-name "Custom:custom_type_name"
    Note

    La sortie de cette commande n'affiche pas la progression de la suppression. C'est pourquoi TotalCount et Remaining Count restent inchangés, car le système n'a encore rien supprimé. Vous pouvez utiliser la commande describe-inventory-deletions pour afficher la progression de la suppression, comme décrit plus loin dans cette rubrique.

    Le système retourne des informations telles que les suivantes.

    {
       "DeletionId":"system_generated_deletion_ID",
       "DeletionSummary":{
          "RemainingCount":3,
          "SummaryItems":[
             {
                "Count":2,
                "RemainingCount":2,
                "Version":"1.0"
             },
             {
                "Count":1,
                "RemainingCount":1,
                "Version":"2.0"
             }
          ],
          "TotalCount":3
       },
       "TypeName":"custom_type_name"
    }

    Le système supprime toutes les données du type d'inventaire personnalisé spécifié du service Systems Manager Inventory.

  4. Exécutez la commande suivante. La commande effectue les actions suivantes pour la version actuelle du type d'inventaire : elle désactive la version actuelle, supprime toutes les données de celle-ci et ignore toutes les nouvelles données si la version est antérieure ou égale à la version désactivée.

    aws ssm delete-inventory --type-name "Custom:custom_type_name" --schema-delete-option "DisableSchema"

    Le système retourne des informations telles que les suivantes.

    {
       "DeletionId":"system_generated_deletion_ID",
       "DeletionSummary":{
          "RemainingCount":3,
          "SummaryItems":[
             {
                "Count":2,
                "RemainingCount":2,
                "Version":"1.0"
             },
             {
                "Count":1,
                "RemainingCount":1,
                "Version":"2.0"
             }
          ],
          "TotalCount":3
       },
       "TypeName":"Custom:custom_type_name"
    }

    Vous pouvez consulter un type d'inventaire désactivé à l'aide de la commande suivante.

    aws ssm get-inventory-schema --type-name Custom:custom_type_name
  5. Exécutez la commande suivante pour supprimer un type d'inventaire.

    aws ssm delete-inventory --type-name "Custom:custom_type_name" --schema-delete-option "DeleteSchema"

    Le système supprime le schéma et toutes les données d'inventaire du type personnalisé spécifié.

    Le système retourne des informations telles que les suivantes.

    {
       "DeletionId":"system_generated_deletion_ID",
       "DeletionSummary":{
          "RemainingCount":3,
          "SummaryItems":[
             {
                "Count":2,
                "RemainingCount":2,
                "Version":"1.0"
             },
             {
                "Count":1,
                "RemainingCount":1,
                "Version":"2.0"
             }
          ],
          "TotalCount":3
       },
       "TypeName":"Custom:custom_type_name"
    }

Affichage du statut de suppression

Vous pouvez consulter le statut d'une opération de suppression à l'aide de la commande describe-inventory-deletions AWS CLI. Vous pouvez spécifier un ID de suppression pour afficher le statut d'une opération de suppression spécifique. Sinon, vous pouvez omettre l'ID de suppression pour afficher la liste de toutes les suppressions exécutées au cours des 30 derniers jours.

  1. Exécutez la commande suivante pour afficher le statut d'une opération de suppression. Le système a renvoyé l'ID de suppression dans la synthèse de suppression d'inventaire.

    aws ssm describe-inventory-deletions --deletion-id system_generated_deletion_ID

    Le système renvoie la statut le plus récent. L'opération de suppression peut ne pas être encore terminée. Le système retourne des informations telles que les suivantes.

    {"InventoryDeletions": 
      [
        {"DeletionId": "system_generated_deletion_ID", 
         "DeletionStartTime": 1521744844, 
         "DeletionSummary": 
          {"RemainingCount": 1, 
           "SummaryItems": 
            [
              {"Count": 1, 
               "RemainingCount": 1, 
               "Version": "1.0"}
            ], 
           "TotalCount": 1}, 
         "LastStatus": "InProgress", 
         "LastStatusMessage": "The Delete is in progress", 
         "LastStatusUpdateTime": 1521744844, 
         "TypeName": "Custom:custom_type_name"}
      ]
    }

    Si l'opération de suppression est réussie, LastStatusMessage indique : Deletion is successful (Suppression réussie).

    {"InventoryDeletions": 
      [
        {"DeletionId": "system_generated_deletion_ID", 
         "DeletionStartTime": 1521744844, 
         "DeletionSummary": 
          {"RemainingCount": 0, 
           "SummaryItems": 
            [
              {"Count": 1, 
               "RemainingCount": 0, 
               "Version": "1.0"}
            ], 
           "TotalCount": 1}, 
         "LastStatus": "Complete", 
         "LastStatusMessage": "Deletion is successful", 
         "LastStatusUpdateTime": 1521745253, 
         "TypeName": "Custom:custom_type_name"}
      ]
    }
  2. Exécutez la commande suivante pour afficher la liste de toutes les suppressions exécutées au cours des 30 derniers jours.

    aws ssm describe-inventory-deletions --max-results a number
    {"InventoryDeletions": 
      [
        {"DeletionId": "system_generated_deletion_ID", 
         "DeletionStartTime": 1521682552, 
         "DeletionSummary": 
          {"RemainingCount": 0, 
           "SummaryItems": 
            [
              {"Count": 1, 
               "RemainingCount": 0, 
               "Version": "1.0"}
            ], 
           "TotalCount": 1}, 
         "LastStatus": "Complete", 
         "LastStatusMessage": "Deletion is successful", 
         "LastStatusUpdateTime": 1521682852, 
         "TypeName": "Custom:custom_type_name"}, 
        {"DeletionId": "system_generated_deletion_ID", 
         "DeletionStartTime": 1521744844, 
         "DeletionSummary": 
          {"RemainingCount": 0, 
           "SummaryItems": 
            [
              {"Count": 1, 
               "RemainingCount": 0, 
               "Version": "1.0"}
            ], 
           "TotalCount": 1}, 
         "LastStatus": "Complete", 
         "LastStatusMessage": "Deletion is successful", 
         "LastStatusUpdateTime": 1521745253, 
         "TypeName": "Custom:custom_type_name"}, 
        {"DeletionId": "system_generated_deletion_ID", 
         "DeletionStartTime": 1521680145, 
         "DeletionSummary": 
          {"RemainingCount": 0, 
           "SummaryItems": 
            [
              {"Count": 1, 
               "RemainingCount": 0, 
               "Version": "1.0"}
            ], 
           "TotalCount": 1}, 
         "LastStatus": "Complete", 
         "LastStatusMessage": "Deletion is successful", 
         "LastStatusUpdateTime": 1521680471, 
         "TypeName": "Custom:custom_type_name"}
      ], 
     "NextToken": "next-token"

Comprendre la synthèse de la suppression d'inventaire

Pour vous aider à comprendre le contenu de la synthèse de la suppression d'inventaire, prenez l'exemple suivant. Un utilisateur a affecté l'inventaire Custom:RackSpace à trois nœuds. Les éléments d'inventaire 1 et 2 utilisent le type personnalisé version 1.0 (« SchemaVersion » : « 1.0 »). L'élément d'inventaire 3 utilise le type personnalisé version 2.0 (« SchemaVersion » : « 2.0 »).

Inventaire personnalisé RackSpace 1

{ "CaptureTime":"2018-02-19T10:48:55Z", "TypeName":"CustomType:RackSpace", "InstanceId":"i-1234567890", "SchemaVersion":"1.0" "Content":[ { content of custom type omitted } ] }

Inventaire personnalisé RackSpace 2

{ "CaptureTime":"2018-02-19T10:48:55Z", "TypeName":"CustomType:RackSpace", "InstanceId":"i-1234567891", "SchemaVersion":"1.0" "Content":[ { content of custom type omitted } ] }

Inventaire personnalisé RackSpace 3

{ "CaptureTime":"2018-02-19T10:48:55Z", "TypeName":"CustomType:RackSpace", "InstanceId":"i-1234567892", "SchemaVersion":"2.0" "Content":[ { content of custom type omitted } ] }

L'utilisateur exécute la commande suivante pour afficher un aperçu des données qui seront supprimées.

aws ssm delete-inventory --type-name "Custom:RackSpace" --dry-run

Le système retourne des informations telles que les suivantes.

{
   "DeletionId":"1111-2222-333-444-66666",
   "DeletionSummary":{
      "RemainingCount":3,           
      "TotalCount":3,             
                TotalCount and RemainingCount are the number of items that would be deleted if this was not a dry run. These numbers are the same because the system didn't delete anything.
      "SummaryItems":[
         {
            "Count":2,             The system found two items that use SchemaVersion 1.0. Neither item was deleted.           
            "RemainingCount":2,
            "Version":"1.0"
         },
         {
            "Count":1,             The system found one item that uses SchemaVersion 1.0. This item was not deleted.
            "RemainingCount":1,
            "Version":"2.0"
         }
      ],

   },
   "TypeName":"Custom:RackSpace"
}

L'utilisateur exécute la commande suivante pour supprimer l'inventaire Custom:RackSpace.

Note

La sortie de cette commande n'affiche pas la progression de la suppression. C'est pourquoi TotalCount et RemainingCount restent inchangés, car le système n'a encore rien supprimé. Vous pouvez utiliser la commande describe-inventory-deletions pour afficher la progression de la suppression.

aws ssm delete-inventory --type-name "Custom:RackSpace"

Le système retourne des informations telles que les suivantes.

{
   "DeletionId":"1111-2222-333-444-7777777",
   "DeletionSummary":{
      "RemainingCount":3,           There are three items to delete
      "SummaryItems":[
         {
            "Count":2,              The system found two items that use SchemaVersion 1.0.
            "RemainingCount":2,     
            "Version":"1.0"
         },
         {
            "Count":1,              The system found one item that uses SchemaVersion 2.0.
            "RemainingCount":1,     
            "Version":"2.0"
         }
      ],
      "TotalCount":3                
   },
   "TypeName":"RackSpace"
}

Affichage des actions de suppression d'inventaire dans EventBridge

Vous pouvez configurer Amazon EventBridge pour créer un événement chaque fois qu'un utilisateur supprime l'inventaire personnalisé. EventBridge propose trois types d'événements pour les opérations de suppression d'inventaires personnalisés :

  • Delete action for an instance (Action de suppression pour une instance) : événement créé si l'inventaire personnalisé pour un nœud géré spécifique a été correctement supprimé ou non.

  • Delete action summary (Récapitulatif d'action de suppression) : récapitulatif de l'action de suppression.

  • Warning for turned off custom inventory type (Avertissement pour le type d'inventaire personnalisé désactivé) : événement d'avertissement créé si un utilisateur a appelé l'opération d'API PutInventory pour une version de type d'inventaire personnalisé qui a été précédemment désactivée.

Vous trouverez ci-dessous des exemples de chaque événement.

Action de suppression pour une instance

{
   "version":"0",
   "id":"998c9cde-56c0-b38b-707f-0411b3ff9d11",
   "detail-type":"Inventory Resource State Change",
   "source":"aws.ssm",
   "account":"478678815555",
   "time":"2018-05-24T22:24:34Z",
   "region":"us-east-1",
   "resources":[
      "arn:aws:ssm:us-east-1:478678815555:managed-instance/i-0a5feb270fc3f0b97"
   ],
   "detail":{
      "action-status":"succeeded",
      "action":"delete",
      "resource-type":"managed-instance",
      "resource-id":"i-0a5feb270fc3f0b97",
      "action-reason":"",
      "type-name":"Custom:MyInfo"
   }
}

Récapitulatif d'action de suppression

{
   "version":"0",
   "id":"83898300-f576-5181-7a67-fb3e45e4fad4",
   "detail-type":"Inventory Resource State Change",
   "source":"aws.ssm",
   "account":"478678815555",
   "time":"2018-05-24T22:28:25Z",
   "region":"us-east-1",
   "resources":[

   ],
   "detail":{
      "action-status":"succeeded",
      "action":"delete-summary",
      "resource-type":"managed-instance",
      "resource-id":"",
      "action-reason":"The delete for type name Custom:MyInfo was completed. The deletion summary is: {\"totalCount\":2,\"remainingCount\":0,\"summaryItems\":[{\"version\":\"1.0\",\"count\":2,\"remainingCount\":0}]}",
      "type-name":"Custom:MyInfo"
   }
}

Avertissement pour le type d'inventaire personnalisé désactivé

{
   "version":"0",
   "id":"49c1855c-9c57-b5d7-8518-b64aeeef5e4a",
   "detail-type":"Inventory Resource State Change",
   "source":"aws.ssm",
   "account":"478678815555",
   "time":"2018-05-24T22:46:58Z",
   "region":"us-east-1",
   "resources":[
      "arn:aws:ssm:us-east-1:478678815555:managed-instance/i-0ee2d86a2cfc371f6"
   ],
   "detail":{
      "action-status":"failed",
      "action":"put",
      "resource-type":"managed-instance",
      "resource-id":"i-0ee2d86a2cfc371f6",
      "action-reason":"The inventory item with type name Custom:MyInfo was sent with a disabled schema version 1.0. You must send a version greater than 1.0",
      "type-name":"Custom:MyInfo"
   }
}

Utilisez la procédure suivante pour créer une règle EventBridge pour les opérations de suppression d'inventaire personnalisé. Cette procédure vous montre comment créer une règle qui envoie des notifications à une rubrique Amazon SNS pour les opérations de suppression d'inventaire personnalisé. Avant de commencer, vérifiez que vous disposez d'une rubrique Amazon SNS, ou créez-en une nouvelle. Pour en savoir plus, consultez Mise en route dans le Guide du développeur Amazon Simple Notification Service.

Pour configurer EventBridge pour les opérations de suppression d'inventaire
  1. Ouvrez la console Amazon EventBridge à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Rules.

  3. Choisissez Create rule.

  4. Saisissez un nom et une description pour la règle.

    Une règle ne peut pas avoir le même nom qu'une autre règle de la même région et sur le même bus d'événement.

  5. Pour Event bus (Bus d'événement), sélectionnez le bus d'événement que vous souhaitez associer à cette règle. Si vous souhaitez que cette règle s'applique aux événements correspondants provenant de votre propre Compte AWS, sélectionnez défaut. Lorsqu'un Service AWS de votre compte émet un événement, il accède toujours au bus d'événement par défaut de votre compte.

  6. Pour Rule type (Type de règle), choisissez Rule with an event pattern (Règle avec un modèle d'événement).

  7. Choisissez Next (Suivant).

  8. Pour Event source (Origine de l'événement), choisissez events or EventBridge partner events (Événements AWS ou événements partenaires EventBridge).

  9. Dans la section Event pattern (Modèle d'événement), choisissez Event pattern form (Modèle d'événement).

  10. Pour Event source (Origine de l'événement), choisissez AWSservices (Services ).

  11. Pour le AWS service choisissez Systems Manager.

  12. Pour Type d'événement, sélectionnez Inventory.

  13. Pour Specific detail type(s) (Type(s) spécifiques), choisissez Inventory Resource State Change (Changements d'état de la ressource Inventaire).

  14. Choisissez Next (Suivant).

  15. Pour Types de cibles, choisissez service AWS.

  16. Pour Target (Cible), sélectionnez SNS topic (Rubrique SNS), puis sélectionnez votre rubrique depuis la liste Topic (Rubrique).

  17. Dans la section Additional settings (Réglages supplémentaires), pour Configure target input (Configurer l'entrée cible), vérifiez que Matched event (Événement jumelé) est sélectionné.

  18. Choisissez Next (Suivant).

  19. (Facultatif) Saisissez une ou plusieurs balises pour la règle. Pour plus d'informations, consultez Balisage de vos ressources Amazon EventBridge dans le Guide de l'utilisateur Amazon EventBridge.

  20. Choisissez Next (Suivant).

  21. Consultez les détails de la règle et choisissez Create rule (Créer une règle).