5 Parametri utente

Panoramica

A volte potresti voler eseguire un controllo dell'agent che non è predefinito in Zabbix. È qui che i parametri utente vengono in aiuto.

Puoi scrivere un comando che recupera 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 quando configuri un item. Inserisci una chiave a tua scelta, facile da richiamare (deve essere univoca all'interno di un host).

Riavvia l'agent oppure usa l'opzione di controllo a runtime dell'agent per applicare il nuovo parametro, ad esempio:

zabbix_agentd -R userparameter_reload

Quindi, quando configuri 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. Nota che possono essere restituiti fino a 16 MB di dati prima delle fasi di preprocessing del valore dell'item.

/bin/sh viene usato come interprete della riga di comando nei sistemi operativi UNIX. I parametri utente rispettano il timeout del controllo dell'agent; se il timeout viene raggiunto, il processo del parametro utente forkato viene terminato.

Vedi anche:

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ò essere la base per creare diversi item.

I parametri utente flessibili hanno la seguente sintassi:

UserParameter=key[*],command
Parameter Description
Key Chiave univoca dell'item. La [*] definisce che questa chiave accetta parametri all'interno delle 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 dell'item.
Zabbix analizza i parametri racchiusi in [ ] della chiave dell'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 di 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, questo tipo di elaborazione dei riferimenti viene ignorato e, pertanto, non è necessaria alcuna quotatura del simbolo $.

Per impostazione predefinita, alcuni caratteri non sono consentiti nei parametri utente. 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.