Agent 2

Panoramica

Zabbix agent 2 è una nuova generazione di Zabbix agent, scritta in Go (con parte del codice C riutilizzato da Zabbix agent). È progettato per:

  • Ridurre il numero di connessioni TCP;
  • Fornire una migliore concorrenza dei controlli;
  • Essere facilmente estendibile con plugin che forniscono controlli semplici con codice minimo e supportano controlli complessi costituiti da script a lunga esecuzione e raccolta autonoma dei dati con reporting periodico;
  • Funzionare come sostituto di Zabbix agent, supportando tutte le funzionalità precedenti.

Tutte le metriche in Zabbix agent 2 vengono raccolte dai plugin.

Queste funzionalità sono specifiche dei plugin:

  • Intervalli pianificati e flessibili sia per i controlli passivi sia per quelli attivi
  • Gestione della coda delle attività in relazione alla pianificazione e alla concorrenza delle attività
  • Timeout a livello di plugin
  • Verifica di compatibilità di Zabbix agent 2 e dei relativi plugin all'avvio

Esistono due tipi di plugin:

Puoi anche creare i tuoi plugin.

I plugin creati personalemente non devono essere incorporati in agent 2. Puoi aggiungerli come plugin caricabili, semplificando così la creazione di plugin per nuove metriche.

I plugin caricabili possono essere aggiunti in fase di esecuzione senza ricompilare Zabbix agent 2.

Vedi anche:

Controlli passivi e attivi

Zabbix agent 2 supporta i controlli passivi e attivi, analogamente a Zabbix agent. Inoltre, i controlli attivi di Zabbix agent 2 supportano intervalli flessibili/pianificati e la concorrenza dei controlli all'interno di un unico server attivo.

Per impostazione predefinita, dopo un riavvio, Zabbix agent 2 pianifica la prima raccolta dei dati per i controlli attivi in un momento condizionatamente casuale all'interno dell'intervallo di aggiornamento dell'item, per evitare picchi nell'utilizzo delle risorse. Per eseguire immediatamente dopo il riavvio dell'agent i controlli attivi che non hanno un intervallo di aggiornamento Scheduling, impostare nel file di configurazione il parametro ForceActiveChecksOnStart (a livello globale) oppure il parametro del plugin Plugins.<Plugin name>.System.ForceActiveChecksOnStart (influisce solo sui controlli del plugin specificato). Se impostato, il parametro a livello di plugin sostituirà il parametro globale.

Verifica della concorrenza

Le verifiche provenienti da plugin diversi possono essere eseguite in modo concorrente. Il numero di verifiche concorrenti all'interno di un singolo plugin è limitato dall'impostazione della capacità del plugin. Ogni plugin può avere un'impostazione di capacità hardcoded (1000 è il valore predefinito) che può essere ridotta usando l'impostazione Plugins.<PluginName>.System.Capacity=N nel parametro di configurazione Plugins.

Piattaforme supportate

Per le piattaforme supportate, fare riferimento alla pagina Requisiti.

Agent 2 su sistemi Unix-like

Zabbix agent 2 su sistemi Unix-like viene eseguito sull'host monitorato.

Installazione

Zabbix agent 2 può essere installato su sistemi basati su Linux utilizzando uno dei seguenti metodi:

  • Pacchetti Zabbix - selezionare il componente Agent 2 (dopo aver scelto la versione di Zabbix, la distribuzione OS e la versione OS) e seguire le istruzioni;
  • Sorgenti Zabbix - scaricare i file sorgente e compilare l'agent configurando con l'opzione --enable-agent2.

Le funzionalità di monitoraggio di Zabbix agent 2 possono essere estese con plugin caricabili, disponibili separatamente. Per i dettagli, vedere Plugin caricabili.

Se installato come pacchetto

Zabbix agent 2 viene eseguito come processo in primo piano e si affida a un gestore di servizi esterno (ad esempio, systemd) per l'esecuzione in background. Zabbix agent 2 non dispone del supporto integrato per la daemonizzazione su Linux.

L'agent può essere avviato eseguendo:

systemctl start zabbix-agent2

Per arrestare, riavviare o verificare lo stato di Zabbix agent 2, usare i seguenti comandi:

systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
Avvio manuale

È possibile avviare Zabbix agent individuando il binario zabbix_agent2 ed eseguendolo direttamente; ad esempio:

zabbix_agent2

Agent 2 sui sistemi Windows

Zabbix agent 2 viene eseguito come processo autonomo; tuttavia, può essere eseguito anche come servizio Windows.

Installazione

Zabbix agent 2 può essere installato su Windows utilizzando uno dei seguenti metodi:

Le funzionalità di monitoraggio di Zabbix agent 2 possono essere estese con plugin caricabili, disponibili separatamente. Per i dettagli, vedere Plugin caricabili.

Vedere la pagina Zabbix agent su Microsoft Windows per ulteriori dettagli sull'installazione di Zabbix agent 2 (da un archivio ZIP) come servizio Windows.

Opzioni

I seguenti parametri della riga di comando possono essere utilizzati con Zabbix agent 2:

Parametro Descrizione
agent UNIX e Windows
-c --config <config-file> Percorso del file di configurazione.
È possibile utilizzare questa opzione per specificare un file di configurazione diverso da quello predefinito.
-f --foreground Esegue Zabbix agent in primo piano (predefinito: true).
-p --print Stampa gli item conosciuti ed esce.
Per restituire anche i risultati dei parametri utente, è necessario specificare il file di configurazione (se non si trova nella posizione predefinita).
-t --test <item key> Verifica l'item specificato ed esce.
Per restituire anche i risultati dei parametri utente, è necessario specificare il file di configurazione (se non si trova nella posizione predefinita).
-T --test-config Convalida il file di configurazione ed esce.
-h --help Stampa le informazioni della guida ed esce.
-v --verbose Stampa le informazioni di debug. Utilizzare questa opzione con le opzioni -p e -t.
-V --version Stampa la versione dell'agent e le informazioni sulla licenza.
-R --runtime-control <option> Esegue funzioni amministrative. Vedere controllo in fase di esecuzione.
Solo agent Windows
-m --multiple-agents Utilizza più istanze dell'agent (con le opzioni -i, -d, -s, -x).
Per distinguere i nomi dei servizi delle istanze, ogni nome del servizio includerà il valore Hostname del file di configurazione specificato.
-S --startup-type <value> Imposta il tipo di avvio del servizio Zabbix agent per Windows. Valori consentiti:
automatic - (predefinito) avvia automaticamente il servizio all'avvio di Windows;
delayed - ritarda l'avvio del servizio finché i servizi avviati automaticamente non hanno completato l'avvio;
manual - avvia manualmente il servizio (da parte di un utente o di un'applicazione);
disabled - disabilita il servizio, impedendone l'avvio da parte di un utente o di un'applicazione.
È possibile utilizzare questa opzione insieme all'opzione -i oppure separatamente per modificare il tipo di avvio di un servizio già installato.
-i --install Installa Zabbix agent per Windows come servizio.
-d --uninstall Disinstalla il servizio Zabbix agent per Windows.
-s --start Avvia il servizio Zabbix agent per Windows.
-x --stop Arresta il servizio Zabbix agent per Windows.

Esempi specifici di utilizzo dei parametri della riga di comando:

  • Stampa tutti gli item integrati dell'agent con i relativi valori.
  • Verifica un parametro utente con la chiave mysql.ping definita nel file di configurazione specificato.
  • Installazione di un servizio Zabbix Agent per Windows utilizzando il percorso predefinito del file di configurazione.
  • Modifica del tipo di avvio di un servizio Zabbix Agent per Windows installato utilizzando il file di configurazione che si trova nella stessa cartella dell'eseguibile dell'agent.
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agent2.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
Controllo in fase di esecuzione

Il controllo in fase di esecuzione fornisce alcune opzioni per il controllo remoto.

Option Description
log_level_increase Aumenta il livello di log.
log_level_decrease Riduce il livello di log.
metrics Elenca le metriche disponibili.
version Visualizza la versione dell'agent.
userparameter_reload Ricarica i valori delle opzioni UserParameter e Include dal file di configurazione corrente.
help Visualizza le informazioni della guida sul controllo in fase di esecuzione.

Esempi:

  • Aumento del livello di log per l'agent 2.
  • Stampa delle opzioni di controllo in fase di esecuzione.
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help

File di configurazione

Il percorso predefinito del file di configurazione dipende dal sistema operativo e dal metodo di installazione di Zabbix:

  • Su UNIX, il valore predefinito è:
    • Per l'installazione dai sorgenti: /usr/local/etc/zabbix_agent2.conf, oppure come impostato dalle variabili di compile-time --sysconfdir o --prefix.
    • Per l'installazione dai pacchetti: /etc/zabbix/zabbix_agent2.conf.
  • Su Windows, il valore predefinito è C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf.

Se sul host è in esecuzione una singola istanza dell'agent, può usare il file di configurazione predefinito oppure un file di configurazione specificato dalla riga di comando. In caso di più istanze, ogni istanza dell'agent deve avere il proprio file di configurazione (una delle istanze può usare il file di configurazione predefinito).

I parametri di configurazione di Zabbix agent 2 corrispondono in gran parte a quelli di Zabbix agent, con alcune eccezioni:

Parameters Description
Parametri di configurazione specifici di Zabbix agent 2
ControlSocket Il percorso del socket di controllo in fase di esecuzione. Zabbix agent 2 usa un socket di controllo per i runtime commands.
EnablePersistentBuffer,
PersistentBufferFile,
PersistentBufferPeriod
Questi parametri vengono usati per configurare l'archiviazione persistente su Zabbix agent 2 per gli item attivi.
ForceActiveChecksOnStart Determina se l'agent deve eseguire i controlli attivi immediatamente dopo il riavvio oppure distribuirli uniformemente nel tempo.
Plugins I plugin possono avere parametri propri, nel formato Plugins.<Plugin name>.<Parameter>=<value>. Un parametro comune dei plugin è System.Capacity, che imposta il limite dei controlli eseguibili contemporaneamente.
StatusPort La porta su cui Zabbix agent 2 sarà in ascolto per le richieste HTTP di stato e per la visualizzazione di un elenco dei plugin configurati e di alcuni parametri interni.
Parametri di configurazione specifici di Zabbix agent non supportati in Zabbix agent 2
AllowRoot,
User
Non supportati in Zabbix agent 2 perché non supporta la daemonizzazione.
EnableRemoteCommands Deprecato; i parametri AllowKey e DenyKey vengono usati invece in entrambi gli agent.
ListenBacklog Usato in Zabbix agent per definire il numero massimo di connessioni in attesa nella coda TCP. Non supportato in Zabbix agent 2.
LoadModule,
LoadModulePath
I moduli caricabili non sono supportati in Zabbix agent 2.
MaxLinesPerSecond,
LogRemoteCommands
In Zabbix agent 2, vengono usati invece Plugins.Log.MaxLinesPerSecond e Plugins.SystemRun.LogRemoteCommands.
StartAgents Questo parametro viene usato in Zabbix agent per aumentare la concorrenza dei controlli passivi o disabilitarli. In Zabbix agent 2, la concorrenza è configurata a livello di plugin e può essere limitata da un'impostazione di capacità. I controlli passivi sono disabilitati in Zabbix Agent 2 se il parametro Server non è specificato.

Per ulteriori dettagli, vedere le opzioni del file di configurazione per Zabbix agent2.

Codici di uscita

Zabbix agent 2 può essere compilato anche con versioni precedenti di OpenSSL (1.0.1, 1.0.2).

In questo caso Zabbix fornisce mutex per il locking in OpenSSL. Se il lock o l'unlock di un mutex fallisce, viene stampato un messaggio di errore sul flusso di errore standard (STDERR) e Agent 2 termina con codice di ritorno 2 o 3, rispettivamente.