3 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
- Controllo 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 personalizzati 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.
Controlli passivi e attivi
Zabbix agent 2 supporta controlli passivi e attivi, analogamente a Zabbix agent. Inoltre, i controlli attivi di Zabbix agent 2 supportano intervalli flessibili/pianificati e concorrenza dei controlli all'interno di un singolo server attivo.
Per impostazione predefinita, dopo un riavvio, Zabbix agent 2 pianificherà la prima raccolta dati per i controlli attivi in un momento casuale, entro l'intervallo di aggiornamento dell'item, per evitare picchi nell'uso delle risorse.
Per eseguire immediatamente i controlli attivi che non dispongono di un intervallo di aggiornamento Scheduling dopo il riavvio dell'agent, impostare il parametro ForceActiveChecksOnStart (a livello globale) oppure Plugins.<Plugin name>.System.ForceActiveChecksOnStart (influisce solo sui controlli di specifici plugin) nel file di configurazione.
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 sui 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 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 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:
- Binari precompilati di Zabbix agent - scaricare il pacchetto di installazione MSI dell'agent e seguire le istruzioni nella pagina Installazione dell'agent Windows da MSI.
- Sorgenti di Zabbix - scaricare i file sorgente e seguire le istruzioni nella pagina Compilazione di Zabbix agent 2 su Windows.
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 da riga di comando possono essere usati con Zabbix agent 2:
| Parameter | Description |
|---|---|
| UNIX and Windows agent | |
-c --config <config-file> |
Percorso del file di configurazione. Puoi usare questa opzione per specificare un file di configurazione diverso da quello predefinito. |
-f --foreground |
Esegui Zabbix agent in primo piano (predefinito: true). |
-p --print |
Stampa gli item noti ed esci. Nota che, per restituire anche i risultati dei user parameter, devi specificare il file di configurazione (se non si trova nella posizione predefinita). |
-t --test <item key> |
Testa l'item specificato ed esci. Nota che, per restituire anche i risultati dei user parameter, devi specificare il file di configurazione (se non si trova nella posizione predefinita). |
-T --test-config |
Valida il file di configurazione ed esci. |
-h --help |
Stampa le informazioni di aiuto ed esci. |
-v --verbose |
Stampa informazioni di debug. Usa questa opzione con le opzioni -p e -t. |
-V --version |
Stampa la versione dell'agent e le informazioni sulla licenza. |
-R --runtime-control <option> |
Esegui funzioni amministrative. Vedi runtime control. |
| Windows agent only | |
-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 del 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 parte di un utente o di un'applicazione);disabled - disabilita il servizio, in modo che non possa essere avviato da un utente o da un'applicazione.Puoi 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 da riga di comando:
- Stampa tutti gli item integrati dell'agent con i valori.
- Testa un user parameter con chiave
mysql.pingdefinito nel file di configurazione specificato. - Installazione di un servizio Zabbix Agent per Windows usando il percorso predefinito del file di configurazione
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf. - Modifica del tipo di avvio di un servizio Zabbix Agent per Windows installato usando il file di configurazione
zabbix_agent2.confsituato 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.
| Option | Description |
|---|---|
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:
- Aumentare il livello di log per agent 2.
- Stampare le opzioni di controllo runtime.
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
File di configurazione
Il percorso predefinito del file di configurazione è:
- Su UNIX, il valore predefinito è
/usr/local/etc/zabbix_agent2.confoppure quello impostato dalle variabili di compilazione--sysconfdiro--prefix. - Su Windows, il valore predefinito è
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf.
Se è in esecuzione una singola istanza dell'agent su un host, 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 control socket per i comandi in fase di esecuzione. | |
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 che possono essere eseguiti 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; al suo posto vengono usati i parametri AllowKey e DenyKey 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ò anche essere compilato 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 lo sblocco 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.