3 Script di avviso personalizzati

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 gestisca 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 del file di configurazione di server.

Ecco un esempio di script di alert personalizzato:

#!/bin/bash

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

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

Host: $host
Value: $value
EOF

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. In questi casi, Zabbix tenterà di ripetere l'esecuzione non riuscita.

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

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:

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 Immetti il nome del file di script (ad esempio, notification.sh) che si trova nella directory specificata nel parametro di configurazione del 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.

I parametri dello script supportano le macro {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} e tutte le macro supportate nelle notifiche, oltre alle user macro.

Consulta i parametri comuni del media type per i dettagli su come configurare i messaggi predefiniti e le opzioni di elaborazione degli alert.

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.

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 del file di configurazione del server.

Testing

Per testare un media type script configurato:

  1. Individua lo script pertinente nell'elenco 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.

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 es. {HOST.HOST}, {ITEM.LASTVALUE}, ecc.) non verranno risolte, poiché durante il test non è presente alcun evento correlato da cui ottenere i dettagli. Nota che anche le macro all'interno delle macro {ALERT.SUBJECT} e {ALERT.MESSAGE} non verranno risolte. Ad esempio, se il valore di {ALERT.SUBJECT} è composto da "Problem: {EVENT.NAME}", la macro {EVENT.NAME} non verrà risolta.

Supporti utente

Una volta configurato il tipo di supporto, vai alla sezione Utenti → Utenti e modifica un profilo utente assegnando questo tipo di supporto all'utente. I passaggi per configurare i supporti utente, comuni a tutti i tipi di supporto, sono descritti nella pagina Tipi di supporto.

Tieni presente che, quando definisci i supporti utente, il campo Invia a non può essere vuoto. Se questo campo non viene utilizzato nello script di avviso, inserisci una qualsiasi combinazione di caratteri supportati per aggirare i requisiti di convalida.