11 Controlli esterni
Panoramica
Il controllo esterno è un controllo eseguito da Zabbix server avviando uno script shell o un file binario. Tuttavia, quando gli host sono monitorati da uno Zabbix proxy, i controlli esterni vengono eseguiti dal proxy.
I controlli esterni non richiedono alcun agent in esecuzione su un host monitorato.
La sintassi della chiave item è:
script[<parameter1>,<parameter2>,...]
Dove:
| ARGUMENT | DEFINITION |
|---|---|
| script | Nome di uno script shell o di un file binario. |
| parameter(s) | Parametri opzionali della riga di comando. |
Se non si desidera passare alcun parametro allo script, è possibile usare:
script[] or
script
Zabbix server o proxy cercherà nella directory specificata per gli script esterni ed eseguirà il comando (vedere il parametro ExternalScripts nel file di configurazione di Zabbix server/proxy).
Il comando verrà eseguito con lo stesso utente di Zabbix server/proxy, pertanto eventuali permessi di accesso o variabili d'ambiente dovranno essere gestiti in uno script wrapper, se necessario.
Anche i permessi del comando devono consentire a tale utente di eseguirlo.
Solo i comandi presenti nella directory specificata sono disponibili per l'esecuzione.
Non abusare dei controlli esterni, poiché ogni script richiede l'avvio di un processo fork da parte di Zabbix server/proxy, e l'esecuzione di molti script può ridurre significativamente le prestazioni di Zabbix.
Esempio di utilizzo
Esecuzione dello script check_oracle.sh con il primo parametro '-h'. Il secondo parametro verrà sostituito con l'indirizzo IP o il nome DNS, a seconda della selezione nelle proprietà del host.
check_oracle.sh["-h","{HOST.CONN}"]
Supponendo che il host sia configurato per utilizzare un indirizzo IP, il server/proxy Zabbix eseguirà:
check_oracle.sh '-h' '192.168.1.4'
Risultato del controllo esterno
Il valore restituito da un controllo esterno è l'output standard insieme all'errore standard prodotto dal controllo.
Un item che restituisce testo (informazioni di tipo carattere, log o testo) non diventerà unsupported in caso di output sull'errore standard.
Il valore restituito è limitato a 16 MB (inclusi gli spazi finali che vengono troncati); si applicano anche i limiti del database.
Se lo script richiesto non viene trovato oppure Zabbix server/proxy non dispone delle autorizzazioni per eseguirlo, l'item diventerà unsupported e verrà visualizzato un messaggio di errore corrispondente.
In caso di timeout, l'item diventerà unsupported, verrà visualizzato un messaggio di errore corrispondente e il processo creato tramite fork per lo script verrà terminato.