Installation de Zabbix HTTPS sur Ubuntu Linux

Ce tutoriel vous montrera toutes les étapes nécessaires pour installer Zabbix 4 à l’aide de HTTPS sur Ubuntu Linux.

Ce tutoriel utilisera les certificats Let's Encrypt - Free SSL / TLS.

Ce tutoriel a été testé sur Ubuntu 18.04.

1. Configurez la Date et l'heure à l'aide de NTP

Il est très important que votre système conserve la date et l'heure correctes.

Définissez le fuseau horaire correct.

# dpkg-reconfigure tzdata

Installez le paquet Ntpdate et définissez la date et l'heure correctes.

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

Désactivez le client NTP par défaut Ubuntu.

Installez le service NTP pour que la date et l'heure de l'ordinateur soient mises à jour après un redémarrage.

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

Assurez-vous que la date et l'heure correctes ont été définies sur votre ordinateur.

# date

2. Installez MySQL sur Ubuntu Linux

Zabbix nécessite un système de base de données pour stocker toute sa configuration.

Utilisez la commande Ubuntu APT pour installer le serveur MySQL.

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

Utilisez la commande suivante pour accéder à la console de service MySQL.

# mysql -u root -p

Sur la console MySQL, vous devez effectuer les tâches suivantes:

• Créez une base de données nommée zabbix.
• Créez un compte utilisateur MySQL nommé zabbix.
• Donnez un contrôle total sur la base de données zabbix à l'utilisateur zabbix.

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

Téléchargez le package d'installation de Zabbix pour obtenir les modèles de base de données.

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

Extrayez le package d'installation de Zabbix.

Importez les modèles de base de données Zabbix dans la base de données MySQL.

Lorsque vous y êtes invité, vous devez entrer le mot de passe MySQL pour l'utilisateur 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'installation de la base de données Zabbix est terminée.

3. Installer Apache sur Ubuntu Linux

Utilisez la commande Ubuntu APT pour installer le serveur Apache et les modules PHP requis.

# 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

Activer Apache mod_ssl.

Activer Apache mod_rewrite.

Editez le fichier apache2.conf.

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

Ajoutez les lignes suivantes à la fin de apache2.conf

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

Recherchez l'emplacement du fichier de configuration PHP sur votre système.

Editez le fichier de configuration php.ini.

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

Votre version de PHP n'est peut-être pas la même que la nôtre.

Votre emplacement de fichier de configuration PHP peut ne pas être le même que le nôtre.

Modifiez les éléments suivants dans le fichier de configuration php.ini.

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

Votre fuseau horaire peut ne pas être le même que le nôtre.

Redémarrez le serveur Web Apache manuellement.

# service apache2 restart
# service apache2 status

Vérifiez l'état du service 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'installation du serveur Apache est terminée.

4. Configuration des Hôtes Virtuels Apache

Hôtes virtuels: fonctionnalité permettant à un serveur Apache de proposer plusieurs sites Web utilisant la même adresse IP.

Permet de créer l'infrastructure nécessaire pour utiliser la fonctionnalité Apache VirtualHosts.

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

Notre site Web s'appellera zabbix.mining-pool.ninja.

Les fichiers du site Web zabbix.mining-pool.ninja doivent se trouver dans le répertoire / websites / zabbix / www.

Les journaux zabbix.mining-pool.ninja seront stockés dans le répertoire / 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.

Créez un fichier de configuration Apache Virtualhost sur votre site Web Zabbix.

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

Voici le fichier avec notre configuration.

<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>

Activez le fichier de configuration de votre site Web Zabbix Virtualhost.

Redémarrez le service Apache.

# a2ensite zabbix.conf
# service apache2 restart

Vous avez terminé la configuration Apache VirtualHosts.

5. Configurez le Registre de Domaine DNS

Accéder au GODADDY et achetez un domaine DNS.

Dans notre exemple, nous achetons le domaine nommé MINING-POOL.NINJA.

Vous pouvez utiliser n’importe quel site Web pour acheter un domaine DNS. GoDaddy n’est que mon choix personnel.

Créez une entrée DNS pointant votre site Web Zabbix vers l'ordinateur exécutant Apache.

Dans notre exemple, nous avons créé une entrée DNS pointant ZABBIX.MINING-POOL.NINJA vers l'adresse IP 34.217.177.160.

Zabbix virtual host dns

Utilisez la commande NSLOOKUP pour tester votre configuration 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

Vous avez terminé la configuration du domaine DNS.

Ouvrez votre navigateur et essayez d'accéder à la version HTTP de votre site web.

Dans notre exemple, l'URL suivante a été entrée dans le navigateur:

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

Zabbix HTTP Virtual Host

Maintenant, nous devons installer le certificat HTTPS gratuit.

Nous devons également rediriger automatiquement tout le trafic HTTP vers la version HTTPS de notre site Web Zabbix.

6. Configurez le Certificat HTTPS Gratuit sur Apache

Installez les packages requis pour utiliser les certificats SSL / TLS libres de LET'S ENCRYPT sur 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

Demandez et installez le certificat HTTPS gratuit Apache.

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

• Appuyez sur (A) pour accepter les conditions d'utilisation.
• Appuyez sur (Y) pour partager votre courrier électronique et recevoir des lettres d’information.
• Appuyez sur (2) pour rediriger automatiquement votre site Web HTTP vers les versions 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

Le système demandera automatiquement le certificat gratuit.

Il configurera également votre serveur Web Apache pour qu'il redirige tous les accès HTTP vers la version HTTPS de votre site Web.

Dans notre exemple, le système a créé un fichier de configuration HTTPS Virtualhost nommé zabbix-le-ssl.conf.

Voici le contenu du fichier de configuration 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>

Le fichier KEY contient votre clé privée de certificat et doit être gardé dans un endroit sûr tout le temps.

Le fichier de clé de mining-pool.ninja était stocké dans /etc/letsencrypt/live/zabbix.mining-pool.ninja/privkey.pem.

Le système modifie automatiquement le fichier de configuration Apache Virtualhost d'origine.

Toutes les requêtes HTTP seront automatiquement redirigées vers la version HTTPS de votre site Web.

Voici le contenu du fichier de configuration HTTP Virtualhost d'origine mis à jour, 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 du Certificat HTTPS Gratuit sur Apache

Toute la configuration requise est terminée.

Il est temps de tester votre configuration.

Ouvrez votre navigateur et essayez d'accéder à la version HTTP de votre site web.

Dans notre exemple, l'URL suivante a été entrée dans le navigateur:

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

Apache redirigera automatiquement la requête HTTP vers la version HTTPS de votre site Web.

Zabbix HTTPS Virtual Host

Vous avez terminé la configuration du certificat libre Apache HTTPS.

8. Installer Zabbix 4 sur Ubuntu Linux

Après avoir terminé la configuration de MySQL et Apache, nous pouvons démarrer l’installation de Zabbix.

Créez le compte utilisateur requis sur le service Zabbix.

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

Utilisez la commande Ubuntu APT pour installer les packages requis.

# 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

Accédez au répertoire où le package d'installation de Zabbix a été téléchargé.

Compilez et installez l'application serveur 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

Recherchez l'emplacement du fichier de configuration du serveur Zabbix sur votre système.

Editez le fichier de configuration zabbix_server.conf.

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

Voici le fichier original, avant notre configuration.

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

Voici le nouveau fichier avec notre configuration.

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

Démarrez le serveur Zabbix à l’aide de la commande suivante.

# /usr/local/sbin/zabbix_server

Démarrez l'application de l'agent Zabbix à l'aide de la commande suivante.

# /usr/local/sbin/zabbix_agentd

Optionnel! Le package d'installation de Zabbix propose des scripts de démarrage de service.

Copiez le script de démarrage Zabbix.

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

Vous pouvez maintenant utiliser les commandes suivantes pour démarrer le service serveur Zabbix.

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

Vous pouvez maintenant utiliser les commandes suivantes pour arrêter le service serveur Zabbix.

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

Déplacez les fichiers frontaux Zabbix dans votre répertoire de lecteur racine Apache.

Donnez à l'utilisateur www-data le contrôle total sur le répertoire Zabbix et ses fichiers.

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

Redémarrez le service Apache.

# service apache2 stop
# service apache2 start

9. Configurer Zabbix sur Ubuntu Linux

Ouvrez votre navigateur et accédez à la version HTTPS de votre site Web Zabbix.

Dans notre exemple, l'URL suivante a été entrée dans le navigateur:

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

L'assistant d'installation de Zabbix sera présenté.

Zabbix Installation

Vérifiez si toutes les exigences de Zabbix ont été satisfaites.

Zabbix Requirements

Entrez les informations de connexion MySQL requises pour vous connecter à la base de données Zabbix

Zabbix database connetion

Cliquez sur le bouton Suivant.

Zabbix Agent Connection

Vérifiez le résumé d'installation de Zabbix.

Zabbis Installation Summary

Cliquez sur le bouton Terminer pour accéder à l'écran de connexion Zabbix.

Zabbix installation finished

Sur l'écran de connexion Zabbix, entrez les informations suivantes.

• Nom d'utilisateur par défaut Zabbix: Admin
• Mot de passe par défaut Zabbix: zabbix

Zabbix Login

Une fois la connexion établie, le tableau de bord Zabbix s’affiche.

Zabbix Dashboard

Félicitations, Zabbix est installé sur votre système.

10. Surveiller le Serveur Zabbix

Le serveur Zabbix doit pouvoir se surveiller lui-même.

Sur le tableau de bord Zabbix, accédez au menu Configuration et sélectionnez l'option Hôte.

Zabbix menu

En haut à droite de l'écran, sélectionnez l'option nommée: Serveurs Zabbix

Zabbix Server Group

Localisez l'hôte nommé serveur Zabbix et cliquez sur le mot DISABLED.

Cela permettra au serveur Zabbix de se surveiller lui-même.

Zabbix server agent disabled

Le statut du serveur Zabbix passera de DISABLED à ENABLED.

Zabbix server agent enabled

Le serveur Zabbix se surveille maintenant.

11. Comment Renouveler le Certificat HTTPS Gratuit

Les certificats SSL / TLS LET'S ENCRYPT Free ne sont valides que pendant 90 jours.

Le système crée une tâche planifiée pour renouveler automatiquement tout certificat dans les trente jours suivant l'expiration.

Le nom de la tâche planifiée est certbot et il se trouve dans le répertoire /etc/cron.d.

Voici le contenu du fichier /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

Utilisez la commande suivante pour simuler le processus de renouvellement du certificat.

# certbot renew --dry-run

Vous devriez voir les messages suivants:

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.