3 Installazione dai sorgenti
Puoi ottenere la versione più recente di Zabbix compilandola dai sorgenti.
Qui è disponibile una guida passo passo per installare Zabbix dai sorgenti.
Installazione dei daemon di Zabbix
1 Scarica l'archivio dei sorgenti
Vai alla pagina di download di Zabbix e scarica l'archivio dei sorgenti. Una volta scaricato, estrai i sorgenti eseguendo:
tar -zxvf zabbix-7.4.0.tar.gz
Inserisci la versione corretta di Zabbix nel comando. Deve corrispondere al nome dell'archivio scaricato.
2 Creare un account utente
Tutti i processi daemon di Zabbix vengono eseguiti con utenti di sistema non privilegiati.
Se un daemon di Zabbix viene avviato da un account utente non privilegiato, continuerà a essere eseguito con quell'utente.
Nella configurazione predefinita, se un daemon viene avviato come root, passerà all'account utente zabbix, che deve essere presente.
Per creare un utente e un gruppo di sistema zabbix, eseguire i comandi elencati di seguito.
Sistema basato su RedHat:
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
Sistema basato su Debian:
addgroup --system --quiet zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix
Non è necessario creare un account utente separato per il frontend di Zabbix.
Raccomandazione di sicurezza
Se il server e l'agent di Zabbix sono in esecuzione sulla stessa macchina, si consiglia di eseguirli con account utente separati. Eseguirli entrambi con lo stesso utente consente all'agent di accedere al file di configurazione del server, il che potrebbe esporre informazioni sensibili, come la password del database, a qualsiasi utente con privilegi di livello Admin in Zabbix.
Eseguire Zabbix come root, bin o qualsiasi altro account con privilegi speciali rappresenta un rischio per la sicurezza.
Directory home (facoltativa)
I processi di Zabbix non richiedono una directory home, quindi in genere non è consigliato crearne una. Tuttavia, se è necessaria una funzionalità che richiede una directory home (ad esempio, l'archiviazione delle credenziali MySQL in $HOME/.my.cnf), è possibile crearla usando i comandi elencati di seguito.
Sui sistemi basati su RedHat, eseguire:
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
Sui sistemi basati su Debian, eseguire:
mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
chown zabbix:zabbix /var/lib/zabbix
3 Crea database Zabbix
Per Zabbix server e proxy demoni, oltre al frontend Zabbix, un è richiesta la banca dati. Non è necessario per eseguire Zabbix agente.
SQL vengono forniti gli script per la creazione dello schema del database e inserimento del dataset. Il Database del Proxy Zabbix richiede solo lo schema mentre il database del server Zabbix richiede anche il set di dati in cima allo schema.
Dopo aver creato un database Zabbix, procedere ai seguenti passaggi di compilazione Zabbix.
4 Configurare le sorgenti
Per compilare Zabbix server, Zabbix proxy o Zabbix agent è richiesto C99 con estensioni GNU. Questa versione può essere specificata esplicitamente impostando CFLAGS="-std=gnu99":
export CFLAGS="-std=gnu99"
Se si installa dal repository Git di Zabbix, è necessario eseguire prima:
./bootstrap.sh
Quando si configurano le sorgenti per un Zabbix server o proxy, è necessario specificare il tipo di database da utilizzare. Solo un tipo di database può essere compilato alla volta con un processo server o proxy.
Per visualizzare tutte le opzioni di configurazione supportate, all'interno della directory sorgente di Zabbix estratta eseguire:
./configure --help
Per configurare le sorgenti per un Zabbix server e agent, è possibile eseguire un comando simile a:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-ares
Per configurare le sorgenti per un Zabbix server (con PostgreSQL ecc.), è possibile eseguire:
./configure --enable-server --with-postgresql --with-net-snmp
Per configurare le sorgenti per un Zabbix proxy (con SQLite ecc.), è possibile eseguire:
./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2
Per configurare le sorgenti per un Zabbix agent, è possibile eseguire:
./configure --enable-agent
oppure, per Zabbix agent 2:
./configure --enable-agent2
Per compilare Zabbix agent 2 deve essere installata una versione Go supportata.
Note sulle opzioni di compilazione:
--enable-agent- compila Zabbix agent, oltre alle utilità da riga di comando Zabbix get e Zabbix sender.--with-libcurl- richiesto per il monitoraggio delle macchine virtuali, l'autenticazione SMTP e gli itemweb.page.*di Zabbix agent. Vedere anche: Requisiti (libcurl).--with-libxml2- richiesto per il monitoraggio delle macchine virtuali.--with-libpcre2[=DIR]- Zabbix viene sempre compilato con la libreria PCRE2; questa opzione consente solo di specificare un percorso di installazione PCRE2 personalizzato.--with-mysql=/path/to/mysql_config- specifica il percorso di una particolare configurazione della libreria client MySQL. Utile quando sono installate più versioni di MySQL o MariaDB.--enable-static- collega staticamente le librerie (non supportato su Solaris). Usare questa opzione se si prevede di distribuire i binari compilati su sistemi privi delle librerie richieste. Non consigliato quando si compila Zabbix server. Per compilare il server in modo statico, è necessaria una versione statica di ogni libreria esterna. Lo script configure non lo verifica automaticamente.--with-stacksize=<value>- imposta la dimensione dello stack per thread in kilobyte (ad esempio,--with-stacksize=512). È possibile aumentare questo valore se Zabbix va in crash o si blocca a causa di overflow dello stack (ad esempio, durante la pre-elaborazione su sistemi con limiti predefiniti bassi per lo stack dei thread).
Se ./configure fallisce a causa di librerie mancanti o altri problemi, controllare il file config.log per informazioni dettagliate sull'errore.
Ad esempio, se libssl manca, il messaggio di errore immediato può essere fuorviante:
checking for main in -lmysqlclient... no
configure: error: Not found mysqlclient library
In questo caso, config.log rivela la causa reale:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
Vedere anche:
5 Creare e installare tutto
Se si installa da Zabbix Git repository, è necessario eseguire prima:
$ make dbschema
make install
Questo passaggio deve essere eseguito da un utente con permessi sufficienti (in genere
'root', oppure usando sudo).
L'esecuzione di make install installerà per impostazione predefinita i binari del daemon
(zabbix_server, zabbix_agentd, zabbix_proxy) in /usr/local/sbin e
i binari client (zabbix_get, zabbix_sender) in /usr/local/bin.
Per specificare una posizione diversa da /usr/local, usare una chiave --prefix nel passaggio precedente di configurazione dei sorgenti, ad esempio --prefix=/home/zabbix. In questo caso i binari del daemon verranno installati in <prefix>/sbin, mentre le utility in <prefix>/bin. Le pagine man verranno installate in <prefix>/share.
6 Rivedere e modificare i file di configurazione
- modificare il file di configurazione dell'agente Zabbix /usr/local/etc/zabbix_agentd.conf
Devi configurare questo file per ogni host con zabbix_agentd installato.
Devi specificare l'indirizzo IP del server Zabbix nel file. Le connessioni da altri host verranno negate.
- modificare il file di configurazione del server Zabbix /usr/local/etc/zabbix_server.conf
È necessario specificare il nome del database, l'utente e la password (se utilizzata).
Il resto dei parametri ti andrà bene con i loro valori predefiniti se ne hai una piccola installazione (fino a dieci host monitorati). Dovresti cambiare i parametri predefiniti se si desidera massimizzare le prestazioni di Zabbix server (o proxy) però.
- se hai installato un proxy Zabbix, modifica la configurazione del proxy file /usr/local/etc/zabbix_proxy.conf
È necessario specificare l'indirizzo IP del server e il nome host del proxy (deve essere noto al server), così come il nome del database, l'utente e la password (se usando qualsiasi).
::: notaclassico Con SQLite deve essere il percorso completo del file di database specificato; Utente DB e password non sono richiesti. :::
7 Avviare i daemon
Esegui zabbix_server sul lato server.
zabbix_server
Assicurati che il tuo sistema consenta l'allocazione di 36MB (o un po' di più) di memoria condivisa, altrimenti il server potrebbe non avviarsi e vedrai "Cannot allocate shared memory for <type of cache>." nel file di log del server. Questo può accadere su FreeBSD, Solaris 8.
Esegui zabbix_agentd su tutte le macchine monitorate.
zabbix_agentd
Assicurati che il tuo sistema consenta l'allocazione di 2MB di memoria condivisa, altrimenti l'agent potrebbe non avviarsi e vedrai "Cannot allocate shared memory for collector." nel file di log dell'agent. Questo può accadere su Solaris 8.
Se hai installato Zabbix proxy, esegui zabbix_proxy.
zabbix_proxy
Installazione dell'interfaccia web di Zabbix
Copia dei file PHP
Il frontend di Zabbix è scritto in PHP, quindi per eseguirlo è necessario un webserver con supporto PHP. L'installazione si esegue semplicemente copiando i file PHP dalla directory ui nella directory dei documenti HTML del webserver.
Le posizioni comuni delle directory dei documenti HTML per i web server Apache includono:
- /usr/local/apache2/htdocs (directory predefinita quando si installa Apache dai sorgenti)
- /srv/www/htdocs (OpenSUSE, SLES)
- /var/www/html (Debian, Ubuntu, Fedora, RHEL)
Si consiglia di usare una sottodirectory invece della root HTML. Per creare una sottodirectory e copiare i file del frontend di Zabbix al suo interno, eseguire i seguenti comandi, sostituendo <htdocs> con la directory effettiva:
mkdir <htdocs>/zabbix
cd ui
cp -a . <htdocs>/zabbix
Se si prevede di usare una lingua diversa dall'inglese, consultare Installation of additional frontend languages per le istruzioni.
Installazione del frontend
Consultare la pagina Web interface installation per informazioni sulla procedura guidata di installazione del frontend Zabbix.
Installazione dei plugin caricabili di Zabbix agent 2
L'installazione dei plugin caricabili di Zabbix agent 2 è necessaria solo se si desidera monitorare target non coperti dai plugin integrati (ad esempio server o cluster MongoDB, PostgreSQL e i suoi fork, ecc.). Vedere l'elenco completo dei plugin caricabili e dei plugin integrati.
Prima di installare un plugin, controllarne il file README. Potrebbe contenere requisiti specifici e istruzioni di installazione.
Per installare dai sorgenti, prima scaricare ed estrarre l'archivio sorgente del plugin caricabile.
Per compilare il plugin, andare nella directory del plugin estratto ed eseguire make:
make
Per compilare i plugin caricabili di Zabbix agent 2 deve essere installata una versione supportata di Go.
L'eseguibile del plugin può essere collocato ovunque, purché sia caricabile da Zabbix agent 2. Specificare il percorso del binario del plugin nel file di configurazione del plugin, ad esempio in postgresql.conf per il plugin PostgreSQL:
Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql
Il percorso del file di configurazione del plugin deve essere specificato nel parametro Include del file di configurazione di Zabbix agent 2:
Include=/path/to/plugin/configuration/file/postgresql.conf
Procedere alla configurazione per ulteriori dettagli sulla configurazione dei plugin.
I plugin caricabili forniti da Zabbix usano semplici makefile con i seguenti target di build:
make- compila il pluginmake clean- elimina tutti i file creati dalla compilazione del pluginmake check- esegue i self-test (richiede un target di monitoraggio reale, ad esempio un database PostgreSQL)make style- verifica lo stile del codice Go congolangci-lintmake format- formatta il codice Go congo fmtmake dist- crea un archivio sorgente includendo tutte le dipendenze
Installazione di Java gateway
È necessario installare Java gateway solo se si desidera monitorare applicazioni JMX. Java gateway è leggero e non richiede un database.
Per installare dai sorgenti, prima scaricare ed estrarre l'archivio dei sorgenti.
Per compilare Java gateway, eseguire lo script ./configure con l'opzione --enable-java. Si consiglia di specificare l'opzione --prefix per richiedere un percorso di installazione diverso da quello predefinito /usr/local, perché l'installazione di Java gateway creerà un'intera struttura di directory, non solo un singolo eseguibile.
./configure --enable-java --prefix=$PREFIX
Per compilare e impacchettare Java gateway in un file JAR, eseguire make. Si noti che per questo passaggio saranno necessari gli eseguibili javac e jar nel percorso.
make
Ora si dispone di un file zabbix-java-gateway-$VERSION.jar in
src/zabbix_java/bin. Se si preferisce eseguire Java gateway da src/zabbix_java nella directory di distribuzione, è possibile
procedere con le istruzioni per configurare ed eseguire Java
gateway.
In caso contrario, assicurarsi di disporre di privilegi sufficienti ed eseguire make install.
make install
Procedere a configurazione per ulteriori dettagli sulla configurazione e l'esecuzione di Java gateway.
Installazione del servizio web di Zabbix
L'installazione del servizio web di Zabbix è necessaria solo se si desidera usare i report pianificati.
Per installare dai sorgenti, prima scaricare ed estrarre l'archivio dei sorgenti.
Per compilare il servizio web di Zabbix, eseguire lo script ./configure con
l'opzione --enable-webservice.
Per compilare il servizio web di Zabbix deve essere installata una versione supportata di Go.
Eseguire zabbix_web_service sulla macchina in cui è installato il servizio web:
zabbix_web_service
Per ulteriori dettagli sulla configurazione della generazione dei report pianificati, passare a setup.