

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.

# Configuración de alertas
<a name="v9-alerting-setup"></a>

****  
Este tema de documentación está diseñado para los espacios de trabajo de Grafana que admiten la **versión 9.x de Grafana**.  
Para los espacios de trabajo de Grafana que admiten la versión 10.x de Grafana, consulte [Uso de la versión 10 de Grafana](using-grafana-v10.md).  
Para los espacios de trabajo de Grafana que admiten la versión 8.x de Grafana, consulte [Uso de la versión 8 de Grafana](using-grafana-v8.md).

Configure las características e integraciones que necesita para crear y administrar las alertas.

**Topics**
+ [Adición de un Alertmanager externo](v9-alerting-setup-alertmanager.md)
+ [Aprovisionamiento de recursos de Grafana Alerting](v9-alerting-setup-provision.md)

# Adición de un Alertmanager externo
<a name="v9-alerting-setup-alertmanager"></a>

****  
Este tema de documentación está diseñado para los espacios de trabajo de Grafana que admiten la **versión 9.x de Grafana**.  
Para los espacios de trabajo de Grafana que admiten la versión 10.x de Grafana, consulte [Uso de la versión 10 de Grafana](using-grafana-v10.md).  
Para los espacios de trabajo de Grafana que admiten la versión 8.x de Grafana, consulte [Uso de la versión 8 de Grafana](using-grafana-v8.md).

Configure Grafana para usar un Alertmanager externo como el único Alertmanager que recibirá todas sus alertas. Luego, este administrador de alertas externo se podrá configurar y administrar desde Grafana.

Una vez que haya agregado el administrador de alertas, puede usar la interfaz de usuario de Grafana Alerting para administrar los silencios, los puntos de contacto y las políticas de notificaciones. Una opción desplegable en estas páginas le permite cambiar entre los administradores de alertas.

**nota**  
A partir de Grafana 9.2, queda obsoleta la configuración de la URL de los Alertmanagers externos desde la pestaña Administración de la página Alertas. Se habilitará en una versión futura.

A continuación, deberían configurarse los Alertmanagers externos como orígenes de datos mediante la configuración de Grafana en el menú de navegación principal de Grafana. Esto le permite administrar los puntos de contacto y las políticas de notificaciones de los administradores de alertas externos desde Grafana y también cifra las credenciales de autenticación básica HTTP que antes estaban visibles al configurar los administradores de alertas externos por URL.

Para agregar un Alertmanager externo, siga los pasos que se describen a continuación.

1. Haga clic en Configuración y, a continuación, en Orígenes de datos.

1. Busque Alertmanager.

1. Elija su implementación y rellene los campos de la página, según sea necesario.

   Si va a aprovisionar el origen de datos, establezca la marca `handleGrafanaManagedAlerts` del campo `jsonData` en `true` para enviar alertas administradas por Grafana a este Alertmanager.
**nota**  
Se admiten las implementaciones de Alertmanager de Prometheus, Grafana Mimir y Cortex. En el caso de Prometheus, los puntos de contacto y las políticas de notificaciones son solo de lectura en la interfaz de usuario de Grafana Alerting.

1. Haga clic en Guardar y probar.

# Aprovisionamiento de recursos de Grafana Alerting
<a name="v9-alerting-setup-provision"></a>

****  
Este tema de documentación está diseñado para los espacios de trabajo de Grafana que admiten la **versión 9.x de Grafana**.  
Para los espacios de trabajo de Grafana que admiten la versión 10.x de Grafana, consulte [Uso de la versión 10 de Grafana](using-grafana-v10.md).  
Para los espacios de trabajo de Grafana que admiten la versión 8.x de Grafana, consulte [Uso de la versión 8 de Grafana](using-grafana-v8.md).

La infraestructura de alertas suele ser compleja, ya que muchas partes de la canalización suelen estar en diferentes lugares. Escalar esta capacidad entre varios equipos y organizaciones es una tarea especialmente difícil. El aprovisionamiento de Grafana Alerting facilita este proceso al permitirle crear, administrar y mantener los datos de sus alertas de la manera que mejor se adapte a su organización.

Existen dos opciones entre las que elegir:

1. Aprovisionar sus recursos de alertas mediante la API HTTP de aprovisionamiento de alertas.
**nota**  
Por lo general, no puede editar las reglas de alerta aprovisionadas por la API desde la interfaz de usuario de Grafana.  
Para habilitar la edición, agrega el x-disable-provenance encabezado a las siguientes solicitudes al crear o editar tus reglas de alerta en la API:  

   ```
   POST /api/v1/provisioning/alert-rules
   PUT /api/v1/provisioning/alert-rules/{UID}
   ```

1. Aprovisionar los recursos de alertas con Terraform.

**nota**  
Actualmente, el aprovisionamiento de Grafana Alerting admite reglas de alerta, puntos de contacto, temporizadores de silencio y plantillas. Los recursos de alerta aprovisionados mediante el aprovisionamiento de archivos o Terraform solo se pueden editar en el origen que los creó y no desde Grafana ni desde ningún otro origen. Por ejemplo, si aprovisiona sus recursos de alerta mediante archivos del disco, no podrá editar los datos en Terraform ni en Grafana.

**Topics**
+ [Creación y administración de recursos de alertas con Terraform](v9-alerting-setup-provision-terraform.md)
+ [Visualización de los recursos de alerta aprovisionados en Grafana](v9-alerting-setup-provision-view.md)

# Creación y administración de recursos de alertas con Terraform
<a name="v9-alerting-setup-provision-terraform"></a>

****  
Este tema de documentación está diseñado para los espacios de trabajo de Grafana que admiten la **versión 9.x de Grafana**.  
Para los espacios de trabajo de Grafana que admiten la versión 10.x de Grafana, consulte [Uso de la versión 10 de Grafana](using-grafana-v10.md).  
Para los espacios de trabajo de Grafana que admiten la versión 8.x de Grafana, consulte [Uso de la versión 8 de Grafana](using-grafana-v8.md).

Use el proveedor de Grafana de Terraform para administrar sus recursos de alertas y aprovisionarlos en su sistema Grafana. La compatibilidad del proveedor de Terraform con Grafana Alerting facilita la creación, la administración y el mantenimiento de toda su pila de Grafana Alerting como código.

Para obtener más información sobre la administración de sus recursos de alertas mediante Terraform, consulte la documentación del [proveedor de Grafana](https://registry.terraform.io/providers/grafana/grafana/latest/docs) en la documentación de Terraform.

Complete las siguientes tareas para crear y administrar sus recursos de alertas con Terraform.

1. Cree una clave de API para el aprovisionamiento.

1. Configure el proveedor de Terraform.

1. Defina sus recursos de alerta en Terraform.

1. Ejecute `terraform apply` para aprovisionar sus recursos de alerta.

## Requisitos previos
<a name="v9-alerting-setup-provision-tf-prerequisites"></a>
+ Asegúrese de tener el [proveedor grafana/grafana Terraform](https://registry.terraform.io/providers/grafana/grafana/1.28.0) 1.27.0 o superior.
+ Compruebe que use Grafana 9.1 o posterior. Si creó su instancia de Amazon Managed Grafana con la versión 9 de Grafana, será verdadero.

## Creación de una clave de API para el aprovisionamiento
<a name="v9-alerting-setup-provision-tf-apikey"></a>

Puede [crear una clave de API de Grafana normal](Using-Grafana-APIs.md) para autenticar Terraform con Grafana. La mayoría de las herramientas existentes que utilizan claves de API deberían funcionar automáticamente con la nueva compatibilidad de Grafana Alerting. Para obtener información específica sobre la creación de claves para su uso con Terraform, consulte [Using Terraform for Amazon Managed Grafana automation](https://aws-observability.github.io/observability-best-practices/recipes/recipes/amg-automation-tf/).

**Creación de una clave de API para el aprovisionamiento**

1. Cree una nueva cuenta de servicio para su canalización de CI.

1. Asigne el rol “Acceder a la API de aprovisionamiento de las reglas de alerta”.

1. Cree un nuevo token para la cuenta de servicio.

1. Asigne un nombre al token y guárdelo para usarlo en Terraform.

También puede usar la autenticación básica. Para ver todos los formatos de autenticación compatibles, consulte [Grafana authentication](https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication) en la documentación de Terraform.

## Configuración del proveedor de Terraform
<a name="v9-alerting-setup-provision-tf-configure"></a>

La compatibilidad de Grafana Alerting se incluye como parte del [proveedor de Terraform de Grafana](https://registry.terraform.io/providers/grafana/grafana/latest/docs).

A continuación, se ofrece un ejemplo que puede usar para configurar el proveedor de Terraform.

```
terraform {
    required_providers {
        grafana = {
            source = "grafana/grafana"
            version = ">= 1.28.2"
        }
    }
}

provider "grafana" {
    url = <YOUR_GRAFANA_URL>
    auth = <YOUR_GRAFANA_API_KEY>
}
```

## Aprovisionamiento de puntos de contacto y plantillas
<a name="v9-alerting-setup-provision-tf-contacts"></a>

Los puntos de contacto conectan una pila de alertas con el mundo exterior. Indican a Grafana cómo conectarse a los sistemas externos y dónde enviar las notificaciones. Hay más de 15 [integraciones](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/contact_point#optional) diferentes entre las que elegir. En este ejemplo, se utiliza un punto de contacto de Slack.

**Aprovisionamiento de puntos de contacto y las plantillas**

1. Copie este bloque de código en un archivo .tf en su máquina local. *<slack-webhook-url>*Sustitúyelo por la URL del webhook de Slack (u otro contacto)

   En este ejemplo, se crea un punto de contacto que envía notificaciones de alerta a Slack.

   ```
   resource "grafana_contact_point" "my_slack_contact_point" {
       name = "Send to My Slack Channel"
   
       slack {
           url = <slack-webhook-url>
           text = <<EOT
   {{ len .Alerts.Firing }} alerts are firing!
   
   Alert summaries:
   {{ range .Alerts.Firing }}
   {{ template "Alert Instance Template" . }}
   {{ end }}
   EOT
       }
   }
   ```

1. Ingrese el texto de la notificación en el campo de texto.

   El campo `text` admite [plantillas al estilo de Go](https://pkg.go.dev/text/template). Esto le permite administrar sus plantillas de notificaciones de Grafana Alerting directamente en Terraform.

1. Ejecute el comando `terraform apply`.

1. Vaya a la interfaz de usuario de Grafana y compruebe los detalles de su punto de contacto.

   No puede editar los recursos aprovisionados mediante Terraform desde la interfaz de usuario. Esto garantiza que su pila de alertas esté siempre sincronizada con su código.

1. Haga clic en **Probar** para verificar que el punto de contacto funciona correctamente.

**nota**  
Puede reutilizar las mismas plantillas en muchos puntos de contacto. En el ejemplo anterior, se incrusta una plantilla compartida mediante la instrucción `{{ template "Alert Instance Template" . }}`  
Luego, este fragmento se puede administrar por separado en Terraform:  

```
resource "grafana_message_template" "my_alert_template" {
    name = "Alert Instance Template"

    template = <<EOT
{{ define "Alert Instance Template" }}
Firing: {{ .Labels.alertname }}
Silence: {{ .SilenceURL }}
{{ end }}
EOT
}
```

## Aprovisionamiento de políticas de notificación y el enrutamiento
<a name="v9-alerting-setup-provision-tf-notifications"></a>

Las políticas de notificación le indican a Grafana cómo enrutar las instancias de alerta, en lugar de hacia dónde. Conectan las alertas de activación con los puntos de contacto previamente definidos mediante un sistema de etiquetas y criterios de coincidencia.

**Aprovisionamiento de políticas de notificación y enrutamiento**

1. Copie este bloque de código en un archivo .tf en su máquina local.

   En este ejemplo, las alertas se agrupan por `alertname`, lo que significa que cualquier notificación procedente de alertas que compartan el mismo nombre se agrupa en el mismo mensaje de Slack.

   Si quiere redirigir notificaciones específicas de forma diferente, puede agregar subpolíticas. Las subpolíticas le permiten aplicar el enrutamiento a diferentes alertas en función de la coincidencia de etiquetas. En este ejemplo, aplicamos un temporizador de silencio a todas las alertas con la etiqueta a=b.

   ```
   resource "grafana_notification_policy" "my_policy" {
       group_by = ["alertname"]
       contact_point = grafana_contact_point.my_slack_contact_point.name
   
       group_wait = "45s"
       group_interval = "6m"
       repeat_interval = "3h"
   
       policy {
           matcher {
               label = "a"
               match = "="
               value = "b"
           }
           group_by = ["..."]
           contact_point = grafana_contact_point.a_different_contact_point.name
           mute_timings = [grafana_mute_timing.my_mute_timing.name]
   
           policy {
               matcher {
                   label = "sublabel"
                   match = "="
                   value = "subvalue"
               }
               contact_point = grafana_contact_point.a_third_contact_point.name
               group_by = ["..."]
           }
       }
   }
   ```

1. En el campo mute\$1timings, vincule un temporizador de silencio con su política de notificaciones.

1. Ejecute el comando `terraform apply`.

1. Vaya a la interfaz de usuario de Grafana y compruebe los detalles de su política de notificaciones.
**nota**  
No puede editar los recursos aprovisionados mediante Terraform desde la interfaz de usuario. Esto garantiza que su pila de alertas esté siempre sincronizada con su código.

1. Haga clic en **Probar** para verificar que el punto de notificación funciona correctamente.

## Aprovisionamiento de temporizadores de silencio
<a name="v9-alerting-setup-provision-tf-mutetiming"></a>

Los temporizadores de silencio permiten silenciar las notificaciones de alerta durante periodos de tiempo definidos.

**Aprovisionamiento de temporizadores de silencio**

1. Copie este bloque de código en un archivo .tf en su máquina local.

   En este ejemplo, las notificaciones de alerta se silencian los fines de semana.

   ```
   resource "grafana_mute_timing" "my_mute_timing" {
       name = "My Mute Timing"
   
       intervals {
           times {
             start = "04:56"
             end = "14:17"
           }
           weekdays = ["saturday", "sunday", "tuesday:thursday"]
           months = ["january:march", "12"]
           years = ["2025:2027"]
       }
   }
   ```

1. Ejecute el comando `terraform apply`.

1. Vaya a la interfaz de usuario de Grafana y compruebe los detalles de su temporizador de silencio.

1. Use el campo `mute_timings` para hacer referencia al temporizador de silencio que acaba de crear en una política de notificaciones. De este modo, se aplicará el temporizador de silencio a algunas o a todas las notificaciones.
**nota**  
No puede editar los recursos aprovisionados mediante Terraform desde la interfaz de usuario. Esto garantiza que su pila de alertas esté siempre sincronizada con su código.

1. Haga clic en **Probar** para verificar que el temporizador de silencio funciona correctamente.

## Aprovisionamiento de reglas de alerta
<a name="v9-alerting-setup-provision-tf-rules"></a>

Las [reglas de alertas](v9-alerting-managerules.md) le permiten enviar alertas de cualquier origen de datos de Grafana. Puede ser un origen de datos que ya haya configurado, o puede [definir sus orígenes de datos en Terraform](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source) junto con sus reglas de alerta.

**Aprovisionamiento de reglas de alerta**

1. Cree el origen de datos que se va a consultar y una carpeta en la que almacenar las reglas.

   En este ejemplo, se usa el origen de datos [Configurar una fuente TestData de datos para realizar pruebas](testdata-data-source.md).

   Las alertas se pueden definir en cualquier origen de datos de backend de Grafana.

   ```
   resource "grafana_data_source" "testdata_datasource" {
       name = "TestData"
       type = "testdata"
   }
   
   resource "grafana_folder" "rule_folder" {
       title = "My Rule Folder"
   }
   ```

1. Defina una regla de alerta.

   Para obtener más información sobre las reglas de alerta, consulte [cómo crear alertas administradas por Grafana](https://grafana.com/blog/2022/08/01/grafana-alerting-video-how-to-create-alerts-in-grafana-9/).

1. Cree un grupo de reglas que contenga una o más reglas.

   En este ejemplo, se usa el grupo de recursos `grafana_rule_group`.

   ```
   resource "grafana_rule_group" "my_rule_group" {
       name = "My Alert Rules"
       folder_uid = grafana_folder.rule_folder.uid
       interval_seconds = 60
       org_id = 1
   
       rule {
           name = "My Random Walk Alert"
           condition = "C"
           for = "0s"
   
           // Query the datasource.
           data {
               ref_id = "A"
               relative_time_range {
                   from = 600
                   to = 0
               }
               datasource_uid = grafana_data_source.testdata_datasource.uid
               // `model` is a JSON blob that sends datasource-specific data.
               // It's different for every datasource. The alert's query is defined here.
               model = jsonencode({
                   intervalMs = 1000
                   maxDataPoints = 43200
                   refId = "A"
               })
           }
   
           // The query was configured to obtain data from the last 60 seconds. Let's alert on the average value of that series using a Reduce stage.
           data {
               datasource_uid = "__expr__"
               // You can also create a rule in the UI, then GET that rule to obtain the JSON.
               // This can be helpful when using more complex reduce expressions.
               model = <<EOT
   {"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"last"},"type":"avg"}],"datasource":{"name":"Expression","type":"__expr__","uid":"__expr__"},"expression":"A","hide":false,"intervalMs":1000,"maxDataPoints":43200,"reducer":"last","refId":"B","type":"reduce"}
   EOT
               ref_id = "B"
               relative_time_range {
                   from = 0
                   to = 0
               }
           }
   
           // Now, let's use a math expression as our threshold.
           // We want to alert when the value of stage "B" above exceeds 70.
           data {
               datasource_uid = "__expr__"
               ref_id = "C"
               relative_time_range {
                   from = 0
                   to = 0
               }
               model = jsonencode({
                   expression = "$B > 70"
                   type = "math"
                   refId = "C"
               })
           }
       }
   }
   ```

1. Vaya a la interfaz de usuario de Grafana y compruebe su regla de alerta.

   De esta forma podrá ver si la regla de alerta se activa. También puede ver una visualización de cada una de las fases de consulta de la regla de alerta.

   Cuando se activa la alerta, Grafana envía una notificación a través de la política que haya definido.

   Por ejemplo, si elige Slack como punto de contacto, [Alertmanager](https://github.com/prometheus/alertmanager) integrado de Grafana publica automáticamente un mensaje en Slack.

# Visualización de los recursos de alerta aprovisionados en Grafana
<a name="v9-alerting-setup-provision-view"></a>

****  
Este tema de documentación está diseñado para los espacios de trabajo de Grafana que admiten la **versión 9.x de Grafana**.  
Para los espacios de trabajo de Grafana que admiten la versión 10.x de Grafana, consulte [Uso de la versión 10 de Grafana](using-grafana-v10.md).  
Para los espacios de trabajo de Grafana que admiten la versión 8.x de Grafana, consulte [Uso de la versión 8 de Grafana](using-grafana-v8.md).

 Puede verificar que sus recursos de alertas se crearon en Grafana.

**Visualización de los recursos aprovisionados en Grafana**

1. Abra su instancia de Grafana.

1. Vaya a Alertas.

1. Haga clic en una carpeta de recursos de alertas, por ejemplo, Reglas de alertas.

   Los recursos aprovisionados se etiquetan como **Aprovisionados**, de modo que queda claro que no se crearon manualmente.

**nota**  
No puede editar los recursos aprovisionados desde Grafana. Solo puede cambiar las propiedades del recurso si cambia el archivo de aprovisionamiento y reinicia Grafana o hace una recarga en caliente. Esto evita que se hagan cambios en el recurso que se sobrescribirían si se volviera a aprovisionar un archivo o si se hiciera una recarga en caliente.