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:

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.