This is a translation of the original English documentation page. Help us make it better.

8 Script

Panoramica

Nella sezione Amministrazione → Script script globali definiti dall'utente può essere configurato e mantenuto.

Script globali, a seconda dell'ambito configurato e anche dall'autorizzazioni dell'utente, sono disponibili per l'esecuzione:

  • dall'host menu in varie posizioni di frontend (Dashboard, Problemi, Latest dati, Mappe, ecc.)
  • dall'evento menu
  • può essere eseguito come un'operazione di azione

Gli script vengono eseguiti su agente Zabbix, server Zabbix (proxy) o Solo server Zabbix. Vedi anche Comando esecuzione.

Sia sull'agente Zabbix che sugli script remoti del proxy Zabbix sono disabilitati di default. Possono essere abilitati da:

  • Per i comandi remoti eseguiti sull'agente Zabbix
    • aggiunta di un parametro AllowKey=system.run[<command>,*] per ogni comando consentito nella configurazione dell'agente, * sta per wait and nowait mode;
  • Per comandi remoti eseguiti su proxy Zabbix
    • Attenzione: non è necessario abilitare i comandi remoti sul proxy Zabbix se i comandi remoti vengono eseguiti sull'agente Zabbix monitorato dal proxy Zabbix. Se, tuttavia, è necessario eseguire i comandi remoti sul proxy Zabbix, impostare il parametro EnableRemoteCommands su '1' nella configurazione del proxy.

Viene visualizzato un elenco di script esistenti con i relativi dettagli.

Dati visualizzati:

Colonna Descrizione
Nome Nome dello script. Facendo clic sul nome dello script si apre lo script modulo di configurazione.
Ambito Ambito dello script: operazione dell'azione, azione manuale dell'host o azione manuale dell'evento. Questa impostazione determina dove è disponibile lo script.
Utilizzato nelle azioni Le azioni in cui viene utilizzato lo script vengono visualizzate.
Tipo Viene visualizzato il tipo di script: comando Webhook, Script, SSH, Telnet o IPMI.
Esegui su Viene visualizzato se lo script verrà eseguito solo sull'agente Zabbix, sul server Zabbix (proxy) o solo sul server Zabbix.
Comandi Vengono visualizzati tutti i comandi da eseguire all'interno dello script.
Gruppo utenti Viene visualizzato il gruppo utenti a cui è disponibile lo script (o Tutti per tutti i gruppi utenti).
Gruppo host Viene visualizzato il gruppo host per cui è disponibile lo script (o Tutti per tutti i gruppi host).
Accesso host Viene visualizzato il livello di autorizzazione per il gruppo host - Lettura o Scrittura. Solo gli utenti con il livello di autorizzazione richiesto avranno accesso all'esecuzione dello script.

Per configurare un nuovo script, fare clic sul pulsante Crea script nel file in alto a destra.

Opzioni di modifica di massa

Un pulsante sotto l'elenco offre un'opzione di modifica di massa:

  • Cancella - cancella gli script

Per utilizzare questa opzione, contrassegnare le caselle di controllo prima dei rispettivi script e fare clic su Elimina.

Utilizzo del filtro

Puoi utilizzare il filtro per visualizzare solo gli script che ti interessano. Per migliori prestazioni di ricerca, i dati vengono cercati con le macro irrisolte.

Il collegamento Filtro è disponibile sopra l'elenco degli script. Se clicchi su di esso, diventa disponibile un filtro in cui è possibile filtrare gli script per nome e portata.

Configurazione di uno script globale¶

¶ ¶ Attributi dello script:¶ ¶ |Parametro|<|Descrizione|¶ |-|----------|----------------------------------- ----|¶ |Nome|<|Nome univoco dello script.
Es. Cancella /tmp filesystem|¶ |Ambito|<|Ambito dello script: operazione dell'azione, azione manuale dell'host o azione manuale dell'evento. Questa impostazione determina dove può essere utilizzato lo script: nei comandi remoti delle operazioni di azione, dal menu host o dal menu evento.
L'impostazione dell'ambito su 'Operazione azione' rende lo script disponibile per tutti gli utenti con accesso a ConfigurazioneAzioni.
Se uno script viene effettivamente utilizzato in un azione, il suo ambito non può essere modificato da "operazione azione".
Supporto macro
L'ambito influisce sulla gamma di macro disponibili. Ad esempio, le macro relative all'utente ({USER.*}) sono supportate negli script per consentire il passaggio di informazioni sull'utente che ha avviato lo script. Tuttavia, non sono supportate se l'ambito dello script è un'operazione di azione, poiché le operazioni di azione vengono eseguite automaticamente.
Per scoprire quali macro sono supportate, cerca "Notifiche e comandi basati su trigger/Comandi basati su trigger", "Script di azione manuale dell'host" e "Script di azione manuale dell'evento" nella tabella macro supportata. Si noti che se una macro può risolversi in un valore con spazi (ad esempio, nome host), non dimenticare di citare se necessario.|¶ |Percorso menu|<|Il percorso del menu desiderato per lo script. Ad esempio, Default o Default/ visualizzerà lo script nella rispettiva directory. I menu possono essere nidificati, ad es. Menu principale/Sottomenu1/Sottomenu2. Quando si accede agli script tramite il menu host/evento nelle sezioni di monitoraggio, saranno organizzati in base alle directory fornite.
Questo campo viene visualizzato solo se 'Azione manuale host' o 'Azione manuale evento' è selezionato come Scope. |¶ |Tipo|<|Fare clic sul rispettivo pulsante per selezionare il tipo di script:
Webhook, Script, SSH, Telnet o IPMI comando.|¶ | |Tipo di script: webhook|<|¶ |^|Parametri|Specifica le variabili webhook come coppie attributo-valore.
Vedi anche: Webhook configurazione multimediale.
Macro e macro utente personalizzate sono supportati nei valori dei parametri. Il supporto delle macro dipende dall'ambito dello script (vedi Ambito sopra).|¶ |^|Script|Inserisci il codice JavaScript nel blocco che appare quando fai clic nel campo del parametro (o sul pulsante visualizza/modifica accanto ad esso).
Il supporto delle macro dipende dall'ambito dello script (vedi * Scope* sopra).
Vedi anche: Webhook configurazione multimediale, Oggetti Javascript aggiuntivi.| ¶ |^|Timeout|Timeout di esecuzione JavaScript (1-60s, predefinito 30s).
I suffissi temporali sono supportati, ad es. 30s, 1m.|¶ | |Tipo di script: Script|<|¶ |^|Esegui su|Fai clic sul rispettivo pulsante per eseguire lo script della shell su:
Zabbix agent - lo script verrà eseguito dall'agente Zabbix (se l'elemento system.run è consentito) sull'host
Zabbix server (proxy) - lo script verrà eseguito dal server Zabbix o dal proxy (se abilitato da EnableRemoteCommands) - a seconda che l'host sia monitorato dal server o dal proxy
Server Zabbix - lo script verrà eseguito solo dal server Zabbix|¶ |^|Comandi|Inserisci il percorso completo dei comandi da eseguire all'interno dello script.
Il supporto delle macro dipende dall'ambito dello script (vedi Ambito sopra). Sono supportate macro utente personalizzate.|¶ | |Tipo di script: SSH|<|¶ |^|Metodo di autenticazione|Seleziona il metodo di autenticazione - password o chiave pubblica.|¶ |^|Nome utente|Inserisci il nome utente.|¶ |^|Password|Inserisci la password.
Questo campo è disponibile se 'Password' è selezionato come metodo di autenticazione.|¶ |^|File della chiave pubblica|Inserisci il percorso del file della chiave pubblica.
Questo campo è disponibile se 'Chiave pubblica' è selezionato come metodo di autenticazione.|¶ |^|File della chiave privata|Inserisci il percorso del file della chiave privata.
Questo campo è disponibile se 'Chiave pubblica' è selezionato come metodo di autenticazione.|¶ |^|Passphrase|Inserisci la passphrase.
Questo campo è disponibile se 'Chiave pubblica' è selezionato come metodo di autenticazione.|¶ |^|Porta|Inserisci la porta.|¶ |^|Comandi|Inserisci i comandi.
Il supporto delle macro dipende dall'ambito dello script (vedi Ambito sopra). Sono supportate macro utente personalizzate.|¶ | |Tipo di script: Telnet|<|¶ |^|Nome utente|Inserisci il nome utente.|¶ |^|Password|Inserisci la password.|¶ |^|Porta|Inserisci la porta.|¶ |^|Comandi|Inserisci i comandi.
Il supporto delle macro dipende dall'ambito dello script (vedi Ambito sopra). Sono supportate macro utente personalizzate.|¶ | |Tipo di script: IPMI|<|¶ |^|Comando|Inserisci il comando IPMI.
Il supporto delle macro dipende dall'ambito dello script (vedi Ambito sopra). Sono supportate macro utente personalizzate.|¶ |Descrizione|<|Inserisci una descrizione per lo script.|¶ |Gruppo host|<|Selezionare il gruppo host per il quale sarà disponibile lo script (o Tutti per tutti i gruppi host).|¶ |Gruppo utenti|<|Seleziona il gruppo utenti a cui sarà disponibile lo script (o Tutti per tutti i gruppi utenti).
Questo campo viene visualizzato solo se 'Azione manuale dell'host' o 'Azione manuale dell'evento' è selezionato come Scope.|¶ |Autorizzazioni host richieste|<|Selezionare il livello di autorizzazione per il gruppo host - Lettura o Scrittura. Solo gli utenti con il livello di autorizzazione richiesto avranno accesso all'esecuzione dello script.
Questo campo viene visualizzato solo se 'Azione manuale dell'host' o 'Azione manuale dell'evento' è selezionato come Scope.|¶ |Abilita conferma|<|Selezionare la casella di controllo per visualizzare un messaggio di conferma prima di eseguire lo script. Questa funzione potrebbe essere particolarmente utile con operazioni potenzialmente pericolose (come uno script di riavvio) o che potrebbero richiedere molto tempo.
Questa opzione viene visualizzata solo se "Azione manuale dell'host" o "Azione manuale dell'evento" è selezionato come Ambito .|¶ |Testo di conferma|<|Inserisci un testo di conferma personalizzato per il popup di conferma abilitato con la casella di controllo in alto (ad esempio, Il sistema remoto verrà riavviato. Sei sicuro?). Per vedere come apparirà il testo, fai clic su Conferma del test accanto al campo.
Sono supportate le macro {HOST.*} e {USER.*}. Sono supportate macro utente personalizzate.
Nota: le macro non verranno espanse durante il test del messaggio di conferma.
Questo campo viene visualizzato solo se "Azione host manuale ' o 'Azione evento manuale' è selezionato come Scope.|

Esecuzione dello script e risultato

Gli script eseguiti dal server Zabbix vengono eseguiti nell'ordine descritto nella Sezione Esecuzione dei comandi. compreso il controllo del codice di uscita. Il risultato dello script verrà visualizzato in a finestra pop-up che verrà visualizzata dopo l'esecuzione dello script.

Nota: Il valore di ritorno dello script è l'output standard insieme a errore standard.

Guarda un esempio di uno script e la finestra dei risultati di seguito:

uname -v
       /tmp/script_non_esistente.sh
       echo "Questo script è stato avviato da {USER.USERNAME}"

Il risultato dello script non visualizza lo script stesso.

Timeout dello script

Agente Zabbix

È possibile che si verifichi una situazione in cui si verifica un timeout durante l'esecuzione dello script.

Guarda un esempio di uno script in esecuzione sull'agente Zabbix e la finestra dei risultati sotto:

dormire 5
       df -h

Il messaggio di errore, in questo caso, è il seguente:

Timeout durante l'esecuzione di uno script di shell.

Per evitare una situazione del genere, si consiglia di ottimizzare lo script stesso (invece di regolare il parametro Timeout su un valore corrispondente (nel nostro caso, > '5') modificando il file Zabbix agent configurazione e Zabbix server configurazione).

Nel caso in cui il parametro Timeout venga ancora modificato in Zabbix agent configuration seguente errore appare il messaggio:

Recupero valore dall'agente non riuscito: ZBX_TCP_READ() scaduto.

Significa che è stata apportata una modifica in Zabbix agent configuration ed è richiesto per modificare l'impostazione Timeout anche in Zabbix server configurazione.

Server/proxy Zabbix

Guarda un esempio di uno script in esecuzione sul server Zabbix e il risultato finestra sottostante:

dormire 11
       df -h

Si consiglia inoltre di ottimizzare lo script stesso (invece di modificare parametro TrapperTimeout a un valore corrispondente (nel nostro caso, > ‘11’) modificando il Zabbix server configurazione).