

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Administración y reenvío de alertas en Amazon Managed Service para Prometheus con el administrador de alertas
<a name="AMP-alert-manager"></a>

Cuando se activan las [reglas de alerta](AMP-ruler-rulesfile.md) que ejecuta Amazon Managed Service para Prometheus, el administrador de alertas administra las alertas que se envían. Desduplica, agrupa y enruta las alertas a los receptores posteriores. Amazon Managed Service para Prometheus solo admite Amazon Simple Notification Service como receptor y puede enrutar mensajes a temas de Amazon SNS de la misma cuenta. También puede utilizar el administrador de alertas para silenciar e inhibir las alertas.

El administrador de alertas proporciona una funcionalidad similar al administrador de alertas de Prometheus.

Puede utilizar el archivo de configuración del administrador de alertas para lo siguiente:
+ **Agrupación**: la agrupación recopila alertas similares en una sola notificación. Esto resulta especialmente útil durante las interrupciones más largas, cuando muchos sistemas fallan a la vez y es posible que se activen cientos de alertas de forma simultánea. Por ejemplo, supongamos que un fallo en la red provoca que varios nodos fallen al mismo tiempo. Si estos tipos de alertas están agrupados, el administrador de alertas le enviará una única notificación. 

  La agrupación de alertas y la planificación de las notificaciones agrupadas se configuran mediante un árbol de enrutamiento en el archivo de configuración del administrador de alertas. Para obtener más información, consulte [<route>](https://prometheus.io/docs/alerting/latest/configuration/#route).
+ **Inhibición**: la inhibición suprime las notificaciones de determinadas alertas si ya se han activado otras. Por ejemplo, si se activa una alerta sobre un clúster inalcanzable, puede configurar el administrador de alertas para silenciar todas las demás alertas relacionadas con dicho clúster. Esto evita que se envíen cientos o miles de alertas que no estén relacionadas con el problema real. Para obtener más información sobre cómo escribir reglas de inhibición, consulte [<inhibit\$1rule>](https://prometheus.io/docs/alerting/latest/configuration/#inhibit_rule).
+ **Silencios**: silencia las alertas durante un tiempo específico; por ejemplo, durante un periodo de mantenimiento. Se comprueba si las alertas entrantes coinciden con todos los parámetros de igualdad o con expresiones regulares de un silencio activo. En caso afirmativo, no se envía ninguna notificación para dicha alerta.

  Para crear un silencio, se utiliza la API `PutAlertManagerSilences`. Para obtener más información, consulte [PutAlertManagerSilences](AMP-APIReference-PutAlertManagerSilences.md).

**Plantillas de Prometheus**

Prometheus independiente admite la creación de plantillas mediante archivos de plantilla independientes. Las plantillas pueden usar condicionales y dar formato a los datos, entre otras cosas.

En Amazon Managed Service para Prometheus, se coloca la plantilla en el mismo archivo de configuración del administrador de alertas que la [configuración del administrador de alertas](AMP-alertmanager-config.md).

**Topics**
+ [Comprensión de los permisos de IAM necesarios para trabajar con el administrador de alertas](AMP-alertmanager-IAM-permissions.md)
+ [Creación de una configuración del administrador de alertas en Amazon Managed Service para Prometheus a fin de administrar y enrutar las alertas](AMP-alertmanager-config.md)
+ [Reenvío de alertas a un receptor de alertas con el administrador de alertas en Amazon Managed Service para Prometheus](AMP-alertmanager-receiver.md)
+ [Carga del archivo de configuración del administrador de alertas a Amazon Managed Service para Prometheus](AMP-alertmanager-upload.md)
+ [Integración de alertas con Amazon Managed Grafana o Grafana de código abierto](integrating-grafana.md)
+ [Solucione problemas del administrador de alertas con registros CloudWatch](Troubleshooting-alerting.md)

# Comprensión de los permisos de IAM necesarios para trabajar con el administrador de alertas
<a name="AMP-alertmanager-IAM-permissions"></a>

Debe conceder permisos a los usuarios para utilizar el administrador de alertas en Amazon Managed Service para Prometheus. Cree una política de AWS Identity and Access Management (IAM) con los siguientes permisos y asígnela a sus usuarios, grupos o roles.

# Creación de una configuración del administrador de alertas en Amazon Managed Service para Prometheus a fin de administrar y enrutar las alertas
<a name="AMP-alertmanager-config"></a>

Para utilizar el administrador de alertas y las plantillas en Amazon Managed Service para Prometheus, debe crear un archivo YAML de configuración del administrador de alertas. Un archivo del administrador de alertas de Amazon Managed Service para Prometheus tiene dos secciones principales:
+ `template_files:` contiene las plantillas utilizadas para los mensajes enviados por los destinatarios. Para obtener más información, consulte [Referencia de plantillas](https://prometheus.io/docs/prometheus/latest/configuration/template_reference/) y [Ejemplos de plantillas](https://prometheus.io/docs/prometheus/latest/configuration/template_examples/) en la documentación de Prometheus.
+ `alertmanager_config:` contiene la configuración del administrador de alertas. Utiliza la misma estructura que un archivo de configuración del administrador de alertas en Prometheus independiente. Para obtener más información, consulte [Configuración](https://prometheus.io/docs/alerting/latest/configuration/) en la documentación del administrador de alertas.
**nota**  
La configuración `repeat_interval` descrita en la documentación de Prometheus anteriormente mencionada tiene una limitación adicional en Amazon Managed Service para Prometheus. El valor máximo permitido es de cinco días. Si lo establece en más de cinco días, se considerará igualmente de cinco días y las notificaciones se enviarán de nuevo una vez transcurrido dicho periodo.

**nota**  
También puede editar el archivo de configuración directamente en la consola de Amazon Managed Service para Prometheus, pero debe seguir el formato que se especifica aquí. Para obtener más información sobre cómo cargar o editar un archivo de configuración, consulte [Carga del archivo de configuración del administrador de alertas a Amazon Managed Service para Prometheus](AMP-alertmanager-upload.md).

En Amazon Managed Service para Prometheus, el archivo de configuración del administrador de alertas debe incluir todo el contenido de la configuración del administrador de alertas dentro de una clave `alertmanager_config` en la raíz del archivo YAML.

El siguiente es un ejemplo básico de un archivo de configuración del administrador de alertas:

```
alertmanager_config: |
  route:
    receiver: 'default'
  receivers:
    - name: 'default'
      sns_configs:
      - topic_arn: arn:aws:sns:us-east-2:123456789012:My-Topic
        sigv4:
          region: us-east-2
        attributes:
          key: key1
          value: value1
```

El único receptor admitido actualmente es Amazon Simple Notification Service (Amazon SNS). Si tiene otros tipos de receptores listados en la configuración, se rechazarán.

Este es otro ejemplo de archivo de configuración del administrador de alertas que utiliza tanto el bloque `template_files` como el bloque `alertmanager_config`.

```
template_files:
  default_template: |
    {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }}
    {{ define "__alertmanager" }}AlertManager{{ end }}
    {{ define "__alertmanagerURL" }}{{ .ExternalURL }}/#/alerts?receiver={{ .Receiver | urlquery }}{{ end }}
alertmanager_config: |
  global:
  templates:
    - 'default_template'
  route:
    receiver: default
  receivers:
    - name: 'default'
      sns_configs:
      - topic_arn: arn:aws:sns:us-east-2:accountid:My-Topic
        sigv4:
          region: us-east-2
        attributes:
          key: severity
          value: SEV2
```

**Bloque de plantillas de Amazon SNS predeterminado**

La configuración predeterminada de Amazon SNS utiliza la siguiente plantilla, a menos que la anule de forma explícita.

```
{{ define "sns.default.message" }}{{ .CommonAnnotations.SortedPairs.Values | join " " }}
  {{ if gt (len .Alerts.Firing) 0 -}}
  Alerts Firing:
    {{ template "__text_alert_list" .Alerts.Firing }}
  {{- end }} 
  {{ if gt (len .Alerts.Resolved) 0 -}} 
  Alerts Resolved:
    {{ template "__text_alert_list" .Alerts.Resolved }}
  {{- end }}
{{- end }}
```

# Reenvío de alertas a un receptor de alertas con el administrador de alertas en Amazon Managed Service para Prometheus
<a name="AMP-alertmanager-receiver"></a>

Cuando una regla de alerta genera una alerta, se envía al administrador de alertas. El administrador de alertas realiza funciones como desduplicar alertas, inhibirlas durante el mantenimiento o agruparlas según sea necesario. A continuación, reenvía la alerta como un mensaje a un *receptor de alertas*. Puede configurar un receptor de alertas que pueda notificar a los operadores, tener respuestas automatizadas o responder a las alertas de otras maneras.

Puede configurar Amazon Simple Notification Service (Amazon SNS) PagerDuty y como receptores de alertas en Amazon Managed Service para Prometheus. En los temas siguientes se describe cómo crear y configurar su receptor de alertas.

**Topics**
+ [Utilice Amazon SNS como receptor de alertas](AMP-alertmanager-receiver-createtopic.md)
+ [PagerDuty Utilízalo como receptor de alertas](AMP-alertmanager-pagerduty.md)

# Utilice Amazon SNS como receptor de alertas
<a name="AMP-alertmanager-receiver-createtopic"></a>

Puede usar un tema de Amazon SNS como receptor de alertas para Amazon Managed Service para Prometheus, o puede crear uno nuevo. Le recomendamos que utilice un tema de tipo **Estándar** para poder reenviar las alertas del tema por correo electrónico, SMS o HTTP.

Para crear un tema nuevo de Amazon SNS para usarlo como receptor del administrador de alertas, siga las instrucciones incluidas en el [Paso 1: Crear un tema](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#step-create-queue). Asegúrese de elegir **Estándar** como tipo de tema.

Si desea recibir correos electrónicos cada vez que se envíe un mensaje a ese tema de Amazon SNS, siga las instrucciones incluidas en el [Paso 2: Crear una suscripción al tema](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#step-send-message).

Tanto si utiliza un tema de Amazon SNS nuevo como existente, necesitará el nombre de recurso de Amazon (ARN) del tema de Amazon SNS para realizar las siguientes tareas.

**Topics**
+ [Concesión de permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS](AMP-alertmanager-receiver-AMPpermission.md)
+ [Configuración del administrador de alertas para que envíe mensajes al tema de Amazon SNS](AMP-alertmanager-receiver-config.md)
+ [Configuración del administrador de alertas para enviar mensajes a Amazon SNS como JSON](AMP-alertmanager-receiver-JSON.md)
+ [Configuración de Amazon SNS para enviar mensajes de alertas a otros destinos](AMP-alertmanager-SNS-otherdestinations.md)
+ [Comprensión de las reglas de validación de mensajes de Amazon SNS](AMP-alertmanager-receiver-validation-truncation.md)

# Concesión de permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS
<a name="AMP-alertmanager-receiver-AMPpermission"></a>

Debe conceder permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS. La siguiente instrucción de política concederá ese permiso. Incluye una instrucción `Condition` para ayudar a prevenir un problema de seguridad conocido como el problema del *suplente confuso*. La instrucción `Condition` restringe el acceso al tema de Amazon SNS para permitir únicamente las operaciones procedentes de esta cuenta específica y del espacio de trabajo de Amazon Managed Service para Prometheus. Para obtener más información sobre el problema del suplente confuso, consulte [Prevención de la sustitución confusa entre servicios](#cross-service-confused-deputy-prevention).

**Para conceder permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS:**

1. [Abra la consola Amazon SNS en https://console.aws.amazon.com/sns/ la versión 3/home.](https://console.aws.amazon.com/sns/v3/home)

1. En el panel de navegación, elija **Temas**.

1. Elija el nombre del tema que va a utilizar con Amazon Managed Service para Prometheus.

1. Elija **Edit (Edición de)**.

1. Elija **Política de acceso** y agregue la siguiente instrucción de política a la política existente.

   ```
   {
       "Sid": "Allow_Publish_Alarms",
       "Effect": "Allow",
       "Principal": {
           "Service": "aps.amazonaws.com"
       },
       "Action": [
           "sns:Publish",
           "sns:GetTopicAttributes"
       ],
       "Condition": {
           "ArnEquals": {
               "aws:SourceArn": "workspace_ARN"
           },
           "StringEquals": {
               "AWS:SourceAccount": "account_id"
           }
       },
       "Resource": "arn:aws:sns:region:account_id:topic_name"
   }
   ```

   [Opcional] Si su tema de Amazon SNS está habilitado para el cifrado del lado del servicio (SSE), debe permitir que Amazon Managed Service for Prometheus envíe mensajes a este tema cifrado añadiendo los `kms:Decrypt` permisos `kms:GenerateDataKey*` y los permisos a la política de claves de la AWS KMS clave utilizada para cifrar el tema.

   Por ejemplo, podría agregar lo siguiente a la política:

   ```
   {
     "Statement": [{
       "Effect": "Allow",
       "Principal": {
         "Service": "aps.amazonaws.com"
       },
       "Action": [
         "kms:GenerateDataKey*",
         "kms:Decrypt"
       ],
       "Resource": "*"
     }]
   }
   ```

   Para obtener más información, consulte [Permisos de AWS KMS para el tema de SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#sns-what-permissions-for-sse).

1. Seleccione **Save changes (Guardar cambios)**.

**nota**  
 De forma predeterminada, Amazon SNS crea la política de acceso con la condición en `AWS:SourceOwner`. Para obtener más información, consulte [Política de acceso SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html#source-account-versus-source-owner).

**nota**  
IAM sigue la regla de [la política más restrictiva primero](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html). Si en el tema de SNS hay un bloque de políticas que es más restrictivo que el bloque de políticas de Amazon SNS documentado, no se concede el permiso para la política del tema. Para evaluar la política y averiguar qué se ha concedido, consulte [Lógica de evaluación de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html). 

## Configuración del tema SNS para las regiones de activación
<a name="AMP-alertmanager-sns-regional-config"></a>

Puede usarlo `aps.amazonaws.com` para configurar un tema de Amazon SNS al mismo tiempo Región de AWS que su espacio de trabajo de Amazon Managed Service for Prometheus. Para usar un tema de SNS de una non-opt-in región (como us-east-1) con una región opcional (como af-south-1), debes usar el formato principal del servicio regional. En el principio del servicio regional, sustitúyalo por la non-opt-in región que *us-east-1* quieres usar:. **aps.*us-east-1*.amazonaws.com**

En la siguiente tabla se muestran las regiones de activación y sus correspondientes entidades principales de servicio regionales:


**Regiones de activación y sus entidades principales de servicio regionales**  

| Nombre de la región | Region | Entidad principal de servicio Regional | 
| --- | --- | --- | 
| África (Ciudad del Cabo) | af-south-1 | af-south-1.aps.amazonaws.com | 
| Asia-Pacífico (Hong Kong) | ap-east-1 | ap-east-1.aps.amazonaws.com | 
| Asia-Pacífico (Tailandia) | ap-southeast-7 | ap-southeast-7.aps.amazonaws.com | 
| Europa (Milán) | eu-south-1 | eu-south-1.aps.amazonaws.com | 
| Europa (Zúrich) | eu-central-2 | eu-central-2.aps.amazonaws.com | 
| Medio Oriente (EAU) | me-central-1 | me-central-1.aps.amazonaws.com | 
| Asia-Pacífico (Malasia) | ap-southeast-5 | ap-southeast-5.aps.amazonaws.com | 

Para obtener información sobre cómo habilitar la región de activación, consulte [Administración de las Regiones de AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) en la *Guía del usuario de IAM* en la Referencia general de Amazon Web Services. 

Al configurar su tema de Amazon SNS para estas regiones de activación, asegúrese de utilizar la entidad principal de servicio regional correcta para permitir la entrega de alertas entre regiones.

## Prevención de la sustitución confusa entre servicios
<a name="cross-service-confused-deputy-prevention"></a>

El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación de identidad entre servicios puede provocar el confuso problema de un diputado. La suplantación entre servicios puede producirse cuando un servicio (el *servicio que lleva a cabo las llamadas*) llama a otro servicio (el *servicio al que se llama*). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta. 

Se recomienda utilizar las claves de contexto de condición global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) en las políticas de recursos para limitar los permisos que Amazon Managed Service para Prometheus concede a Amazon SNS para el recurso. Si se utilizan ambas claves contextuales de condición global, el valor `aws:SourceAccount` y la cuenta del valor `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utilicen en la misma declaración de política.

El valor de `aws:SourceArn` debe ser el ARN del espacio de trabajo de Amazon Managed Service para Prometheus.

La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de `aws:SourceArn` con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si especifica varios recursos, utiliza la clave de condición de contexto global `aws:SourceArn` con comodines (`*`) para las partes desconocidas del ARN. Por ejemplo, `arn:aws:servicename::123456789012:*`. 

La política mostrada en [Concesión de permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS](#AMP-alertmanager-receiver-AMPpermission) muestra cómo se pueden utilizar las claves contextuales de condición global `aws:SourceArn` y `aws:SourceAccount` en Amazon Managed Service para Prometheus para evitar el problema del suplente confuso.

# Configuración del administrador de alertas para que envíe mensajes al tema de Amazon SNS
<a name="AMP-alertmanager-receiver-config"></a>

Cuando tenga un tema de Amazon SNS de tipo **estándar** (nuevo o existente), podrá agregarlo a la configuración del administrador de alertas como receptor de alertas. El administrador de alertas puede reenviar las alertas a un receptor de alertas configurado. Para completar esta acción, debe conocer el nombre de recurso de Amazon (ARN) del tema de Amazon SNS.

Para obtener más información sobre la configuración del receptor de Amazon SNS, consulte [<sns\$1configs>](https://prometheus.io/docs/alerting/latest/configuration/#sns_configs) en la documentación de configuración de Prometheus. 

**Propiedades no compatibles**

Amazon Managed Service para Prometheus es compatible con Amazon SNS como receptor de alertas. Sin embargo, debido a las limitaciones del servicio, no se admiten todas las propiedades del receptor de Amazon SNS. Las siguientes propiedades no están permitidas en un archivo de configuración del administrador de alertas de Amazon Managed Service para Prometheus:
+ `api_url:` Amazon Managed Service para Prometheus establece la `api_url` en su nombre, por lo que esta propiedad no está permitida.
+ `Http_config`: esta propiedad le permite configurar proxies externos. Actualmente, Amazon Managed Service para Prometheus no admite esta característica.

Además, la configuración de SigV4 es necesaria para tener una propiedad Region. Sin la propiedad Region, Amazon Managed Service para Prometheus no tiene suficiente información para realizar la solicitud de autorización. 

**Para configurar el administrador de alertas con un tema de Amazon SNS como receptor:**

1. Si está utilizando un archivo de configuración del administrador de alertas existente, ábralo en un editor de texto.

1. Si hay receptores actuales distintos de Amazon SNS en el bloque `receivers`, elimínelos. Puede configurar varios temas de Amazon SNS para que sean receptores colocándolos en bloques `sns_config` separados dentro del bloque `receivers`.

1. Agregue el siguiente bloque de YAML dentro de la sección `receivers`.

   ```
   - name: name_of_receiver
     sns_configs:
       - sigv4:
           region: Región de AWS
         topic_arn: ARN_of_SNS_topic
         subject: yoursubject
         attributes:
           key: yourkey
           value: yourvalue
   ```

Si no se especifica un `subject`, de forma predeterminada se generará un asunto con la plantilla predeterminada con el nombre y los valores de la etiqueta, lo que puede dar como resultado un valor demasiado largo para SNS. Para cambiar la plantilla que se aplica al tema, consulte [Configuración del administrador de alertas para enviar mensajes a Amazon SNS como JSON](AMP-alertmanager-receiver-JSON.md) en esta guía. 

Ahora tiene que subir el archivo de configuración del administrador de alertas a Amazon Managed Service para Prometheus. Para obtener más información, consulte [Carga del archivo de configuración del administrador de alertas a Amazon Managed Service para Prometheus](AMP-alertmanager-upload.md).

# Configuración del administrador de alertas para enviar mensajes a Amazon SNS como JSON
<a name="AMP-alertmanager-receiver-JSON"></a>

De forma predeterminada, el administrador de alertas de Amazon Managed Service para Prometheus genera mensajes en un formato de lista de texto sin formato. Esto puede dificultar el análisis por parte de otros servicios. En vez de eso, puede configurar el administrador de alertas para que envíe alertas en formato JSON. JSON puede facilitar el procesamiento de los mensajes en sentido descendente desde Amazon SNS AWS Lambda en los puntos de enlace receptores de webhooks o en ellos. En lugar de utilizar la plantilla predeterminada, puede definir una plantilla personalizada para mostrar el contenido del mensaje en JSON, lo que facilita su análisis en las funciones posteriores.

Para enviar mensajes del administrador de alertas a Amazon SNS en formato JSON, actualice la configuración del administrador de alertas para que incluya el siguiente código en la sección raíz `template_files`:

```
default_template: |
   {{ define "sns.default.message" }}{{ "{" }}"receiver": "{{ .Receiver }}","status": "{{ .Status }}","alerts": [{{ range $alertIndex, $alerts := .Alerts }}{{ if $alertIndex }}, {{ end }}{{ "{" }}"status": "{{ $alerts.Status }}"{{ if gt (len $alerts.Labels.SortedPairs) 0 -}},"labels": {{ "{" }}{{ range $index, $label := $alerts.Labels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $label.Name }}": "{{ $label.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len $alerts.Annotations.SortedPairs ) 0 -}},"annotations": {{ "{" }}{{ range $index, $annotations := $alerts.Annotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $annotations.Name }}": "{{ $annotations.Value }}"{{ end }}{{ "}" }}{{- end }},"startsAt": "{{ $alerts.StartsAt }}","endsAt": "{{ $alerts.EndsAt }}","generatorURL": "{{ $alerts.GeneratorURL }}","fingerprint": "{{ $alerts.Fingerprint }}"{{ "}" }}{{ end }}]{{ if gt (len .GroupLabels) 0 -}},"groupLabels": {{ "{" }}{{ range $index, $groupLabels := .GroupLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $groupLabels.Name }}": "{{ $groupLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonLabels) 0 -}},"commonLabels": {{ "{" }}{{ range $index, $commonLabels := .CommonLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonLabels.Name }}": "{{ $commonLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonAnnotations) 0 -}},"commonAnnotations": {{ "{" }}{{ range $index, $commonAnnotations := .CommonAnnotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonAnnotations.Name }}": "{{ $commonAnnotations.Value }}"{{ end }}{{ "}" }}{{- end }}{{ "}" }}{{ end }}
   {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }}
```

**nota**  
Esta plantilla crea JSON a partir de datos alfanuméricos. Si los datos contienen caracteres especiales, codifíquelos antes de usar esta plantilla.

Para asegurarse de que esta plantilla se usa en las notificaciones salientes, haga referencia a ella en el bloque `alertmanager_config` de la siguiente manera:

```
alertmanager_config: |
  global:
  templates:
    - 'default_template'
```

**nota**  
Esta plantilla es para todo el cuerpo del mensaje en formato JSON. Esta plantilla sobrescribe todo el cuerpo del mensaje. No puede anular el cuerpo del mensaje si desea utilizar esta plantilla específica. Cualquier modificación que se realice manualmente tendrá prioridad sobre la plantilla.

Para obtener más información acerca de:
+ El archivo de configuración del administrador de alertas, consulte. [Creación de una configuración del administrador de alertas en Amazon Managed Service para Prometheus a fin de administrar y enrutar las alertas](AMP-alertmanager-config.md)
+ La subida del archivo de configuración, consulte [Carga del archivo de configuración del administrador de alertas a Amazon Managed Service para Prometheus](AMP-alertmanager-upload.md).

# Configuración de Amazon SNS para enviar mensajes de alertas a otros destinos
<a name="AMP-alertmanager-SNS-otherdestinations"></a>

Amazon Managed Service para Prometheus solo puede enviar mensajes de alerta a Amazon Simple Notification Service (Amazon SNS). Para enviar esos mensajes a otros destinos, como correo electrónico, webhook o Slack OpsGenie, debe configurar Amazon SNS para que reenvíe los mensajes a esos puntos de enlace.

En las siguientes secciones se describe la configuración de Amazon SNS para reenviar alertas a otros destinos.

**Topics**
+ [Correo electrónico](#AMP-alertmanager-SNS-otherdestinations-email)
+ [Webhook](#AMP-alertmanager-SNS-otherdestinations-webhook)
+ [Slack](#AMP-alertmanager-SNS-otherdestinations-Slack)
+ [OpsGenie](#AMP-alertmanager-SNS-otherdestinations-OpsGenie)

## Correo electrónico
<a name="AMP-alertmanager-SNS-otherdestinations-email"></a>

Para configurar un tema de Amazon SNS para que envíe mensajes al correo electrónico, cree una suscripción. En la consola de Amazon SNS, elija la pestaña **Suscripciones** para abrir la página de la lista **Suscripciones**. Elija **Crear suscripción** y seleccione **Correo electrónico**. Amazon SNS envía un correo electrónico de confirmación a la dirección de correo electrónico indicada. Tras aceptar la confirmación, podrá recibir las notificaciones de Amazon SNS en forma de correos electrónicos desde el tema al que se haya suscrito. Para obtener más información, consulte [Suscripción a un tema de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html).

## Webhook
<a name="AMP-alertmanager-SNS-otherdestinations-webhook"></a>

Para configurar un tema de Amazon SNS para que envíe mensajes a un punto de conexión de webhook, cree una suscripción. En la consola de Amazon SNS, elija la pestaña **Suscripciones** para abrir la página de la lista **Suscripciones**. Elija **Crear suscripción** y seleccione **HTTP/HTTPS**. Tras crear la suscripción, debe seguir los pasos de confirmación para activarla. Cuando esté activo, su punto de conexión HTTP debería recibir las notificaciones de Amazon SNS. Para obtener más información, consulte [Suscripción a un tema de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html). Para obtener más información sobre el uso de los webhooks de Slack para publicar mensajes en varios destinos, consulte [¿Cómo uso los webhooks para publicar mensajes de Amazon SNS en Amazon Chime, Slack o Microsoft Teams?](https://aws.amazon.com/premiumsupport/knowledge-center/sns-lambda-webhooks-chime-slack-teams/)

## Slack
<a name="AMP-alertmanager-SNS-otherdestinations-Slack"></a>

Para configurar un tema de Amazon SNS para que envíe mensajes a Slack, tiene dos opciones. Puedes integrarlo con la email-to-channel integración de Slack, que permite a Slack aceptar mensajes de correo electrónico y reenviarlos a un canal de Slack, o puedes usar una función Lambda para reescribir la notificación de Amazon SNS en Slack. [Para obtener más información sobre el reenvío de correos electrónicos a los canales de Slack, consulta Cómo confirmar la suscripción a un tema de SNS para Slack Webhook. AWS](https://stackoverflow.com/questions/49341187/confirming-aws-sns-topic-subscription-for-slack-webhook) Para obtener más información sobre cómo crear una función de Lambda para convertir los mensajes de Amazon SNS a Slack, consulte [Cómo integrar Amazon Managed Service para Prometheus con Slack](https://aws.amazon.com/blogs/mt/how-to-integrate-amazon-managed-service-for-prometheus-with-slack/).

## OpsGenie
<a name="AMP-alertmanager-SNS-otherdestinations-OpsGenie"></a>

Para obtener información sobre cómo configurar un tema de Amazon SNS para enviar mensajes OpsGenie, consulte [Integrar Opsgenie con Amazon SNS entrante](https://support.atlassian.com/opsgenie/docs/integrate-opsgenie-with-incoming-amazon-sns/).

# Comprensión de las reglas de validación de mensajes de Amazon SNS
<a name="AMP-alertmanager-receiver-validation-truncation"></a>

Amazon Simple Notification Service (Amazon SNS) requiere que los mensajes cumplan ciertos estándares. Los mensajes que no cumplan estos estándares se modificarán cuando se reciban. El receptor de Amazon SNS validará, truncará o modificará, si es necesario, los mensajes de alerta según las siguientes reglas:
+ El mensaje contiene caracteres que no son UTF.
  + El mensaje se reemplazará por **Error - not a valid UTF-8 encoded string**.
  + Se agregará un atributo de mensaje con la clave **truncated** y el valor **true**.
  + Se agregará un atributo de mensaje con la clave **modified** y el valor **Message: Error - not a valid UTF-8 encoded string**.
+ El mensaje está vacío.
  + El mensaje se reemplazará por **Error - Message should not be empty**.
  + Se agregará un atributo de mensaje con la clave **modified** y el valor **Message: Error - Message should not be empty**.
+ El mensaje está truncado.
  + El mensaje tendrá el contenido truncado.
  + Se agregará un atributo de mensaje con la clave **truncated** y el valor **true**.
  + Se añadirá un atributo de mensaje con la clave «modificado» y el valor **Mensaje: Error: el mensaje se ha truncado en KB porque supera el límite de *X* tamaño de 256 KB**.
+ El asunto contiene caracteres de control o que no son ASCII.
  + Si el asunto contiene caracteres de control o caracteres que no son ASCII, SNS lo reemplaza por **Error - contains control- or non-ASCII characters**.
  + Para los asuntos de los correos electrónicos de SNS, elimine los caracteres de control, como las líneas nuevas: `\n`.
+ El asunto no está en ASCII.
  + El asunto se reemplazará por **Error - contains non printable ASCII characters**.
  + Se agregará un atributo de mensaje con la clave **modified** y el valor **Subject: Error - contains non-printable ASCII characters**.
+ El asunto está truncado.
  + El asunto tendrá el contenido truncado.
  + Se añadirá un atributo de mensaje con la clave de **modificado** y el valor **Asunto: Error: se ha truncado el asunto de los *X* caracteres porque supera el límite de tamaño de 100** caracteres.
+ El atributo del mensaje tiene una clave o un valor no válidos.
  + Se eliminará el atributo de mensaje no válido.
  + Se añadirá un atributo de mensaje con la clave de **modificado** y el valor de **MessageAttribute: Error: si los atributos *X* del mensaje se han eliminado porque no son válidos MessageAttributeKey ** o. MessageAttributeValue
+ El atributo de mensaje está truncado.
  + Se eliminarán los atributos de mensaje adicionales.
  + Se añadirá un atributo de mensaje con la clave de **modificado** y el valor de **MessageAttribute: Error: *X* de los atributos del mensaje se han eliminado porque superan el límite de tamaño de 256 KB**.

# PagerDuty Utilízalo como receptor de alertas
<a name="AMP-alertmanager-pagerduty"></a>

Puede configurar Amazon Managed Service para que Prometheus envíe alertas directamente a. PagerDuty Esta integración requiere que guardes tu clave de PagerDuty integración AWS Secrets Manager y concedas permiso a Amazon Managed Service for Prometheus para leer el secreto.

PagerDuty La integración permite automatizar los flujos de trabajo de respuesta a incidentes y garantiza que las alertas críticas lleguen a los miembros del equipo adecuados en el momento adecuado. Si lo utiliza PagerDuty como receptor de alertas, puede aprovechar las políticas de escalamiento, PagerDuty la programación de llamadas y las funciones de gestión de incidentes para garantizar que las alertas se reconozcan y resuelvan rápidamente. Esta integración es especialmente valiosa para los entornos de producción, donde la respuesta rápida a los problemas del sistema es esencial para mantener la disponibilidad del servicio y cumplir los requisitos de los acuerdos de nivel de servicio. Para obtener más información, consulte la [base de PagerDuty conocimientos](https://support.pagerduty.com/) en el *PagerDuty sitio web*.

## PagerDuty opciones de configuración
<a name="AMP-alertmanager-pagerduty-configuration-options"></a>




| Opción | Description (Descripción) | Obligatorio | 
| --- | --- | --- | 
|  `routing_key`  |  La clave de PagerDuty enrutamiento para una integración en un servicio. Debe especificarlo como un ARN de Secrets Manager  |  Sí  | 
|  `service_key`  |  La clave PagerDuty de servicio para una integración en un servicio. Debe especificarlo como un ARN de Secrets Manager  |  Sí (para la API de eventos, versión 1)  | 
|  `client`  |  La identificación de cliente del notificador  |  No  | 
|  `client_url`  |  Un enlace al remitente de la notificación  |  No  | 
|  `description`  |  Descripción del incidente  |  No  | 
|  `details`  |  Un conjunto de key/value pares arbitrarios que proporcionan más detalles sobre el incidente  |  No  | 
|  `severity`  |  Gravedad del incidente  |  No  | 
|  `class`  |  La clase o el tipo del evento  |  No  | 
|  `component`  |  Componente de la máquina de origen responsable del evento  |  No  | 
|  `group`  |  Agrupación lógica de componentes  |  No  | 
|  `source`  |  La ubicación única del sistema afectado  |  No  | 

**nota**  
No se admiten las opciones `url`, `service_key_file`, `routing_key_file`, ni `http_config`.

En los temas siguientes se describe cómo configurarse PagerDuty como receptor de alertas en Amazon Managed Service for Prometheus.

**Topics**
+ [PagerDuty opciones de configuración](#AMP-alertmanager-pagerduty-configuration-options)
+ [Configuración AWS Secrets Manager y permisos](AMP-alertmanager-pagerduty-permissions.md)
+ [Configure el administrador de alertas para enviar alertas a PagerDuty](AMP-alertmanager-pagerduty-configure-alertmanager.md)

# Configuración AWS Secrets Manager y permisos
<a name="AMP-alertmanager-pagerduty-permissions"></a>

Antes de poder enviar alertas a PagerDuty, debe almacenar de forma segura PagerDuty la clave de integración y configurar los permisos necesarios. Este proceso implica crear un código secreto AWS Secrets Manager, cifrarlo con una clave gestionada por el cliente AWS Key Management Service (AWS KMS) y conceder a Amazon Managed Service for Prometheus los permisos necesarios para acceder tanto al secreto como a su clave de cifrado. Los siguientes procedimientos le guiarán en cada paso de este proceso de configuración. 

**Para crear un secreto en Secrets Manager para PagerDuty**  
Para PagerDuty utilizarla como receptor de alertas, debe almacenar su clave de PagerDuty integración en Secrets Manager. Siga estos pasos:

1. Abra la [consola de Secrets Manager](https://console.aws.amazon.com/secretsmanager/).

1. Elija **Almacenar un secreto nuevo**.

1. En **Secret type** (Tipo de secreto), elija **Other type of secret** (Otro tipo de secreto).

1. Para los **pares clave/valor**, introduzca su clave de PagerDuty integración como valor secreto. Se trata de la clave de enrutamiento o la clave de servicio de su PagerDuty integración.

1. Elija **Siguiente**.

1. Ingrese un nombre y una descripción para su secreto y, a continuación, elija **Siguiente**.

1. Configure los ajustes de rotación si lo desea y, a continuación, seleccione **Siguiente**.

1. Revise la configuración y seleccione **Almacenar**.

1. Después de crear el secreto, anote su ARN. Lo necesitará al configurar el administrador de alertas.

**Para cifrar tu secreto con una clave gestionada por el cliente AWS KMS**

Debe conceder permiso a Amazon Managed Service para Prometheus para acceder a su secreto y a su clave de cifrado:

1. **Política de recursos secretos**: abra su secreto en la [consola de Secrets Manager](https://console.aws.amazon.com/secretsmanager/).

   1. Elija **Permisos de recursos**.

   1. Elija **Editar permisos**.

   1. Agregue la siguiente instrucción de política. En la declaración, sustituya el valor por sus *highlighted values* valores específicos.

      ```
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "aps.amazonaws.com"
        },
        "Action": "secretsmanager:GetSecretValue",
        "Resource": "*",
        "Condition": {
          "ArnEquals": {
            "aws:SourceArn": "arn:aws:aps:aws-region:123456789012:workspace/WORKSPACE_ID"
          },
          "StringEquals": {
            "aws:SourceAccount": "123456789012"
          }
        }
      }
      ```

   1. Seleccione **Save**.

1. **Política de claves de KMS**: abra la AWS KMS clave en la [AWS KMS consola](https://console.aws.amazon.com/kms).

   1. Elija **Política de claves**.

   1. Elija **Edit (Edición de)**.

   1. Agregue la siguiente instrucción de política. En la declaración, sustituya el *highlighted values* valor por sus valores específicos.

      ```
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "aps.amazonaws.com"
        },
        "Action": "kms:Decrypt",
        "Resource": "*",
        "Condition": {
          "ArnEquals": {
            "aws:SourceArn": "arn:aws:aps:aws-region:123456789012:workspace/WORKSPACE_ID"
          },
          "StringEquals": {
            "aws:SourceAccount": "123456789012"
          }
        }
      }
      ```

   1. Seleccione **Save**.

**Pasos siguientes**: continúe con el tema siguiente, [Configure el administrador de alertas para enviar alertas a PagerDuty](AMP-alertmanager-pagerduty-configure-alertmanager.md).

# Configure el administrador de alertas para enviar alertas a PagerDuty
<a name="AMP-alertmanager-pagerduty-configure-alertmanager"></a>

Para configurar el administrador de alertas al que enviar alertas PagerDuty, debe actualizar la definición del administrador de alertas. Para ello, puede utilizar las Consola de administración de AWS teclas AWS CLI, o AWS SDKs.

**Example de configuración del administrador de alertas**  
A continuación, se muestra un ejemplo de configuración del administrador de alertas que envía alertas a PagerDuty. En el ejemplo, sustituya el *highlighted values* valor por sus valores específicos.  

```
alertmanager_config: |
  route:
    receiver: 'pagerduty-receiver'
    group_by: ['alertname']
    group_wait: 30s
    group_interval: 5m
    repeat_interval: 1h
  receivers:
    - name: 'pagerduty-receiver'
      pagerduty_configs:
      - routing_key: 
          aws_secrets_manager:
            secret_arn: 'arn:aws:secretsmanager:aws-region:123456789012:secret:YOUR_SECRET_NAME'
            secret_key: 'YOUR_SECRET_KEY'
            refresh_interval: 5m
        description: '{{ .CommonLabels.alertname }}'
        severity: 'critical'
        details:
          firing: '{{ .Alerts.Firing | len }}'
          status: '{{ .Status }}'
          instance: '{{ .CommonLabels.instance }}'
```

**Example AWS CLI**  
A continuación, se muestra un AWS CLI comando que se utiliza para actualizar la definición del administrador de alertas. En el ejemplo, sustituya el *highlighted values* valor por sus valores específicos.  

```
aws amp put-alert-manager-definition \
  --workspace-id WORKSPACE_ID \
  --data file://alertmanager-config.yaml
```

## Solución de problemas de PagerDuty integración
<a name="AMP-alertmanager-pagerduty-troubleshooting"></a>

Si no se envían alertas a PagerDuty, compruebe lo siguiente:
+ Compruebe que su secreto existe y que contiene la clave de PagerDuty integración correcta.
+ Asegúrese de que su secreto esté cifrado con una clave de KMS administrada por el cliente.
+ Asegúrese de que las políticas de recursos tanto para el secreto como para la clave de KMS concedan los permisos necesarios a Amazon Managed Service para Prometheus.
+ Compruebe que el ARN de la configuración del administrador de alertas haga referencia correctamente a su secreto.
+ Comprueba que tu clave de PagerDuty integración sea válida y esté activa en tu PagerDuty cuenta.

Amazon Managed Service for Prometheus es compatible con CloudWatch Amazon Logs y con CloudWatch las siguientes métricas para facilitar la solución de problemas. Para obtener más información, consulte [Supervisa los eventos de Prometheus con registros de Amazon Managed Service CloudWatch](CW-logs.md) y [Usa CloudWatch métricas para monitorear los recursos de Amazon Managed Service for Prometheus](AMP-CW-usage-metrics.md).CloudWatch métricas
+ `SecretFetchFailure`
+ `AlertManagerNotificationsThrottledByIntegration`
+ `AlertManagerNotificationsFailedByIntegration`

# Carga del archivo de configuración del administrador de alertas a Amazon Managed Service para Prometheus
<a name="AMP-alertmanager-upload"></a>

Cuando sepa lo que desea incluir en el archivo de configuración del administrador de reglas, puede crearlo y editarlo en la consola, o bien cargar un archivo existente con la consola de Amazon Managed Service para Prometheus o la AWS CLI.

**nota**  
Si ejecuta un clúster de Amazon EKS, también puede cargar un archivo de configuración del administrador de alertas con los [controladores de AWS para Kubernetes](integrating-ack.md).

**Uso de la consola de Amazon Managed Service para Prometheus para editar o reemplazar la configuración del administrador de alertas**

1. Abre la consola de Amazon Managed Service for Prometheus en. [https://console.aws.amazon.com/prometheus/](https://console.aws.amazon.com/prometheus/home)

1. En la esquina superior izquierda de la página, elija el icono de menú y, a continuación, elija **Todos los espacios de trabajo**.

1. Elija el ID de espacio de trabajo del espacio de trabajo y, a continuación, elija la pestaña **Administrador de alertas**.

1. Si el espacio de trabajo aún no tiene ninguna definición del administrador de alertas, elija **Agregar definición**.
**nota**  
Si el espacio de trabajo tiene una definición del administrador de alertas que desea reemplazar, elija **Reemplazar**.

1. Elija **Elegir archivo**, seleccione el archivo de definición del administrador de alertas y elija **Continuar**.
**nota**  
Como alternativa, puede crear un archivo nuevo y editarlo directamente en la consola mediante la selección de la opción **Crear definición**. Esto creará una configuración predeterminada de muestra que editará antes de cargarla.

**Para usar la, AWS CLI cargar una configuración de administrador de alertas en un espacio de trabajo por primera vez**

1. Codifique en Base64 el contenido del archivo del administrador de alertas. En Linux, puede utilizar el siguiente comando:

   ```
   base64 input-file output-file
   ```

   En macOS, puede utilizar el siguiente comando:

   ```
   openssl base64 input-file output-file
   ```

1. Para subir el archivo, introduzca uno de los siguientes comandos:

   En la AWS CLI versión 2, introduzca:

   ```
   aws amp create-alert-manager-definition --data file://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

   En la AWS CLI versión 1, introduzca:

   ```
   aws amp create-alert-manager-definition --data fileb://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

1. La configuración del administrador de alertas tarda unos segundos en activarse. Para comprobar el estado, introduzca el siguiente comando:

   ```
   aws amp describe-alert-manager-definition --workspace-id workspace_id --region region
   ```

   Si el `status` es `ACTIVE`, significa que la nueva definición del administrador de alertas se ha aplicado.

**Para usar el AWS CLI para reemplazar la configuración del administrador de alertas de un espacio de trabajo por una nueva**

1. Codifique en Base64 el contenido del archivo del administrador de alertas. En Linux, puede utilizar el siguiente comando:

   ```
   base64 input-file output-file
   ```

   En macOS, puede utilizar el siguiente comando:

   ```
   openssl base64 input-file output-file
   ```

1. Para subir el archivo, introduzca uno de los siguientes comandos:

   En la AWS CLI versión 2, introduzca:

   ```
   aws amp put-alert-manager-definition --data file://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

   En la AWS CLI versión 1, introduzca:

   ```
   aws amp put-alert-manager-definition --data file://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

1. La nueva configuración del administrador de alertas tarda unos segundos en activarse. Para comprobar el estado, introduzca el siguiente comando:

   ```
   aws amp describe-alert-manager-definition --workspace-id workspace_id --region region
   ```

   Si el `status` es `ACTIVE`, significa que la nueva definición del administrador de alertas se ha aplicado. Hasta ese momento, la configuración anterior del administrador de alertas seguirá activa.

# Integración de alertas con Amazon Managed Grafana o Grafana de código abierto
<a name="integrating-grafana"></a>

Las reglas de alerta que haya creado en el administrador de alertas en Amazon Managed Service para Prometheus pueden reenviarse y verse en [Amazon Managed Grafana](https://aws.amazon.com/grafana/) y [Grafana](https://grafana.com), lo que unifica las reglas y alertas en un solo entorno. En Amazon Managed Grafana, puede ver las reglas de alertas y las alertas que se generan.

## Requisitos previos
<a name="grafana-prereqs"></a>

Antes de empezar a integrar Amazon Managed Service para Prometheus con Amazon Managed Grafana, debe haber cumplido los siguientes requisitos previos:
+ Debe disponer de credenciales de IAM Cuenta de AWS y de Amazon Managed Service for Prometheus para crear funciones de IAM y de Amazon mediante programación.

  Para obtener más información sobre cómo crear una credencial de IAM y una Cuenta de AWS credencial de IAM, consulte. [Configurar AWS](AMP-setting-up.md)
+ Debe tener un espacio de trabajo de Amazon Managed Service para Prometheus y estar ingiriendo datos en él. Para configurar un nuevo espacio de trabajo, consulte [Creación de un espacio de trabajo de Amazon Managed Service para Prometheus](AMP-onboard-create-workspace.md). También debería estar familiarizado con los conceptos de Prometheus, como el administrador de alertas y las reglas. Para obtener más información sobre estos temas, consulte la [documentación de Prometheus](https://prometheus.io/docs/introduction/overview/).
+ Tiene una configuración del administrador de alertas y un archivo de reglas ya configurados en Amazon Managed Service para Prometheus. Para obtener más información sobre el administrador de alertas de Amazon Managed Service para Prometheus, consulte [Administración y reenvío de alertas en Amazon Managed Service para Prometheus con el administrador de alertas](AMP-alert-manager.md). Para obtener más información acerca de las reglas, consulte [Uso de reglas para modificar o supervisar métricas a medida que se reciben](AMP-Ruler.md).
+ Debe tener configurado Amazon Managed Grafana o ejecutar la versión de código abierto de Grafana.
  + Si utiliza Amazon Managed Grafana, debe utilizar las alertas de Grafana. Para obtener más información, consulte [Migración de las alertas del panel heredadas a las alertas de Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/alert-opt-in.html).
  + Si está utilizando la versión de código abierto de Grafana, debe ejecutar la versión 9.1 o superior.
**nota**  
Puede usar versiones anteriores de Grafana, pero debe [habilitar la característica de alertas unificadas](https://grafana.com/docs/grafana/v8.4/alerting/unified-alerting/opt-in/) (alertas de Grafana) y es posible que tenga que configurar un [proxy SigV4](https://github.com/awslabs/aws-sigv4-proxy) para realizar llamadas desde Grafana a Amazon Managed Service para Prometheus. Para obtener más información, consulte [Configuración de Grafana de código abierto o Grafana Enterprise para su uso con Amazon Managed Service para Prometheus](AMP-onboard-query-standalone-grafana.md).
+ Amazon Managed Grafana debe tener los siguientes permisos para los recursos de Prometheus. Debe agregarlos a las políticas administradas por el servicio o administradas por el cliente que se describen en [https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html).
  + `aps:ListRules`
  + `aps:ListAlertManagerSilences`
  + `aps:ListAlertManagerAlerts`
  + `aps:GetAlertManagerStatus`
  + `aps:ListAlertManagerAlertGroups`
  + `aps:PutAlertManagerSilences`
  + `aps:DeleteAlertManagerSilence`

## Configuración de Amazon Managed Grafana
<a name="grafana-set-up-grafana"></a>

Si ya ha configurado reglas y alertas en la instancia de Amazon Managed Service para Prometheus, la configuración para utilizar Amazon Managed Grafana como panel para dichas alertas se realiza íntegramente en Amazon Managed Grafana. 

**Para configurar Amazon Managed Grafana como su panel de alertas**

1. Abre la consola de Grafana del espacio de trabajo.

1. En **Configuraciones**, elija **Orígenes de datos**.

1. Cree o abra el origen de datos de Prometheus. Si no ha configurado previamente un origen de datos de Prometheus, consulte [Paso 2: agregar el origen de datos de Prometheus en Grafana](AMP-onboard-query-standalone-grafana.md#AMP-onboard-query-standalone-grafana-datasource) para obtener más información.

1. En el origen de datos de Prometheus, seleccione **Administrar alertas mediante la interfaz de usuario del administrador de alertas**.

1. Vuelva a la interfaz de **Origen de datos**.

1. Cree un nuevo origen de datos del administrador de alertas.

1. En la página de configuración del origen de datos del administrador de alertas, agregue los siguientes ajustes:
   + Defina **Implementación** como `Prometheus`.
   + Para configurar la **URL**, utilice la URL del espacio de trabajo de Prometheus, elimine todo lo que se muestre después del ID del espacio de trabajo y agregue `/alertmanager` al final. En el siguiente ejemplo, sustituya la *variables* información por su propia información (específica de la cuenta):

     ```
     https://aps-workspaces.US East (N. Virginia).amazonaws.com/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager.
     ```
   + En **Autenticación**, active **SigV4Auth**. Esto le indica a Grafana que debe utilizar la [autenticación de AWS](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) para las solicitudes.
   + En **Detalles de SigV4auth**, en **Región predeterminada**, indique la región de la instancia de Prometheus; por ejemplo, `us-east-1`.
   + Defina la opción **Predeterminada** como `true`.

1. Elija **Guardar y probar**.

1. Las alertas de Amazon Managed Service para Prometheus ahora deberían estar configuradas para que funcionen con la instancia de Grafana. Compruebe que puede ver las **Reglas de alerta**, los **Grupos de alertas** (incluidas las alertas activas) y los **Silencios** desde la instancia de Amazon Managed Service para Prometheus en la página **Alertas** de Grafana.

# Solucione problemas del administrador de alertas con registros CloudWatch
<a name="Troubleshooting-alerting"></a>

[Supervisa los eventos de Prometheus con registros de Amazon Managed Service CloudWatch](CW-logs.md) le permite solucionar problemas relacionados con el administrador de alertas y las reglas. Esta sección contiene temas de solución de problemas relacionados con el administrador de alertas. 

**Topics**
+ [Advertencia de alertas activas](#Troubleshooting-alerting-active-alerts)
+ [Advertencia sobre el tamaño del grupo de agregación](#Troubleshooting-alerting-aggregation-group-size)
+ [Advertencia por tamaño de alertas demasiado grande](#Troubleshooting-alerting-size-too-big)
+ [Advertencia de contenido vacío](#Troubleshooting-alerting-empty)
+ [Advertencia `key/value` no válida](#Troubleshooting-alerting-invalid-keyvalue)
+ [Advertencia de límite de mensajes](#Troubleshooting-alerting-msg-limit)
+ [Error de política no basada en recursos](#Troubleshooting-alerting-no-policy)
+ [Advertencia de caracteres no ASCII](#Troubleshooting-alerting-non-ASCII)
+ [Sin autorización para llamar a KMS](#Troubleshooting-alerting-no-access-kms)
+ [Error de plantilla](#Troubleshooting-template-error)

## Advertencia de alertas activas
<a name="Troubleshooting-alerting-active-alerts"></a>

**Cuando el registro contiene la siguiente advertencia**

```
{
    "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
    "message": {
        "log": "too many alerts, limit: 1000",
        "level": "WARN"
    },
    "component": "alertmanager"
}
```

Esto significa que se ha superado la cuota de **alertas activas** del administrador de alertas.

**Acción que debe ejecutarse**

Solicitar un aumento de cuota. Inicie sesión en la consola Service Quotas Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/).

## Advertencia sobre el tamaño del grupo de agregación
<a name="Troubleshooting-alerting-aggregation-group-size"></a>

**Cuando el registro contiene la siguiente advertencia**

```
{
    "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
    "message": {
        "log": "Too many aggregation groups, cannot create new group for alert, groups=1000, limit=1000, alert=sample-alert",
        "level": "WARN"
    },
    "component": "alertmanager"
}
```

Esto significa que se ha superado la cuota de tamaño del grupo de agregación de alertas del administrador de alertas.

**Acción que debe ejecutarse**

Reduzca el tamaño del grupo de agregación de alertas mediante el parámetro `group_by`. Para obtener más información, consulte [Route-related settings](https://prometheus.io/docs/alerting/latest/configuration/) en la *documentación de Prometheus*.

También puede solicitar un aumento de cuota. Inicie sesión en la consola Service Quotas Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/).

## Advertencia por tamaño de alertas demasiado grande
<a name="Troubleshooting-alerting-size-too-big"></a>

**Cuando el registro contiene la siguiente advertencia**

```
{
    "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
    "message": {
        "log": "alerts too big, total size limit: 20000000 bytes",
        "level": "WARN"
    },
    "component": "alertmanager"
}
```

Esto significa que se ha superado la cuota de tamaño de las alertas del administrador de alertas por espacio de trabajo.

**Acción que debe ejecutarse**

Elimine las anotaciones y etiquetas innecesarias para reducir el tamaño de las alertas.

## Advertencia de contenido vacío
<a name="Troubleshooting-alerting-empty"></a>

**Cuando el registro contiene la siguiente advertencia**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Message has been modified because the content was empty."
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Esto significa que la plantilla del administrador de alertas ha resuelto la alerta saliente con un mensaje vacío. 

**Acción que debe ejecutarse**

Valide la plantilla del administrador de alertas y asegúrese de tener una plantilla válida para todas las rutas receptoras. 

## Advertencia `key/value` no válida
<a name="Troubleshooting-alerting-invalid-keyvalue"></a>

**Cuando el registro contiene la siguiente advertencia**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "MessageAttributes has been removed because of invalid key/value, numberOfRemovedAttributes=1"
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Esto significa que algunos de los atributos del mensaje se han eliminado por no keys/values ser válidos. 

**Acción que debe ejecutarse**

Vuelva a evaluar las plantillas que está utilizando para rellenar los atributos del mensaje y asegúrese de que se resuelvan en un atributo de mensaje de SNS válido. Para obtener más información acerca de la validación de un mensaje en un tema de Amazon SNS, consulte [Validación de un tema de SNS](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html#API_Publish_RequestParameters).

## Advertencia de límite de mensajes
<a name="Troubleshooting-alerting-msg-limit"></a>

**Cuando el registro contiene la siguiente advertencia**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Message has been truncated because it exceeds size limit, originSize=266K, truncatedSize=12K"
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Esto significa que parte del tamaño del mensaje es demasiado grande. 

**Acción que debe ejecutarse**

Observe la plantilla de mensajes del receptor de alertas y vuelva a diseñarla para que se ajuste al límite de tamaño.

## Error de política no basada en recursos
<a name="Troubleshooting-alerting-no-policy"></a>

**Cuando el registro contiene el siguiente error**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Notify for alerts failed, AMP is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-west-2:12345:testSnsReceiver because no resource-based policy allows the SNS:Publish action"
       "level": "ERROR"
   },
   "component": "alertmanager"
}
```

Esto significa que Amazon Managed Service para Prometheus no dispone de los permisos necesarios para enviar la alerta al tema de SNS especificado. 

**Acción que debe ejecutarse**

Valide que la política de acceso de su tema de Amazon SNS conceda a Amazon Managed Service para Prometheus la capacidad de enviar mensajes de SNS al tema. Cree una política de acceso de SNS para que el servicio `aps.amazonaws.com` (Amazon Managed Service para Prometheus) acceda al tema de Amazon SNS. Para obtener más información sobre las políticas de acceso de SNS, consulte [Uso del lenguaje de la política de acceso](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-language-using.html) y [Casos de ejemplo para el control de acceso de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html) en la *Guía para desarrolladores de Amazon Simple Notification Service*.

## Advertencia de caracteres no ASCII
<a name="Troubleshooting-alerting-non-ASCII"></a>

**Cuando el registro contiene la siguiente advertencia**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Subject has been modified because it contains control or non-ASCII characters."
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Esto significa que el asunto contiene caracteres que no son ASCII. 

**Acción que debe ejecutarse**

Elimine las referencias en el campo asunto de la plantilla a las etiquetas que puedan contener caracteres que no sean ASCII.

## Sin autorización para llamar a KMS
<a name="Troubleshooting-alerting-no-access-kms"></a>

**Cuando el registro contiene el siguiente error de AWS KMS **

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Notify for alerts failed, AMP is not authorized to call KMS",
       "level": "ERROR"
   },
   "component": "alertmanager"
}
```

**Acción que debe ejecutarse**

Valide que la política de claves de la clave utilizada para cifrar el tema de Amazon SNS permita a la entidad principal del servicio Amazon Managed Service para Prometheus `aps.amazonaws.com` realizar las siguientes acciones: `kms:GenerateDataKey*` y `kms:Decrypt`. Para obtener más información, consulte [Permisos de AWS KMS para el tema de SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#sns-what-permissions-for-sse).

## Error de plantilla
<a name="Troubleshooting-template-error"></a>

**Cuando el registro contiene el siguiente error**

```
               {
   "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
   "message": {
       "log": "Notify for alerts failed. There is an error in a receiver that is using templates in the AlertManager definition. Make sure that the syntax is correct and only template functions and variables that exist are used in the receiver 'default', sns_configs position #2, section 'attributes'"
       "level": "ERROR"
   },
   "component": "alertmanager"
}
```

Esto significa que hay un error en la plantilla que se está utilizando en la AlertManager definición. La entrada de error contiene instrucciones sobre el receptor, la posición en las sns\$1configs y la propiedad que contiene los errores.

**Acción que debe ejecutarse**

Valide su definición del administrador de alertas. Asegúrese de que la sintaxis sea correcta y de que haga referencia a las variables y funciones de la plantilla que existen. Para obtener más información, consulte [Notification Template Reference](https://prometheus.io/docs/alerting/latest/notifications/) en la documentación de código abierto de *Prometheus*.