

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Uso del inventario personalizado
<a name="inventory-custom"></a>

Puede asignar los metadatos que desee a los nodos mediante la creación de un *inventario personalizado* de AWS Systems Manager Inventory. Por ejemplo, supongamos que administra un gran número de servidores en bastidores en su centro de datos y que estos servidores se han configurado como nodos administrados de Systems Manager. En la actualidad, guarda información sobre la ubicación de los bastidores de servidores en una hoja de cálculo. Con el inventario personalizado, puede especificar la ubicación de bastidor de cada nodo como metadatos en el nodo. Cuando recopila el inventario mediante Systems Manager, se recopilan los metadatos con otros metadatos de inventario. A continuación, puede transferir todos los metadatos de inventario a un bucket de Amazon S3 central mediante la [sincronización de datos de recursos](inventory-resource-data-sync.html) y consultar los datos.

**nota**  
Systems Manager admite un máximo de 20 tipos de inventario personalizados por Cuenta de AWS.

Para asignar el inventario personalizado a un nodo, puede utilizar la operación [PutInventory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutInventory.html) de la API de Systems Manager tal y como se describe en [Asignación de metadatos de inventarios personalizados a un nodo administrado](inventory-custom-metadata.md). O bien, puede crear un archivo JSON de inventario personalizado y cargarlo en el nodo. En esta sección se describe cómo crear el archivo JSON.

En el siguiente ejemplo, el archivo JSON con inventario personalizado especifica la información de bastidor en relación con un servidor local. Este ejemplo especifica un tipo de datos de inventario personalizado (`"TypeName": "Custom:RackInformation"`), con varias entradas en `Content` que describen los datos.

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

También puede especificar entradas diferentes en la sección `Content`, tal y como se muestra en el siguiente ejemplo.

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

El esquema JSON del inventario personalizado requiere las secciones `SchemaVersion`, `TypeName` y `Content`, pero puede definir la información en dichas secciones.

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

El valor de encabezado `TypeName` se limita a 100 caracteres. Además, el valor `TypeName` debe empezar por la palabra en mayúscula `Custom`. Por ejemplo, `Custom:PuppetModuleInfo`. Por lo tanto, los siguientes ejemplos darían lugar a una excepción: `CUSTOM:PuppetModuleInfo`, `custom:PuppetModuleInfo`. 

La sección `Content` incluye atributos y *datos*. Esos elementos no distinguen entre mayúsculas y minúsculas. No obstante, si define un atributo (por ejemplo: “`Vendor`“: “DELL”), deberá hacer referencia a este atributo de forma coherente en los archivos de inventario personalizado. Si especifica “`Vendor`”: “DELL” (utilizando una “P” mayúscula en `vendor`) en un archivo y, a continuación, especifica “`vendor`”: “DELL” (con una “p” en minúscula en `vendor`) en otro archivo, el sistema devolverá un error.

**nota**  
Debe guardar el archivo con una extensión `.json` y el inventario que defina debe incluir únicamente valores de cadena.

Después de crear el archivo, debe guardarlo en el nodo. La tabla siguiente muestra la ubicación en la que deben guardarse los archivos JSON del inventario personalizado en el nodo.


****  

| Sistema operativo | Ruta | 
| --- | --- | 
|  Linux  |  /var/lib/amazon/ssm/*node-id*/inventory/custom  | 
|  macOS  |  `/opt/aws/ssm/data/node-id/inventory/custom`  | 
|  Windows Server  |  %SystemDrive%\$1ProgramData\$1Amazon\$1SSM\$1InstanceData\$1*node-id*\$1inventory\$1custom  | 

Si desea ver un ejemplo de cómo utilizar el inventario personalizado, consulte [Get Disk Utilization of Your Fleet Using EC2 Systems Manager Custom Inventory Types](https://aws.amazon.com/blogs/mt/get-disk-utilization-of-your-fleet-using-ec2-systems-manager-custom-inventory-types/).

## Eliminación de un inventario personalizado
<a name="delete-custom-inventory"></a>

Puede utilizar la operación [DeleteInventory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeleteInventory.html) de la API para eliminar un tipo de inventario personalizado y los datos asociados a él. Para eliminar todos los datos de un tipo de inventario, tiene que llamar al comando delete-inventory mediante la AWS Command Line Interface (AWS CLI). Para eliminar un tipo de inventario personalizado, tiene que llamar al comando delete-inventory con `SchemaDeleteOption`.

**nota**  
Un tipo de inventario también se denomina un esquema de inventario.

El parámetro `SchemaDeleteOption` incluye las siguientes opciones:
+ **DeleteSchema**: esta opción elimina el tipo personalizado especificado y todos los datos asociados con él. Puede volver a crear el esquema más tarde, si lo desea.
+ **DisableSchema**: si elige esta opción, el sistema desactivará la versión actual, eliminará todos sus datos y omitirá todos los nuevos datos si la versión es anterior o igual a la versión desactivada. Puede volver a habilitar este tipo de inventario si llama a la acción [PutInventory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutInventory.html) para una versión posterior a la versión desactivada.

**Para eliminar o desactivar un inventario personalizado mediante la AWS CLI**

1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

   Para obtener más información, consulte [Instalación o actualización de la última versión de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Ejecute el siguiente comando para utilizar la opción `dry-run` con el fin de ver qué datos se eliminarán del sistema. Este comando no elimina ningún dato.

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

   El sistema devuelve información similar a la siguiente.

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

   Para obtener información acerca del resumen de eliminaciones del inventario, consulte [Explicación del resumen de eliminaciones del inventario](#delete-custom-inventory-summary).

1. Ejecute el siguiente comando para eliminar todos los datos de un tipo de inventario personalizado.

   ```
   aws ssm delete-inventory --type-name "Custom:custom_type_name"
   ```
**nota**  
El resultado de este comando no muestra el progreso de la eliminación. Por este motivo, TotalCount y Remaining Count siguen siendo iguales, ya que el sistema no ha eliminado nada todavía. Puede utilizar el comando describe-inventory-deletions para mostrar el progreso de la eliminación, tal y como se describe más adelante en este tema.

   El sistema devuelve información similar a la siguiente.

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

   El sistema elimina todos los datos del tipo de inventario personalizado especificado del servicio Systems Manager Inventory. 

1. Ejecute el siguiente comando. El comando realiza las siguientes acciones para la versión actual del tipo de inventario: desactiva la versión actual, elimina todos los datos correspondientes a ella y omite todos los datos nuevos si la versión es inferior o igual a la versión desactivada. 

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

   El sistema devuelve información similar a la siguiente.

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

   Puede ver un tipo de inventario desactivado mediante el siguiente comando.

   ```
   aws ssm get-inventory-schema --type-name Custom:custom_type_name
   ```

1. Ejecute el siguiente comando para eliminar un tipo de inventario.

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

   El sistema elimina el esquema y todos los datos de inventario del tipo personalizado especificado.

   El sistema devuelve información similar a la siguiente.

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

### Visualización del estado de eliminación
<a name="delete-custom-inventory-status"></a>

Puede verificar el estado de una operación de eliminación mediante el comando `describe-inventory-deletions` de la AWS CLI. Puede especificar un ID de eliminación para ver el estado de una operación de eliminación específica. Asimismo, puede omitir el ID de eliminación para ver una lista de todas las eliminaciones ejecutadas en los últimos 30 días.

****

1. Ejecute el siguiente comando para ver el estado de una operación de eliminación. El sistema devolvió el ID de eliminación en el resumen de eliminaciones del inventario.

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

   El sistema devuelve el estado más reciente. Puede que la operación de eliminación no haya terminado todavía. El sistema devuelve información similar a la siguiente.

   ```
   {"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 la operación de eliminación se realiza correctamente, `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"}
     ]
   }
   ```

1. Ejecute el siguiente comando para ver una lista de todas las eliminaciones realizadas en los últimos 30 días.

   ```
   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"
   ```

### Explicación del resumen de eliminaciones del inventario
<a name="delete-custom-inventory-summary"></a>

Para ayudarle a comprender el contenido del resumen de eliminaciones del inventario, considere el siguiente ejemplo. Un usuario asignó el inventario Custom:RackSpace a tres nodos. Los artículos de inventario 1 y 2 utilizan la versión 1.0 del tipo personalizado ("SchemaVersion":"1.0"). El artículo de inventario 3 utiliza la versión 2.0 del tipo personalizado ("SchemaVersion":"2.0").

Inventario personalizado RackSpace 1

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

Inventario personalizado RackSpace 2

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

Inventario personalizado RackSpace 3

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

El usuario ejecuta el siguiente comando para obtener una vista previa de los datos que se eliminarán.

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

El sistema devuelve información similar a la siguiente.

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

El usuario ejecuta el siguiente comando para eliminar el inventario Custom:RackSpace. 

**nota**  
El resultado de este comando no muestra el progreso de la eliminación. Por este motivo, `TotalCount` y `RemainingCount` siguen siendo iguales, ya que el sistema no ha eliminado nada todavía. Puede utilizar el comando `describe-inventory-deletions` para mostrar el progreso de la eliminación.

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

El sistema devuelve información similar a la siguiente.

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

### Visualización de acciones de eliminación de inventario en EventBridge
<a name="delete-custom-inventory-cwe"></a>

Puede configurar Amazon EventBridge para que cree un evento cada vez que un usuario elimine un inventario personalizado. EventBridge ofrece tres tipos de eventos para las operaciones de eliminación de inventarios personalizados:
+ **Acción de eliminación de una instancia**: indica si el inventario personalizado de un nodo administrado específico se ha eliminado correctamente o no. 
+ **Resumen de la acción de eliminación**: muestra un resumen de la acción de eliminación.
+ **Advertencia de tipo de inventario personalizado desactivado**: se genera un evento de advertencia si un usuario llama a la operación [PutInventory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutInventory.html) de la API para una versión de tipo de inventario personalizado que se desactivó anteriormente.

A continuación, se muestran ejemplos de cada evento.

**Acción de eliminación de una instancia**

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

**Resumen de la acción de eliminación**

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

**Advertencia de tipo de inventario personalizado desactivado**

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

Utilice el siguiente procedimiento para crear una regla de EventBridge para las operaciones de eliminación de inventarios personalizados. En este procedimiento se muestra cómo crear una regla que envíe notificaciones de las operaciones de eliminación de inventarios personalizados a un tema de Amazon SNS. Antes de comenzar, compruebe que tiene un tema de Amazon SNS o cree uno nuevo. Para obtener más información, consulte [Introducción](https://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html) en la *Guía para desarrolladores de Amazon Simple Notification Service*.

**Para configurar EventBridge para la eliminación de operaciones de inventario**

1. Abra la consola de Amazon EventBridge en [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. En el panel de navegación, seleccione **Reglas**.

1. Elija **Creación de regla**.

1. Escriba un nombre y una descripción para la regla.

   Una regla no puede tener el mismo nombre que otra regla de la misma región y del mismo bus de eventos.

1. En **Bus de eventos**, seleccione el bus de eventos que desea asociar a esta regla. Si desea que esta regla responda a eventos coincidentes procedentes de su propia Cuenta de AWS, seleccione **default** (predeterminado). Cuando un Servicio de AWS en su cuenta emite un evento, siempre va al bus de eventos predeterminado de su cuenta.

1. En **Tipo de regla**, elija **Regla con un patrón de evento**.

1. Elija **Siguiente**.

1. En **Origen del evento**, elija **Eventos de AWS o eventos de socios de EventBridge**.

1. En la sección **Event pattern** (Patrón de eventos), elija **Event pattern form** (Formulario de patrón de eventos).

1. Para **Event source** (origen de eventos), elija **AWSservices** (servicios).

1. En **AWS service** (Servicio de ), elija **Systems Manager**.

1. Para **Event type** (Tipo de evento), elija **Inventory** (Inventario).

1. En **Specific detail type(s)** (Tipos de detalles específicos), elija **Inventory Resource State Change** (Cambio de estado de recursos de inventario).

1. Elija **Siguiente**.

1. En **Target types** (Tipos de destino), elija **AWS service**.

1. En **Select a target** (Seleccione un destino), elija **SNS topic** (Tema de SNS) y, a continuación, elija el tema en **Topic** (Tema).

1. En la sección **Additional settings** (Ajustes adicionales), en **Configure target input** (Configurar entrada de destino), verifique que **Matched event** (Evento coincidente) está seleccionado.

1. Elija **Siguiente**.

1. (Opcional) Introduzca una o varias etiquetas para la regla. Para obtener más información, consulte [Etiquetado de los recursos de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-tagging.html) en la *Guía del usuario de Amazon EventBridge*.

1. Elija **Siguiente**.

1. Revise los detalles de la regla y seleccione **Creación de regla**.