5 Parametri utente
Panoramica
A volte potresti voler eseguire un controllo agent che non è predefinito in Zabbix. In questo caso entrano in aiuto i parametri utente.
Puoi scrivere un comando che recuperi i dati di cui hai bisogno e includerlo nel parametro utente nel file di configurazione dell'agent (parametro di configurazione 'UserParameter').
Un parametro utente ha la seguente sintassi:
UserParameter=<key>,<command>
Come puoi vedere, un parametro utente contiene anche una chiave. La chiave sarà necessaria durante la configurazione di un item. Inserisci una chiave a tua scelta che sia facile da richiamare (deve essere univoca all'interno di un host).
Riavvia l'agent oppure usa l'opzione di controllo runtime dell'agent per applicare il nuovo parametro, ad esempio:
zabbix_agentd -R userparameter_reload
Quindi, durante la configurazione di un item, inserisci la chiave per fare riferimento al comando del parametro utente che vuoi eseguire.
I parametri utente sono comandi eseguiti da Zabbix agent. Tieni presente che possono essere restituiti fino a 16 MB di dati prima delle fasi di pre-elaborazione del valore dell'item.
/bin/sh viene utilizzato come interprete della riga di comando nei sistemi operativi UNIX. I parametri utente rispettano il timeout del controllo agent; se il timeout viene raggiunto, il processo del parametro utente generato tramite fork viene terminato.
Vedi anche:
- Tutorial passo passo sull'utilizzo dei parametri utente
- Esecuzione dei comandi
Esempi di parametri utente semplici
Un comando semplice:
UserParameter=ping,echo 1
L'agent restituirà sempre '1' per un item con chiave 'ping'.
Un esempio più complesso:
UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive
L'agent restituirà '1' se il server MySQL è attivo, altrimenti '0'.
Parametri utente flessibili
I parametri utente flessibili accettano parametri con la chiave. In questo modo, un parametro utente flessibile può costituire la base per creare diversi item.
I parametri utente flessibili hanno la seguente sintassi:
UserParameter=key[*],command
| Parameter | Description |
|---|---|
| Key | Chiave item univoca. [*] definisce che questa chiave accetta parametri tra parentesi quadre. I parametri vengono forniti durante la configurazione dell'item. |
| Command | Comando da eseguire per valutare il valore della chiave. Solo per i parametri utente flessibili: È possibile usare riferimenti posizionali $1…$9 nel comando per fare riferimento al rispettivo parametro nella chiave item. Zabbix analizza i parametri racchiusi tra [ ] della chiave item e sostituisce di conseguenza $1,...,$9 nel comando. $0 verrà sostituito dal comando originale (prima dell'espansione di $0,...,$9) da eseguire. I riferimenti posizionali vengono interpretati indipendentemente dal fatto che siano racchiusi tra virgolette doppie (") o singole ('). Per usare i riferimenti posizionali senza modificarli, specificare un doppio simbolo del dollaro: ad esempio, awk '{print $$2}'. In questo caso $$2 diventerà effettivamente $2 durante l'esecuzione del comando. |
I riferimenti posizionali con il simbolo $ vengono cercati e sostituiti da Zabbix agent solo per i parametri utente flessibili. Per i parametri utente semplici, tale elaborazione dei riferimenti viene saltata e, pertanto, non è necessario alcun escaping del simbolo $.
Alcuni caratteri non sono consentiti nei parametri utente per impostazione predefinita. Per l'elenco completo dei caratteri, vedere UnsafeUserParameters.
Esempio 1
Qualcosa di molto semplice:
UserParameter=ping[*],echo $1
Possiamo definire un numero illimitato di item per il monitoraggio, tutti con il formato ping[qualcosa].
- ping[0] - restituirà sempre '0'
- ping[aaa] - restituirà sempre 'aaa'
Esempio 2
Aggiungiamo più funzionalità!
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive
Questo parametro può essere utilizzato per monitorare la disponibilità del database MySQL. Possiamo passare nome utente e password:
mysql.ping[zabbix,our_password]
Esempio 3
Quante righe corrispondono a un'espressione regolare in un file?
UserParameter=wc[*],grep -c "$2" $1
Questo parametro può essere utilizzato per calcolare il numero di righe in un file.
wc[/etc/passwd,root]
wc[/etc/services,zabbix]
Risultato del comando
Il valore restituito dal comando è l'output standard insieme all'errore standard prodotto dal comando.
Un item che restituisce testo (informazioni di tipo character, log o text) non diventerà unsupported in caso di output sull'errore standard.
Il valore restituito è limitato a 16MB (inclusi gli spazi finali che vengono troncati); si applicano anche i limiti del database.
I parametri utente che restituiscono testo (informazioni di tipo character, log o text) possono anche restituire spazi vuoti. In caso di risultato non valido, l'item diventerà unsupported.