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 best practice.

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

Un tipico parametro del plugin ha la seguente struttura:

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

Inoltre, esistono due gruppi specifici di parametri:

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

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

Tutti i nomi dei parametri devono rispettare i seguenti requisiti:

  • Si consiglia di scrivere i nomi dei plugin con la lettera iniziale maiuscola.
  • Il parametro deve essere scritto con la lettera iniziale maiuscola.
  • I caratteri speciali non sono consentiti.
  • La nidificazione non è limitata da un livello massimo.
  • Il numero di parametri non è limitato.

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

Valori predefiniti

È possibile impostare valori predefiniti per i parametri relativi alla connessione (URI, username, 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 un valore per tale parametro non viene fornito in una chiave item o nei parametri della named session, il plugin utilizzerà il valore predefinito. Se anche un parametro predefinito non è definito, verranno utilizzati i valori predefiniti codificati.

Se una chiave item non ha 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