Parametri di configurazione: Plugin

Vedi i parametri di configurazione per i plugin di Zabbix agent 2:

Principi di configurazione dei plugin

Questa pagina descrive i principi di configurazione dei plugin e le procedure consigliate.

Tutti i plugin vengono configurati utilizzando il parametro Plugins.*, che può essere incluso nel file di configurazione dell'agent 2 di Zabbix oppure nel file di configurazione del plugin. Se un plugin utilizza un file di configurazione separato, il percorso di questo file deve essere specificato nel parametro Include del file di configurazione dell'agent 2 di Zabbix.

Un parametro tipico del plugin ha la seguente struttura:

Plugins.<PluginName>.<Parameter>=<Value>

Inoltre, esistono due gruppi specifici di parametri:

  • Plugins.<PluginName>.Default.<Parameter>=<Value> utilizzato per definire i valori predefiniti dei parametri.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> utilizzato per definire set separati di parametri per diversi target di monitoraggio tramite sessioni denominate.

Tutti i nomi dei parametri devono rispettare i seguenti requisiti:

  • È consigliabile utilizzare le maiuscole nei nomi dei plugin.
  • Il parametro deve iniziare con una lettera maiuscola.
  • I caratteri speciali non sono consentiti.
  • Il livello di annidamento non è soggetto a un limite massimo.
  • Il numero di parametri non è limitato.

Ad esempio, per eseguire i controlli attivi che non hanno un intervallo di aggiornamento di Scheduling subito dopo il riavvio dell'agent, solo per il plugin Uptime, impostare Plugins.Uptime.System.ForceActiveChecksOnStart=1 nel file di configurazione. Analogamente, per impostare un limite personalizzato per i controlli simultanei del plugin CPU, impostare Plugins.CPU.System.Capacity=N nel file di configurazione.

Valori predefiniti

È possibile impostare i valori predefiniti per i parametri relativi alla connessione (URI, nome utente, password, ecc.) nel file di configurazione nel formato:

Plugins.<PluginName>.Default.<Parameter>=<Value>

Ad esempio, Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017, ecc.

Se il valore di tale parametro non viene fornito in una chiave item o nei parametri della sessione denominata, il plugin utilizzerà il valore predefinito. Se anche un parametro predefinito non è definito, verranno utilizzati i valori predefiniti codificati.

Se una chiave item non contiene alcun parametro, Zabbix agent 2 tenterà di raccogliere la metrica utilizzando i valori definiti nella sezione dei parametri predefiniti.

Sessioni denominate

Le sessioni denominate rappresentano un ulteriore livello di parametri del plugin e possono essere utilizzate per specificare insiemi separati di parametri di autenticazione per ciascuna delle istanze monitorate. Ogni parametro di sessione denominata deve avere la seguente struttura:

Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>

Un nome di sessione può essere usato come parametro chiave dell'elemento connString invece di specificare separatamente URI, nome utente e/o password.

Nelle chiavi degli item, il primo parametro può essere sia un connString sia un URI. Se il primo parametro della chiave non corrisponde a nessun nome di sessione, verrà trattato come un URI. Si noti che non è supportato passare credenziali URI incorporate nella chiave dell'item; usare invece i parametri di sessione denominati.

L'elenco dei parametri di sessione denominati disponibili dipende dal plugin.

È possibile sovrascrivere i parametri di sessione specificando nuovi valori nei parametri della chiave dell'item (vedere esempio).

Se un parametro non è definito per la sessione denominata, Zabbix agent 2 utilizzerà il valore definito nel parametro predefinito del plugin.

Priorità dei parametri

I plugin di Zabbix agent 2 cercano i valori dei parametri relativi alla connessione nel seguente ordine:

  1. Il primo parametro della chiave dell'item viene confrontato con i nomi delle sessioni. Se non viene trovato alcun corrispondenza, viene trattato come un valore effettivo; in questo caso, il passaggio 3 verrà saltato. Se viene trovata una corrispondenza, il valore del parametro (di solito un URI) deve essere definito nella sessione denominata.
  2. Gli altri parametri verranno presi dalla chiave dell'item, se definiti.
  3. Se un parametro della chiave dell'item (ad esempio, password) è vuoto, il plugin cercherà il parametro corrispondente della sessione denominata.
  4. Se anche il parametro della sessione non è specificato, verrà utilizzato il valore definito nel corrispondente parametro predefinito.
  5. Se tutto il resto fallisce, il plugin utilizzerà il valore predefinito codificato.

Esempio 1

Monitoraggio di due istanze "MySQL1" e "MySQL2".

Parametri di configurazione:

Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Sessions.MySQL1.User=mysql1_user
Plugins.Mysql.Sessions.MySQL1.Password=unique_password
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://192.0.2.1:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password

Come risultato di questa configurazione, ogni nome di sessione può essere utilizzato come connString in una chiave item, ad esempio mysql.ping[MySQL1] oppure mysql.ping[MySQL2].

Esempio 2

Fornire alcuni dei parametri nella chiave dell'item.

Parametri di configurazione:

Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Sessions.Session1.User=old_username
Plugins.PostgreSQL.Sessions.Session1.Password=session_password

Chiave dell'item: pgsql.ping[session1,new_username,,postgres]

Come risultato di questa configurazione, l'agent si connetterà a PostgreSQL utilizzando i seguenti parametri:

  • URI dal parametro della sessione: 192.0.2.234:5432
  • Nome utente dalla chiave dell'item: new_username
  • Password dal parametro della sessione (poiché è omessa nella chiave dell'item): session_password
  • Nome del database dalla chiave dell'item: postgres

Esempio 3

Raccolta di una metrica usando i parametri di configurazione predefiniti.

Parametri di configurazione:

Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password

Item key: pgsql.ping[,,,postgres]

Come risultato di questa configurazione, l'agent si connetterà a PostgreSQL usando i parametri:

  • URI predefinito: 192.0.2.234:5432
  • Nome utente predefinito: zabbix
  • Password predefinita: password
  • Nome del database dall'item key: postgres

Connessioni

Alcuni plugin supportano la raccolta di metriche da più istanze contemporaneamente. È possibile monitorare sia istanze locali sia remote. Sono supportate connessioni TCP e Unix-socket.

Si consiglia di configurare i plugin in modo che mantengano le connessioni alle istanze in stato aperto. I vantaggi sono la riduzione della congestione di rete, della latenza e dell'uso di CPU e memoria grazie al minor numero di connessioni. La libreria client si occupa di questo.

Il periodo di tempo per cui le connessioni inutilizzate devono rimanere aperte può essere determinato dal parametro Plugins.<PluginName>.KeepAlive. Esempio: Plugins.Memcached.KeepAlive