Utilizzo di inventari personalizzati - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di inventari personalizzati

Puoi assegnare tutti i metadati che desideri ai tuoi nodi creando AWS Systems Manager un inventario personalizzato di Inventory. Ad esempio, supponiamo che tu gestisca un numero elevato di server nel tuo data center e che i server siano stati configurati come nodi gestiti da Systems Manager. Attualmente, le informazioni relative alla posizione del rack dei server vengono archiviate in un foglio di calcolo. Con l'inventario personalizzato, puoi specificare la posizione del rack di ciascun nodo come metadati del nodo. Quando raccogli l'inventario con Systems Manager, i metadati vengono raccolti con altri metadati di inventario. Puoi poi trasferire tutti i metadati di inventario in un bucket Amazon S3 centralizzato utilizzando Resource Data Sync ed eseguendo una query sui dati.

Nota

Systems Manager supporta un massimo di 20 tipi di inventario personalizzati per Account AWS.

Per assegnare un inventario personalizzato a un nodo, è possibile utilizzare l'PutInventoryAPIoperazione Systems Manager, come descritto inAssegnazione di metadati di inventario personalizzati a un nodo gestito. In alternativa, è possibile creare un JSON file di inventario personalizzato e caricarlo nel nodo. Questa sezione descrive come creare il JSON file.

Il seguente JSON file di esempio con inventario personalizzato specifica le informazioni sul rack relative a un server locale. Questo esempio specifica un tipo di dati di inventario personalizzato ("TypeName": "Custom:RackInformation"), con più voci in Content che descrivono i dati.

{ "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" } }

Puoi anche specificare voci distinte nella sezione Content, come mostrato nell'esempio seguente.

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

Lo JSON schema per l'inventario personalizzato richiede SchemaVersionTypeName, e Content sezioni, ma è possibile definire le informazioni in tali sezioni.

{ "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" } }

Il valore di TypeName è limitato a 100 caratteri. Inoltre, il valore di TypeName deve iniziare con la parola Custom in maiuscolo. Ad esempio Custom:PuppetModuleInfo. Pertanto, i seguenti esempi costituirebbero un'eccezione: CUSTOM:PuppetModuleInfo, custom:PuppetModuleInfo.

La Content sezione include attributi e data. Questi articoli non fanno distinzione tra maiuscole e minuscole. Tuttavia, se definisci un attributo (ad esempio: "Vendor«:" DELL «), devi sempre fare riferimento a questo attributo nei tuoi modelli di inventario personalizzati. Se si specifica "Vendor«:" DELL "(utilizzando la «V» maiuscola invendor) in un file e quindi si specifica "vendor«:" DELL "(utilizzando una «v» minuscolavendor) in un altro file, il sistema restituisce un errore.

Nota

È necessario salvare il file con estensione .json e l'inventario definito deve essere costituito solo da valori stringa.

Dopo aver creato il file, devi salvarlo nel nodo. La tabella seguente mostra la posizione in cui JSON i file di inventario personalizzati devono essere archiviati sul nodo.

Sistema operativo Path

Linux

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

macOS

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

Windows

SystemDrive%\ProgramData\ Amazon\SSM\InstanceData\node-id\ inventario\ personalizzato

Per un esempio di come utilizzare l'inventario personalizzato, vedi Get Disk Utilization of Your Fleet Using EC2 Systems Manager Custom Inventory Types.

Eliminazione di un inventario personalizzato

È possibile utilizzare l'DeleteInventoryAPIoperazione per eliminare un tipo di inventario personalizzato e i dati associati a quel tipo. Puoi richiamare il comando delete-inventory tramite AWS Command Line Interface (AWS CLI) per eliminare tutti i dati di un tipo di inventario. Puoi richiamare il comando delete-inventory tramite SchemaDeleteOption per eliminare un tipo di inventario personalizzato.

Nota

Il tipo di inventario viene chiamato anche schema di inventario.

Il parametro SchemaDeleteOption include le seguenti opzioni:

  • DeleteSchema: Questa opzione elimina il tipo personalizzato specificato e tutti i dati ad esso associati. Puoi ricreare lo schema in un secondo momento, se lo desideri.

  • DisableSchema: Se si sceglie questa opzione, il sistema disattiva la versione corrente, elimina tutti i relativi dati e ignora tutti i nuovi dati se la versione è inferiore o uguale alla versione disattivata. Puoi consentire nuovamente questo tipo di inventario chiamando l'PutInventoryazione per una versione successiva alla versione disattivata.

Per eliminare o disattivare l'inventario personalizzato utilizzando il AWS CLI
  1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  2. Eseguire questo comando per utilizzare l'opzione dry-run per vedere quali dati verranno eliminati dal sistema. Questo comando non elimina alcun dato.

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

    Il sistema restituisce informazioni simili alle seguenti.

    {
       "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"
    }

    Per informazioni su come comprendere il riepilogo di eliminazione dell'inventario, consultare Comprendere il riepilogo di eliminazione dell'inventario.

  3. Eseguire questo comando per eliminare tutti i dati di un tipo di inventario personalizzato.

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

    L'output di questo comando non mostra l'avanzamento dell'eliminazione. Per questo motivo, TotalCount e Remaining Count sono sempre gli stessi perché il sistema non ha ancora eliminato nulla. È possibile utilizzare il describe-inventory-deletions comando per mostrare l'avanzamento dell'eliminazione, come descritto più avanti in questo argomento.

    Il sistema restituisce informazioni simili alle seguenti.

    {
       "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"
    }

    Il sistema elimina dal servizio Inventory di Systems Manager tutti i dati del tipo di inventario personalizzato specificato.

  4. Esegui il comando seguente. Il comando esegue le operazioni seguenti per la versione corrente del tipo di inventario: disattiva la versione corrente, elimina tutti i dati e ignora tutti i nuovi dati se la versione è inferiore o uguale a quella disattivata.

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

    Il sistema restituisce informazioni simili alle seguenti.

    {
       "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"
    }

    È possibile visualizzare un tipo di inventario disattivato utilizzando il comando seguente.

    aws ssm get-inventory-schema --type-name Custom:custom_type_name
  5. Eseguire questo comando per eliminare un tipo di inventario.

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

    Il sistema elimina lo schema e tutti i dati del tipo di inventario personalizzato specificato.

    Il sistema restituisce informazioni simili alle seguenti.

    {
       "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"
    }

Visualizzazione dello stato dell'eliminazione

È possibile controllare lo stato di un'operazione di eliminazione utilizzando il describe-inventory-deletions AWS CLI comando. Puoi specificare un ID di eliminazione per visualizzare lo stato di una determinata operazione di eliminazione. In alternativa, puoi omettere l'ID di eliminazione per visualizzare un elenco di tutte le eliminazioni eseguite negli ultimi 30 giorni.

  1. Eseguire questo comando per visualizzare lo stato di un'operazione di eliminazione. Il sistema restituisce l'ID di eliminazione nel riepilogo delete-inventory.

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

    Il sistema restituisce lo stato più recente. L'operazione di eliminazione potrebbe non essere ancora completata. Il sistema restituisce informazioni simili alle seguenti.

    {"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"}
      ]
    }

    Se l'operazione di eliminazione viene completata correttamente, LastStatusMessage indica "Deletion is successful".

    {"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. Eseguire questo comando per visualizzare un elenco di tutte le eliminazioni effettuate negli ultimi 30 giorni.

    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"

Comprendere il riepilogo di eliminazione dell'inventario

Per poter comprendere i contenuti del riepilogo di eliminazione dell'inventario, prendi in considerazione l'esempio seguente. Un utente assegnato a Custom: RackSpace inventario su tre nodi. Gli articoli 1 e 2 dell'inventario utilizzano la versione 1.0 di tipo personalizzato (» SchemaVersion «:"1.0"). L'articolo 3 dell'inventario utilizza la versione 2.0 di tipo personalizzato (» SchemaVersion «:"2.0").

RackSpace inventario personalizzato 1

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

RackSpace inventario personalizzato 2

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

RackSpace inventario personalizzato 3

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

L'utente esegue il comando seguente per visualizzare in anteprima i dati che saranno eliminati.

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

Il sistema restituisce informazioni simili alle seguenti.

{
   "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'utente esegue il seguente comando per eliminare Custom: RackSpace inventory.

Nota

L'output di questo comando non mostra l'avanzamento dell'eliminazione. Per questo motivo, TotalCount e RemainingCount restano invariati, dato che il sistema non ha ancora effettuato eliminazioni. Puoi utilizzare il comando describe-inventory-deletions per visualizzare l'avanzamento dell'eliminazione.

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

Il sistema restituisce informazioni simili alle seguenti.

{
   "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"
}

Visualizzazione delle azioni di eliminazione dell'inventario in EventBridge

Puoi configurare Amazon EventBridge per creare un evento ogni volta che un utente elimina l'inventario personalizzato. EventBridge offre tre tipi di eventi per le operazioni personalizzate di eliminazione dell'inventario:

  • Operazione di eliminazione per un'istanza: indica se l'inventario personalizzato per un determinato nodo gestito è stato eliminato o meno.

  • Riepilogo dell'operazione di eliminazione: un riepilogo dell'operazione di eliminazione.

  • Avviso per la disattivazione del tipo di inventario personalizzato: un evento di avviso se un utente ha chiamato l'PutInventoryAPIoperazione per una versione del tipo di inventario personalizzato che era stata precedentemente disattivata.

Di seguito sono riportati gli esempi di ciascun evento:

Operazione di eliminazione per un'istanza

{
   "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"
   }
}

Riepilogo dell'operazione di eliminazione

{
   "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"
   }
}

Avviso per il tipo di inventario personalizzato disattivato

{
   "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"
   }
}

Utilizzare la procedura seguente per creare una EventBridge regola per le operazioni personalizzate di eliminazione dell'inventario. Questa procedura mostra come creare una regola che invii notifiche per operazioni personalizzate di eliminazione dell'inventario a un SNS argomento Amazon. Prima di iniziare, verifica di avere un SNS argomento Amazon o creane uno nuovo. Per ulteriori informazioni, consulta Nozioni di base nella Guida per gli sviluppatori di Amazon Simple Notification Service.

EventBridge Per configurare le operazioni di eliminazione dell'inventario
  1. Apri la EventBridge console Amazon all'indirizzo https://console.aws.amazon.com/events/.

  2. Nel pannello di navigazione, scegli Regole.

  3. Scegli Create rule (Crea regola).

  4. Inserire un nome e una descrizione per la regola.

    Una regola non può avere lo stesso nome di un'altra regola nella stessa regione e sullo stesso router di eventi.

  5. Per Select event bus (Seleziona bus di eventi), scegli il bus di eventi che desideri associare a questa regola. Se desideri che questa regola risponda agli eventi corrispondenti generati dai tuoi Account AWS, seleziona Predefinito. Quando un Servizio AWS utente del tuo account emette un evento, questo passa sempre al bus eventi predefinito del tuo account.

  6. Per Rule type (Tipo di regola), scegli Rule with an event pattern (Regola con un modello di eventi).

  7. Scegli Next (Successivo).

  8. Per Event source, scegli AWS eventi o eventi EventBridge partner.

  9. Nella sezione Modello di eventi, scegli Modulo di modello di eventi.

  10. Per Origine evento, scegli Servizi AWS .

  11. Per AWS , scegli Systems Manager.

  12. Per Event type (Tipo di evento), scegliere Inventory (Inventario).

  13. Per Specific detail type(s) (Tipi di dettagli specifici), scegli Inventory Resource State Change (Modifica dello stato della risorsa inventario).

  14. Scegli Next (Successivo).

  15. Per Target types (Tipi di destinazione), scegli AWS service (Servizio ).

  16. Per Seleziona un obiettivo, scegli l'SNSargomento, quindi per Argomento, scegli il tuo argomento.

  17. Nella sezione Additional settings (Impostazioni aggiuntive), per Configure target input (Configura l'input di destinazione), verifica che Matched event (Evento abbinato) sia selezionato.

  18. Scegli Next (Successivo).

  19. (Facoltativo) Inserire uno o più tag per la regola. Per ulteriori informazioni, consulta Tagging Your Amazon EventBridge Resources nella Amazon EventBridge User Guide.

  20. Scegli Next (Successivo).

  21. Rivedi i dettagli della regola e scegli Create rule (Crea regola).