

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

# Configurare gli avvisi
<a name="v9-alerting-setup"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Configura le funzionalità e le integrazioni di cui hai bisogno per creare e gestire i tuoi avvisi.

**Topics**
+ [Aggiungere un Alertmanager esterno](v9-alerting-setup-alertmanager.md)
+ [Fornitura di risorse Grafana Alerting](v9-alerting-setup-provision.md)

# Aggiungere un Alertmanager esterno
<a name="v9-alerting-setup-alertmanager"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Configura Grafana per utilizzare un Alertmanager esterno come unico Alertmanager per ricevere tutti i tuoi avvisi. Questo Alertmanager esterno può quindi essere configurato e amministrato dall'interno di Grafana stessa.

Dopo aver aggiunto Alertmanager, puoi utilizzare l'interfaccia utente Grafana Alerting per gestire silenzi, punti di contatto e politiche di notifica. Un'opzione a discesa in queste pagine consente di passare da un gestore di avvisi all'altro.

**Nota**  
A partire da Grafana 9.2, la configurazione URL dei gestori di avvisi esterni dalla scheda Amministrazione nella pagina Avvisi è obsoleta. Verrà rimosso in una versione futura.

I gestori di avvisi esterni dovrebbero ora essere configurati come fonti di dati utilizzando Grafana Configuration dal menu di navigazione principale di Grafana. Ciò consente di gestire i punti di contatto e le politiche di notifica dei gestori di avvisi esterni dall'interno di Grafana e crittografa anche le credenziali di autenticazione di base HTTP che in precedenza erano visibili durante la configurazione dei gestori di avvisi esterni tramite URL.

Per aggiungere un Alertmanager esterno, completa i seguenti passaggi.

1. Fai clic su Configurazione, quindi su Origini dati.

1. Cerca Alertmanager.

1. Scegli la tua implementazione e compila i campi della pagina, come richiesto.

   Se stai effettuando il provisioning della tua fonte di dati, imposta il flag `handleGrafanaManagedAlerts` nel `jsonData` campo per inviare avvisi gestiti da Grafana `true` a questo Alertmanager.
**Nota**  
Sono supportate le implementazioni Prometheus, Grafana Mimir e Cortex di Alertmanager. Per Prometheus, i punti di contatto e le politiche di notifica sono di sola lettura nell'interfaccia utente di Grafana Alerting.

1. Fai clic su Salva e prova.

# Fornitura di risorse Grafana Alerting
<a name="v9-alerting-setup-provision"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

L'infrastruttura di allarme è spesso complessa, con molte parti della pipeline che spesso risiedono in luoghi diversi. La scalabilità di tutto questo tra più team e organizzazioni è un compito particolarmente impegnativo. Grafana Alerting Provisioning semplifica questo processo consentendoti di creare, gestire e mantenere i dati di avviso nel modo più adatto alla tua organizzazione.

Ci sono due opzioni tra cui scegliere:

1. Effettua il provisioning delle tue risorse di avviso utilizzando l'API HTTP Alerting Provisioning.
**Nota**  
In genere, non è possibile modificare le regole di avviso fornite tramite API dall'interfaccia utente di Grafana.  
Per abilitare la modifica, aggiungi l' x-disable-provenanceintestazione alle seguenti richieste quando crei o modifichi le regole di avviso nell'API:  

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

1. Fornisci le tue risorse di avviso utilizzando Terraform.

**Nota**  
Attualmente, il provisioning for Grafana Alerting supporta regole di avviso, punti di contatto, tempi di silenziamento e modelli. Le risorse di avviso fornite utilizzando il provisioning di file o Terraform possono essere modificate solo nella fonte che le ha create e non dall'interno di Grafana o da qualsiasi altra fonte. Ad esempio, se esegui il provisioning delle risorse di avviso utilizzando file dal disco, non puoi modificare i dati in Terraform o dall'interno di Grafana.

**Topics**
+ [Crea e gestisci risorse di avviso utilizzando Terraform](v9-alerting-setup-provision-terraform.md)
+ [Visualizzazione delle risorse di avviso assegnate a Grafana](v9-alerting-setup-provision-view.md)

# Crea e gestisci risorse di avviso utilizzando Terraform
<a name="v9-alerting-setup-provision-terraform"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Usa il provider Grafana di Terraform per gestire le tue risorse di avviso e fornirle nel tuo sistema Grafana. Il supporto del provider Terraform per Grafana Alerting semplifica la creazione, la gestione e la manutenzione dell'intero stack Grafana Alerting come codice.

Per ulteriori informazioni sulla gestione delle risorse di avviso utilizzando Terraform, consulta la documentazione di [Grafana Provider](https://registry.terraform.io/providers/grafana/grafana/latest/docs) nella documentazione di Terraform.

Completa le seguenti attività per creare e gestire le tue risorse di avviso utilizzando Terraform.

1. Crea una chiave API per il provisioning.

1. Configura il provider Terraform.

1. Definisci le tue risorse di avviso in Terraform.

1. Corri `terraform apply` a fornire le tue risorse di avviso.

## Prerequisiti
<a name="v9-alerting-setup-provision-tf-prerequisites"></a>
+ Assicurati di avere il [provider grafana/grafana Terraform](https://registry.terraform.io/providers/grafana/grafana/1.28.0) 1.27.0 o versione successiva.
+ Assicurati di utilizzare Grafana 9.1 o versioni successive. Se hai creato la tua istanza Amazon Managed Grafana con Grafana versione 9, questo sarà vero.

## Crea una chiave API per il provisioning
<a name="v9-alerting-setup-provision-tf-apikey"></a>

Puoi [creare una normale chiave API Grafana](Using-Grafana-APIs.md) per autenticare Terraform con Grafana. La maggior parte degli strumenti esistenti che utilizzano chiavi API dovrebbe funzionare automaticamente con il nuovo supporto Grafana Alerting. Per informazioni specifiche sulla creazione di chiavi da utilizzare con Terraform, consulta [Using Terraform for Amazon Managed Grafana automation](https://aws-observability.github.io/observability-best-practices/recipes/recipes/amg-automation-tf/).

**Per creare una chiave API per il provisioning**

1. Crea un nuovo account di servizio per la tua pipeline CI.

1. Assegna il ruolo «Accedi all'API di provisioning delle regole di avviso».

1. Crea un nuovo token per l'account di servizio.

1. Assegna un nome e salva il token per utilizzarlo in Terraform.

In alternativa, puoi utilizzare l'autenticazione di base. Per visualizzare tutti i formati di autenticazione supportati, consulta l'[autenticazione Grafana](https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication) nella documentazione di Terraform.

## Configura il provider Terraform
<a name="v9-alerting-setup-provision-tf-configure"></a>

[Il supporto Grafana Alerting è incluso come parte del provider Grafana Terraform.](https://registry.terraform.io/providers/grafana/grafana/latest/docs)

Di seguito è riportato un esempio che è possibile utilizzare per configurare il provider Terraform.

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

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

## Fornisci punti di contatto e modelli
<a name="v9-alerting-setup-provision-tf-contacts"></a>

I punti di contatto collegano uno stack di avvisi al mondo esterno. Spiegano a Grafana come connettersi ai sistemi esterni e dove inviare le notifiche. Ci sono oltre quindici diverse [integrazioni](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/contact_point#optional) tra cui scegliere. Questo esempio utilizza un punto di contatto Slack.

**Per fornire punti di contatto e modelli**

1. Copia questo blocco di codice in un file.tf sul tuo computer locale. *<slack-webhook-url>*Sostituiscilo con l'URL del webhook di Slack (o un altro contatto)

   Questo esempio crea un punto di contatto che invia notifiche di avviso 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. Inserisci il testo per la notifica nel campo di testo.

   Il `text` campo supporta modelli in [stile Go.](https://pkg.go.dev/text/template) Ciò ti consente di gestire i tuoi modelli di notifica Grafana Alerting direttamente in Terraform.

1. Esegui il comando `terraform apply`.

1. Vai all'interfaccia utente di Grafana e controlla i dettagli del tuo punto di contatto.

   Non è possibile modificare le risorse fornite tramite Terraform dall'interfaccia utente. Ciò garantisce che lo stack di avvisi rimanga sempre sincronizzato con il codice.

1. Fai clic su **Test** per verificare che il punto di contatto funzioni correttamente.

**Nota**  
Puoi riutilizzare gli stessi modelli in molti punti di contatto. Nell'esempio precedente, un modello condiviso viene incorporato utilizzando l'istruzione `{{ template "Alert Instance Template" . }}`  
Questo frammento può quindi essere gestito separatamente in 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
}
```

## Fornisci politiche e routing di notifica
<a name="v9-alerting-setup-provision-tf-notifications"></a>

Le politiche di notifica indicano a Grafana come indirizzare le istanze di avviso, anziché dove. Collegano gli avvisi di attivazione ai punti di contatto precedentemente definiti utilizzando un sistema di etichette e abbinatori.

**Per fornire politiche di notifica e routing**

1. Copia questo blocco di codice in un file.tf sul tuo computer locale.

   In questo esempio, gli avvisi sono raggruppati per`alertname`, il che significa che tutte le notifiche provenienti da avvisi con lo stesso nome vengono raggruppate nello stesso messaggio Slack.

   Se desideri indirizzare notifiche specifiche in modo diverso, puoi aggiungere delle politiche secondarie. Le politiche secondarie consentono di applicare il routing a diversi avvisi in base alla corrispondenza delle etichette. In questo esempio, applichiamo una tempistica di silenziamento a tutti gli avvisi con l'etichetta 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. Nel campo mute\$1timings, collega una tempistica di silenziamento alla tua politica di notifica.

1. Esegui il comando `terraform apply`.

1. Vai all'interfaccia utente di Grafana e controlla i dettagli della tua politica di notifica.
**Nota**  
Non è possibile modificare le risorse fornite da Terraform dall'interfaccia utente. Ciò garantisce che lo stack di avvisi rimanga sempre sincronizzato con il codice.

1. Fai clic su **Test** per verificare che il punto di notifica funzioni correttamente.

## Fornisci tempi di silenziamento
<a name="v9-alerting-setup-provision-tf-mutetiming"></a>

Le tempistiche di silenziamento offrono la possibilità di disattivare le notifiche di avviso per periodi di tempo definiti.

**Per fornire tempi di silenziamento**

1. Copia questo blocco di codice in un file.tf sul tuo computer locale.

   In questo esempio, le notifiche di avviso vengono disattivate nei fine settimana.

   ```
   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. Esegui il comando `terraform apply`.

1. Vai all'interfaccia utente di Grafana e controlla i dettagli della tua tempistica di silenziamento.

1. Fai riferimento alla tempistica di silenziamento appena creata in una politica di notifica utilizzando il campo. `mute_timings` In questo modo la tempistica di silenziamento verrà applicata ad alcune o a tutte le notifiche.
**Nota**  
Non è possibile modificare le risorse fornite da Terraform dall'interfaccia utente. Ciò garantisce che lo stack di avvisi rimanga sempre sincronizzato con il codice.

1. Fai clic su **Test** per verificare che la tempistica di silenziamento funzioni correttamente.

## Fornisci regole di avviso
<a name="v9-alerting-setup-provision-tf-rules"></a>

[Le regole di avviso](v9-alerting-managerules.md) consentono di inviare avvisi su qualsiasi fonte di dati Grafana. Questa può essere una fonte di dati che hai già configurato, oppure puoi [definire le tue fonti di dati in Terraform](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source) insieme alle regole di avviso.

**Per fornire regole di avviso**

1. Crea una fonte di dati su cui interrogare e una cartella in cui archiviare le regole.

   In questo esempio, viene utilizzata la fonte di [Configurare un'origine TestData dati per i test](testdata-data-source.md) dati.

   Gli avvisi possono essere definiti su qualsiasi origine dati di backend in Grafana.

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

1. Definisci una regola di avviso.

   Per ulteriori informazioni sulle regole di avviso, consulta [come creare avvisi gestiti da Grafana](https://grafana.com/blog/2022/08/01/grafana-alerting-video-how-to-create-alerts-in-grafana-9/).

1. Crea un gruppo di regole contenente una o più regole.

   In questo esempio, viene utilizzato il gruppo di `grafana_rule_group` risorse.

   ```
   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. Vai all'interfaccia utente di Grafana e controlla la tua regola di avviso.

   Puoi vedere se la regola di avviso è attiva. È inoltre possibile visualizzare una visualizzazione di ciascuna delle fasi di interrogazione della regola di avviso.

   Quando viene attivato l'avviso, Grafana indirizza una notifica attraverso la politica che hai definito.

   Ad esempio, se hai scelto Slack come punto di contatto, l'[Alertmanager](https://github.com/prometheus/alertmanager) integrato di Grafana pubblica automaticamente un messaggio su Slack.

# Visualizzazione delle risorse di avviso assegnate a Grafana
<a name="v9-alerting-setup-provision-view"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

 Puoi verificare che le tue risorse per gli avvisi siano state create a Grafana.

**Per visualizzare le risorse assegnate a Grafana**

1. Apri l'istanza Grafana.

1. Vai a Avvisi.

1. Fai clic su una cartella di risorse per gli avvisi, ad esempio Regole di avviso.

   Le risorse assegnate sono etichettate come **Provisioned**, in modo che sia chiaro che non sono state create manualmente.

**Nota**  
Non è possibile modificare le risorse assegnate da Grafana. È possibile modificare le proprietà della risorsa solo modificando il file di provisioning e riavviando Grafana o effettuando un hot reload. Ciò impedisce che vengano apportate modifiche alla risorsa che verrebbero sovrascritte se si rifornisse un file o si effettuasse un hot reload.