[comment]: # ({fc0a59fb-e25ccc09})
# 3 Script di avviso personalizzati

[comment]: # ({/fc0a59fb-e25ccc09})

[comment]: # ({dbb571ef-bc410af8})
### Panoramica

Se non sei soddisfatto dei media type esistenti per l'invio degli alert, esiste un modo alternativo per farlo.
Puoi creare uno script che gestirà la notifica nel modo desiderato.

Gli script di alert personalizzati vengono eseguiti su Zabbix server.
Questi script devono trovarsi nella directory specificata nel parametro [AlertScriptsPath](/manual/appendix/config/zabbix_server#alertscriptspath) del file di configurazione del server.

Ecco un esempio di script di alert personalizzato:

```bash
#!/bin/bash

to=$1
subject=$2
body=$3
host=$4
value=$5

cat <<EOF | mail -s "$subject" "$to"
$body

Host: $host
Value: $value
EOF
```

::: noteimportant
Zabbix controlla il codice di uscita dei comandi e degli script eseguiti.
Qualsiasi codice di uscita diverso da **0** viene considerato un errore di [esecuzione del comando](/manual/appendix/command_execution).
In questi casi, Zabbix tenterà di ripetere l'esecuzione non riuscita.
:::

Le variabili di ambiente non vengono preservate né create per lo script, quindi devono essere gestite esplicitamente.

[comment]: # ({/dbb571ef-bc410af8})

[comment]: # ({9d81bec0-47055351})
### Configurazione

Per configurare script di avviso personalizzati come media type:

1. Vai su *Alerts → Media types*.
2. Fai clic su *Create media type*.

La scheda **Media type** contiene gli attributi generali del media type:

![](../../../../../assets/en/manual/config/notifications/media/media_script.png){width="600"}

Tutti i campi di input obbligatori sono contrassegnati da un asterisco rosso.

I seguenti parametri sono specifici per il media type script:

|Parameter|Description|
|--|--------|
|*Script name*|Inserisci il nome del file di script (ad esempio, notification.sh) che si trova nella directory specificata nel parametro di configurazione del server [AlertScriptsPath](/manual/appendix/config/zabbix_server#alertscriptspath).|
|*Script parameters*|Aggiungi parametri opzionali dello script che verranno passati allo script come argomenti della riga di comando nell'ordine in cui sono definiti.<br><br>I parametri dello script supportano le macro {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} e tutte le [macro](/manual/appendix/macros/supported_by_location) supportate nelle notifiche, oltre alle [user macro](/manual/appendix/macros/supported_by_location_user).|

Consulta i [parametri comuni dei media type](/manual/config/notifications/media#common-parameters) per i dettagli su come configurare i messaggi predefiniti e le opzioni di elaborazione degli avvisi.

::: notewarning
Anche se uno script di avviso non utilizza i messaggi predefiniti, i modelli di messaggio per i tipi di operazione usati da questo media type devono comunque essere definiti.
In caso contrario, la notifica non verrà inviata.
:::

::: noteimportant
Se è configurato più di un media type script, questi script possono essere elaborati in parallelo dai processi alerter.
Il numero totale di processi alerter è limitato dal parametro [`StartAlerters`](/manual/appendix/config/zabbix_server#startalerters) del file di configurazione del server.
:::

[comment]: # ({/9d81bec0-47055351})

[comment]: # ({38908152-6a270eac})
### Testing

Per testare un media type script configurato:

1. Individua lo script pertinente nell'[elenco](/manual/config/notifications/media#overview) dei media type.

2. Fai clic su *Test* nell'ultima colonna dell'elenco; si aprirà un modulo di test in una finestra pop-up.
Il modulo di test conterrà lo stesso numero di parametri configurati per il media type script.

3. Modifica i valori dei parametri dello script, se necessario. La modifica influisce solo sulla procedura di test; i valori effettivi non verranno modificati.

4. Fai clic su *Test*.

![](../../../../../assets/en/manual/config/notifications/media/script_test.png){width="600"}

::: noteclassic
Quando si testa un media type script configurato, {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} e le macro utente verranno risolte nei rispettivi valori,
ma le macro correlate agli eventi (ad esempio, {HOST.HOST}, {ITEM.LASTVALUE}, ecc.) non verranno risolte, poiché durante il test non esiste un evento correlato da cui ottenere i dettagli.
Nota che anche le macro contenute in {ALERT.SUBJECT} e {ALERT.MESSAGE} non verranno risolte.
Ad esempio, se il valore di {ALERT.SUBJECT} è composto da "Problema: {EVENT.NAME}", allora la macro {EVENT.NAME} non verrà risolta.
:::

[comment]: # ({/38908152-6a270eac})

[comment]: # ({df584c5a-525cb972})
### Media utente

Una volta configurato il tipo di media, vai alla sezione *Users → Users* ed esegui la modifica di un profilo utente assegnando questo tipo di media all'utente.
I passaggi per configurare il media utente, comuni a tutti i tipi di media, sono descritti nella pagina [Media types](/manual/config/notifications/media#user-media).

Nota che, quando si definisce il media utente, il campo *Send to* non può essere vuoto.
Se questo campo non viene utilizzato nello script di avviso, inserisci qualsiasi combinazione di caratteri supportati per aggirare i requisiti di convalida.

[comment]: # ({/df584c5a-525cb972})
