5 Parametri utente
Panoramica
A volte potresti voler eseguire un controllo agent che non è predefinito in Zabbix. In questo caso, i parametri utente vengono in aiuto.
Puoi scrivere un comando che recuperi i dati necessari 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 rendere effettivo 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 desideri eseguire.
I parametri utente sono comandi eseguiti da Zabbix agent. Tieni presente che possono essere restituiti fino a 16 MB di dati prima dei passaggi 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.