Installazione di Zabbix HTTPS su Ubuntu Linux

Questo tutorial ti mostrerà tutti i passaggi necessari per installare Zabbix 4 usando HTTPS su Ubuntu Linux.

Questo tutorial utilizzerà Let's Encrypt - Certificati SSL / TLS gratuiti.

Questo tutorial è stato testato su Ubuntu 18.04.

1. Configurare Data e Ora Utilizzando NTP

È molto importante mantenere il sistema con la data e l'ora corrette.

Imposta il fuso orario corretto.

# dpkg-reconfigure tzdata

Installa il pacchetto Ntpdate e imposta la data e l'ora corrette.

# apt-get update
# apt-get install ntpdate
# ntpdate pool.ntp.br

Disabilitare il client NTP predefinito di Ubuntu.

Installare il servizio NTP per mantenere aggiornate la data e l'ora del computer dopo il riavvio.

# timedatectl set-ntp 0
# apt-get install ntp

Assicurati che la data e l'ora corrette siano state impostate sul tuo computer.

# date

2. Installa MySQL su Ubuntu Linux

Zabbix richiede un sistema di database per archiviare tutta la sua configurazione.

Utilizzare il comando APT di Ubuntu per installare il server MySQL.

# apt-get update
# apt-get install mysql-server mysql-client

Utilizzare il seguente comando per accedere alla console di servizio MySQL.

# mysql -u root -p

Sulla console MySQL, è necessario eseguire le seguenti attività:

• Creare un database chiamato zabbix.
• Creare un account utente MySQL chiamato zabbix.
• Dare il pieno controllo del database zabbix all'utente zabbix.

CREATE DATABASE zabbix CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'kamisama123';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
quit;

Scarica il pacchetto di installazione di Zabbix per ottenere i modelli di database.

# mkdir /downloads
# cd /downloads
# wget https://ufpr.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz

Estrai il pacchetto di installazione di Zabbix.

Importa i modelli di database Zabbix all'interno del database MySQL.

Quando richiesto, è necessario inserire la password MySQL per l'utente Zabbix.

# tar -zxvf zabbix-4.0.3.tar.gz
# cd zabbix-4.0.3/database/mysql/
# mysql -u zabbix -p zabbix < schema.sql
# mysql -u zabbix -p zabbix < images.sql
# mysql -u zabbix -p zabbix < data.sql

L'installazione del database Zabbix è stata completata.

3. Installa Apache su Ubuntu Linux

Utilizzare il comando APT di Ubuntu per installare il server Apache e i moduli PHP richiesti.

# apt-get install apache2 php7.2 php7.2-mysql libapache2-mod-php7.2
# apt-get install php7.2-mbstring php7.2-xml php7.2-gd
# apt-get install php7.2-curl php7.2-bcmath php7.2-ldap

Abilita Apache mod_ssl.

Abilita mod_rewrite di Apache.

Modifica il file apache2.conf.

# a2enmod ssl
# a2enmod rewrite
# vi /etc/apache2/apache2.conf

Aggiungi le seguenti righe alla fine di apache2.conf

<Directory /var/www/html>
AllowOverride All
</Directory>

Trova la posizione del file di configurazione PHP sul tuo sistema.

Modifica il file di configurazione php.ini.

# updatedb
# locate php.ini
# vi /etc/php/7.2/apache2/php.ini

La tua versione di PHP potrebbe non essere uguale alla nostra.

La posizione del file di configurazione PHP potrebbe non essere uguale alla nostra.

Modificare i seguenti elementi nel file di configurazione php.ini.

max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
max_input_time = 300
date.timezone = America/Sao_Paulo

Il tuo fuso orario potrebbe non essere uguale al nostro.

Riavviare manualmente il server Web Apache.

# service apache2 restart
# service apache2 status

Verifica lo stato del servizio Apache.

● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2018-12-03 03:41:12 -02; 2 days ago

L'installazione del server Apache è stata completata.

4. Configurazione Degli Host Virtuali di Apache

Host virtuali se una funzionalità che consente a un server Apache di offrire più siti Web utilizzando lo stesso indirizzo IP.

Consente di creare l'infrastruttura necessaria per utilizzare la funzionalità Apache VirtualHosts.

# mkdir /websites/zabbix -p
# cd /websites/zabbix
# mkdir www logs
# chown www-data.www-data /websites -R

Il nostro sito Web sarà chiamato zabbix.mining-pool.ninja.

I file del sito Web zabbix.mining-pool.ninja devono trovarsi all'interno della directory / websites / zabbix / www.

I log zabbix.mining-pool.ninja verranno memorizzati nella directory / websites / zabbix / logs.

Alert!

Zabbix.mining-pool.ninja was used as an example!

You need to change the configuration files to reflect your Zabbix website name.

Crea un file di configurazione di Apache Virtualhost sul tuo sito web Zabbix.

# vi /etc/apache2/sites-available/zabbix.conf

Ecco il file con la nostra configurazione.

<VirtualHost *:80>
ServerAdmin nobody@care.com
DocumentRoot /websites/zabbix/www
ServerName zabbix.mining-pool.ninja

<Directory /websites/zabbix/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /websites/zabbix/logs/error.log
CustomLog /websites/zabbix/logs/access.log combined
LogLevel error
</VirtualHost>

Abilita il tuo file di configurazione del sito Web di Zabbix Virtualhost.

Riavvia il servizio Apache.

# a2ensite zabbix.conf
# service apache2 restart

Hai terminato la configurazione di Apache VirtualHosts.

5. Configurare il Registro del Dominio DNS

Accedi a GODADDY e acquistare un dominio DNS.

Nel nostro esempio, acquistiamo il dominio denominato MINING-POOL.NINJA.

Puoi utilizzare qualsiasi sito web per acquistare un dominio DNS, GoDaddy è solo una mia scelta personale.

Creare una voce DNS che punta il sito Web di Zabbix al computer che esegue Apache.

Nel nostro esempio, abbiamo creato una voce DNS che punta ZABBIX.MINING-POOL.NINJA all'indirizzo IP 34.217.177.160.

Zabbix virtual host dns

Utilizzare il comando NSLOOKUP per verificare la configurazione DNS

# apt-get update
# apt-get install dnsutils
# nslookup zabbix.mining-pool.ninja

Non-authoritative answer:
Name: zabbix.mining-pool.ninja
Address: 34.217.177.160

Hai finito la configurazione del dominio DNS.

Apri il browser e prova ad accedere alla versione HTTP del tuo sito web.

Nel nostro esempio, il seguente URL è stato inserito nel browser:

• http://zabbix.mining-pool.ninja

Zabbix HTTP Virtual Host

Ora, abbiamo bisogno di installare il certificato HTTPS gratuito.

Inoltre, dobbiamo reindirizzare automaticamente tutto il traffico HTTP alla versione HTTPS del nostro sito Web Zabbix.

6. Configurare il Certificato HTTPS Gratuito su Apache

Installa i pacchetti richiesti per utilizzare i certificati SSL / TLS di LET'S ENCRYPT su Ubuntu Linux.

# apt-get install software-properties-common
# add-apt-repository universe
# add-apt-repository ppa:certbot/certbot
# apt-get update
# apt-get install python-certbot-apache

Richiedi e installa il certificato HTTPS gratuito Apache.

# certbot --apache -d mining-pool.ninja

• Premere (A) per accettare i Termini di servizio.
• Premere (Y) per condividere l'e-mail e ricevere le newsletter.
• Premere (2) per reindirizzare automaticamente il sito Web HTTP alle versioni HTTPS.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): techexpert.tips@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for zabbix.mining-pool.ninja
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/zabbix-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/zabbix-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/zabbix-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/zabbix.conf to ssl vhost in /etc/apache2/sites-available/zabbix-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://zabbix.mining-pool.ninja

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=zabbix.mining-pool.ninja
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/zabbix.mining-pool.ninja/privkey.pem
Your cert will expire on 2019-04-09. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Il sistema richiederà automaticamente il certificato gratuito.

Configura anche il tuo server Web Apache per reindirizzare tutto l'accesso HTTP alla versione HTTPS del tuo sito web.

Nel nostro esempio, il sistema ha creato un file di configurazione di HTTPS Virtualhost chiamato zabbix-le-ssl.conf.

Ecco il contenuto del file di configurazione di HTTPS Virtualhost zabbix-le-ssl.conf:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin nobody@care.com
DocumentRoot /websites/zabbix/www
ServerName zabbix.mining-pool.ninja

<Directory /websites/zabbix/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /websites/zabbix/logs/error.log
CustomLog /websites/zabbix/logs/access.log combined
LogLevel error

SSLCertificateFile /etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/zabbix.mining-pool.ninja/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Il file KEY contiene la chiave privata del certificato e deve essere conservato in un luogo sicuro per tutto il tempo.

Il file chiave di mining-pool.ninja è stato memorizzato in /etc/letsencrypt/live/zabbix.mining-pool.ninja/privkey.pem.

Il sistema modifica automaticamente il file di configurazione originale di Apache Virtualhost.

Reindirizzerà automaticamente tutte le richieste HTTP alla versione HTTPS del tuo sito web.

Ecco il contenuto del file di configurazione HTTP Virtualhost originale aggiornato, zabbix.conf:

<VirtualHost *:80>
ServerAdmin nobody@care.com
DocumentRoot /websites/zabbix/www
ServerName zabbix.mining-pool.ninja

<Directory /websites/zabbix/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /websites/zabbix/logs/error.log
CustomLog /websites/zabbix/logs/access.log combined
LogLevel error
RewriteEngine on
RewriteCond %{SERVER_NAME} =zabbix.mining-pool.ninja
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

7. Test del Certificato HTTPS Gratuito su Apache

Tutta la configurazione richiesta è fatta

È tempo di testare la tua configurazione.

Apri il browser e prova ad accedere alla versione HTTP del tuo sito web.

Nel nostro esempio, il seguente URL è stato inserito nel browser:

• http://zabbix.mining-pool.ninja

Apache reindirizzerà automaticamente la richiesta HTTP alla versione HTTPS del tuo sito web.

Zabbix HTTPS Virtual Host

Hai terminato la configurazione gratuita del certificato HTTPS di Apache.

8. Installa Zabbix 4 su Ubuntu Linux

Dopo aver terminato la configurazione di MySQL e Apache, possiamo avviare l'installazione di Zabbix.

Creare l'account utente richiesto per il servizio Zabbix.

# groupadd zabbix
# useradd -g zabbix -s /bin/bash zabbix

Utilizzare il comando APT di Ubuntu per installare i pacchetti richiesti.

# apt-get install build-essential libmysqlclient-dev libssl-dev libsnmp-dev libevent-dev
# apt-get install libopenipmi-dev libcurl4-openssl-dev libxml2-dev libssh2-1-dev libpcre3-dev
# apt-get install libldap2-dev libiksemel-dev libcurl4-openssl-dev libgnutls28-dev

Accedere alla directory in cui è stato scaricato il pacchetto di installazione di Zabbix.

Compilare e installare l'applicazione server Zabbix.

# cd /downloads/zabbix-4.0.3/
# ./configure --enable-server --enable-agent --with-mysql --with-openssl --with-net-snmp --with-openipmi --with-libcurl --with-libxml2 --with-ssh2 --with-ldap
# make
# make install

Trova il percorso del file di configurazione del server Zabbix sul tuo sistema.

Modifica il file di configurazione zabbix_server.conf.

# updatedb
# locate zabbix_server.conf
# vi /usr/local/etc/zabbix_server.conf

Ecco il file originale, prima della nostra configurazione.

LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
Timeout=4
LogSlowQueries=3000

Ecco il nuovo file con la nostra configurazione.

LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=kamisama123
Timeout=4
LogSlowQueries=3000

Avvia il server Zabbix usando il seguente comando.

# /usr/local/sbin/zabbix_server

Avviare l'applicazione agente Zabbix utilizzando il seguente comando.

# /usr/local/sbin/zabbix_agentd

Opzionale! Il pacchetto di installazione di Zabbix offre script di avvio del servizio.

Copia lo script di avvio di Zabbix.

# cd /downloads/zabbix-4.0.3/
# cp misc/init.d/debian/* /etc/init.d/

È ora possibile utilizzare i seguenti comandi per avviare il servizio del server Zabbix.

# /etc/init.d/zabbix-server start

È ora possibile utilizzare i seguenti comandi per arrestare il servizio del server Zabbix.

# /etc/init.d/zabbix-server stop

Sposta i file di frontend Zabbix all'interno della directory del tuo root drive Apache.

Dare all'utente www-data il pieno controllo della directory di Zabbix e dei suoi file.

# cd /downloads/zabbix-4.0.3/frontends
# cp php/* /websites/zabbix/www/ -R
# chown www-data.www-data /websites/zabbix/www -R

Riavvia il servizio Apache.

# service apache2 stop
# service apache2 start

9. Configura Zabbix su Ubuntu Linux

Apri il browser e accedi alla versione HTTPS del tuo sito Web Zabbix.

Nel nostro esempio, il seguente URL è stato inserito nel browser:

• https://zabbix.mining-pool.ninja

Sarà presentata la procedura guidata di installazione di Zabbix.

Zabbix Installation

Verifica se tutti i requisiti di Zabbix sono stati soddisfatti correttamente.

Zabbix Requirements

Immettere le informazioni di accesso MySQL necessarie per connettersi al database Zabbix

Zabbix database connetion

Clicca sul pulsante Avanti.

Zabbix Agent Connection

Verifica il riepilogo dell'installazione di Zabbix.

Zabbis Installation Summary

Fare clic sul pulsante Fine per accedere alla schermata di accesso di Zabbix.

Zabbix installation finished

Nella schermata di login di Zabbix, inserire le seguenti informazioni.

• Nome utente predefinito di Zabbix: Admin
• Password predefinita di Zabbix: zabbix

Zabbix Login

Dopo un login riuscito, verrà visualizzata la dashboard di Zabbix.

Zabbix Dashboard

Congratulazioni, Zabbix è installato sul tuo sistema.

10. Monitorare il Server Zabbix

Il server Zabbix deve essere in grado di monitorare se stesso.

Sul pannello di controllo di Zabbix, accedere al menu Configurazione e selezionare l'opzione Host.

Zabbix menu

In alto a destra sullo schermo, seleziona l'opzione chiamata: server Zabbix

Zabbix Server Group

Individua l'host chiamato server Zabbix e fai clic sulla parola DISABLED.

Ciò consentirà al server Zabbix di monitorare se stesso.

Zabbix server agent disabled

Lo stato del server Zabbix passerà da DISABLED a ENABLED.

Zabbix server agent enabled

Il server Zabbix ora sta monitorando se stesso.

11. Come Rinnovare il Certificato HTTPS Gratuito

I certificati SSL / TLS gratuiti di LET'S ENCRYPT sono validi solo per 90 giorni.

Il sistema crea un'attività programmata per rinnovare automaticamente qualsiasi certificato entro trenta giorni dalla scadenza.

Il nome dell'attività pianificata è certbot e si trova nella directory /etc/cron.d.

Ecco il contenuto del file /etc/cron.d/certbot:

# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc. Renewal will only occur if expiration
# is within 30 days.
#
# Important Note! This cronjob will NOT be executed if you are
# running systemd as your init system. If you are running systemd,
# the cronjob.timer function takes precedence over this cronjob. For
# more details, see the systemd.timer manpage, or use systemctl show
# certbot.timer.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

Utilizzare il seguente comando per simulare il processo di rinnovo del certificato.

# certbot renew --dry-run

Dovresti vedere i seguenti messaggi:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/zabbix.mining-pool.ninja.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for zabbix.mining-pool.ninja
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.