7 Controllo esterno
Panoramica
Un external check è un controllo eseguito da Zabbix server tramite l'esecuzione di uno script shell o di un binario. Tuttavia, quando gli host sono monitorati da un Zabbix proxy, gli external check vengono eseguiti dal proxy.
Gli external check non richiedono alcun agent in esecuzione sull'host monitorato.
La sintassi della chiave dell'item è:
script[<parameter1>,<parameter2>,...]
Dove:
| ARGUMENT | DEFINITION |
|---|---|
| script | Nome di uno script shell o di un 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 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, quindi eventuali permessi di accesso o variabili d'ambiente devono essere gestiti in uno script wrapper, se necessario.
Anche i permessi sul comando devono consentire a quell'utente di eseguirlo.
Sono disponibili per l'esecuzione solo i comandi presenti nella directory specificata.
Non abusare degli external check, 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.