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:
- Tutorial passo per passo sull'uso 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ò 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.