3 Agent 2

Panoramica

Zabbix agent 2 è una nuova generazione di Zabbix agent, scritta in Go (con parte del codice C riutilizzata 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 dati autonoma con report periodici.
  • 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 che per quelli attivi
  • Gestione della coda dei task nel rispetto della pianificazione e della concorrenza dei task
  • Timeout a livello di plugin
  • Verifica della compatibilità di Zabbix agent 2 e dei suoi plugin all'avvio

Esistono due tipi di plugin:

È anche possibile creare i propri plugin.

I plugin creati su misura non devono necessariamente essere incorporati in agent 2. Possono essere aggiunti 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.

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/di pianificazione e la concorrenza dei controlli all'interno di un server attivo.

Per impostazione predefinita, dopo un riavvio, Zabbix agent 2 pianificherà la prima raccolta dei dati per i controlli attivi in un momento casuale convenzionale entro l'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 di Pianificazione, impostare il parametro ForceActiveChecksOnStart (a livello globale) oppure Plugins.<Plugin name>.System.ForceActiveChecksOnStart (influisce solo sui controlli di plugin specifici) nel file di configurazione. Il parametro a livello di plugin, se impostato, sovrascriverà il parametro globale.

Verifica della concorrenza

I controlli di plugin diversi possono essere eseguiti in modo concorrente. Il numero di controlli concorrenti all'interno di un singolo plugin è limitato dall'impostazione di capacità del plugin. Ogni plugin può avere un'impostazione di capacità hardcoded (1000 è il valore predefinito) che può essere ridotta utilizzando 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 sui 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 selezionato la versione di Zabbix, la distribuzione del sistema operativo e la versione del sistema operativo) 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 supporta la daemonizzazione su Linux.

L'agente può essere avviato eseguendo:

systemctl start zabbix-agent2

Per arrestare, riavviare o controllare lo stato di Zabbix Agent 2, utilizzare i seguenti comandi:

systemctl stop zabbix-agent2 systemctl restart zabbix-agent2 systemctl status zabbix-agent2

Avvio manuale

È possibile avviare l'agente Zabbix individuando il binario zabbix_agent2 ed eseguendolo direttamente; ad esempio:

zabbix_agent2

Agent 2 su sistemi Windows

Zabbix Agent 2 viene eseguito come processo autonomo; tuttavia, può anche essere eseguito 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.

Per ulteriori dettagli sull'installazione di Zabbix agent 2 (da un archivio ZIP) come servizio Windows, vedere la pagina Zabbix agent su Microsoft 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 usare questa opzione per specificare un file di configurazione diverso da quello predefinito.
Su UNIX, il valore predefinito è /usr/local/etc/zabbix_agent2.conf oppure quello impostato dalle variabili di compilazione --sysconfdir o --prefix
Su Windows, il valore predefinito è C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
-f --foreground Esegui Zabbix agent in primo piano (predefinito: true).
-p --print Stampa gli item conosciuti ed esce.
Nota: per restituire anche i risultati dei parametri utente, è necessario specificare il file di configurazione (se non si trova nel percorso predefinito).
-t --test <item key> Verifica l'item specificato ed esce.
Nota: per restituire anche i risultati dei parametri utente, è necessario specificare il file di configurazione (se non si trova nel percorso predefinito).
-T --test-config Convalida il file di configurazione ed esce.
-h --help Stampa le informazioni di aiuto ed esce.
-v --verbose Stampa informazioni di debug. Usare 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 runtime control.
Solo agent Windows
-m --multiple-agents Usa più istanze di agent (con le opzioni -i, -d, -s, -x).
Per distinguere i nomi dei servizi delle istanze, ogni nome di servizio includerà il valore Hostname del file di configurazione specificato.
-S --startup-type <value> Imposta il tipo di avvio del servizio Zabbix Windows agent. Valori consentiti:
automatic - (predefinito) avvia il servizio automaticamente all'avvio di Windows;
delayed - ritarda l'avvio del servizio dopo che i servizi avviati automaticamente hanno completato l'avvio;
manual - avvia il servizio manualmente (da un utente o da un'applicazione);
disabled - disabilita il servizio, in modo che non possa essere avviato da un utente o da un'applicazione.
È possibile usare questa opzione insieme all'opzione -i, oppure separatamente per modificare il tipo di avvio di un servizio già installato.
-i --install Installa Zabbix Windows agent come servizio.
-d --uninstall Disinstalla il servizio Zabbix Windows agent.
-s --start Avvia il servizio Zabbix Windows agent.
-x --stop Arresta il servizio Zabbix Windows agent.

Esempi specifici di utilizzo dei parametri della riga di comando:

  • stampare tutti gli item integrati dell'agent con i valori
  • verificare un parametro utente con chiave "mysql.ping" definita nel file di configurazione specificato
  • installare un servizio "Zabbix Agent" per Windows usando il percorso predefinito del file di configurazione C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
  • modificare il tipo di avvio di un servizio "Zabbix Agent" per Windows già installato usando il file di configurazione zabbix_agent2.conf situato nella stessa cartella dell'eseguibile dell'agent
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
Controllo runtime

Il controllo runtime fornisce alcune opzioni per il controllo remoto.

Opzione Descrizione
log_level_increase Aumenta il livello di log.
log_level_decrease Diminuisce 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 di aiuto sul controllo runtime.

Esempi:

  • aumento del livello di log per agent 2
  • stampa delle opzioni di controllo runtime
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help

File di configurazione

I parametri di configurazione di Zabbix agent 2 corrispondono per la maggior parte a quelli di Zabbix agent, con alcune eccezioni:

Parametri Descrizione
Parametri di configurazione specifici di Zabbix agent 2
ControlSocket Il percorso del socket di controllo a runtime. Zabbix agent 2 utilizza un socket di controllo per i comandi a runtime.
EnablePersistentBuffer,
PersistentBufferFile,
PersistentBufferPeriod
Questi parametri vengono utilizzati per configurare l'archiviazione persistente in 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 che possono essere eseguiti contemporaneamente.
StatusPort La porta su cui Zabbix agent 2 resterà in ascolto per le richieste di stato HTTP 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 Obsoleto; al suo posto vengono utilizzati i parametri AllowKey e DenyKey in entrambi gli agent.
ListenBacklog Utilizzato 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 invece utilizzati Plugins.Log.MaxLinesPerSecond e Plugins.SystemRun.LogRemoteCommands.
StartAgents Questo parametro viene utilizzato in Zabbix agent per aumentare la concorrenza dei controlli passivi o disabilitarli. In Zabbix agent 2, la concorrenza viene 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 maggiori dettagli, vedere le opzioni del file di configurazione per Zabbix agent2.

Codici di uscita

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

In questo caso, Zabbix fornisce mutex per il blocco in OpenSSL. Se un blocco o uno sblocco di un mutex fallisce, viene visualizzato un messaggio di errore nel flusso di errori standard (STDERR) e l'Agent 2 termina con il codice di ritorno 2 o 3, rispettivamente.