Zabbix est un logiciel gratuit et open source prêt pour l'entreprise utilisé pour surveiller la disponibilité des systèmes et des composants réseau. Zabbix peut surveiller simultanément des milliers de serveurs, machines virtuelles ou composants réseau. Zabbix peut surveiller presque tout ce qui concerne un système, comme le processeur, la mémoire, l'espace disque et les E / S, les processus, le réseau, les bases de données, les machines virtuelles et les services Web. Si un accès IPMI est fourni à Zabbix, il peut également surveiller le matériel tel que la température, la tension, etc.
Conditions préalables
Pour ce tutoriel, nous utiliserons 192.0.2.1
comme adresse IP publique du serveur Zabbix et 192.0.2.2
comme adresse IP publique d'un hôte Zabbix que nous surveillerons à distance. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple d'adresse IP par vos adresses IP publiques réelles.
Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, procédez à l'installation des dépendances.
Installez Apache et PHP
Lors de l'installation de Zabbix Web, il crée automatiquement une configuration pour le serveur Web Apache.
Installez le serveur Web Apache pour servir l'interface frontale ou Web de Zabbix.
sudo apt -y install apache2
Démarrez le serveur Web Apache et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start apache2
sudo systemctl enable apache2
Installez la dernière version de PHP avec les modules requis par Zabbix.
sudo apt -y install php php7.0 libapache2-mod-php7.0 php7.0-cli php7.0-gd php7.0-bcmath php7.0-ctype php7.0-xml php7.0-sockets php7.0-mbstring php7.0-gettext php7.0-ldap php7.0-pgsql
Installer et configurer PostgreSQL
PostgreSQL est un système de base de données relationnelle objet. Ajoutez le référentiel PostgreSQL dans votre système.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
Importez la clé de signature du référentiel et mettez à jour les listes de packages.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Installez le serveur de base de données PostgreSQL.
sudo apt -y install postgresql postgresql-contrib
Démarrez le serveur PostgreSQL et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Modifiez le mot de passe de l'utilisateur PostgreSQL par défaut.
sudo passwd postgres
Connectez-vous en tant qu'utilisateur PostgreSQL.
sudo su - postgres
Créez un nouvel utilisateur PostgreSQL pour Zabbix.
createuser zabbix
PostgreSQL fournit le psql
shell pour exécuter des requêtes sur la base de données. Basculez vers le shell PostgreSQL en exécutant.
psql
Définissez un mot de passe pour l'utilisateur de base de données nouvellement créé pour la base de données Zabbix.
ALTER USER zabbix WITH ENCRYPTED password 'StrongPassword';
Créez une nouvelle base de données pour Zabbix.
CREATE DATABASE zabbix OWNER zabbix;
Sortez du psql
shell.
\q
Basculez vers l' sudo
utilisateur à partir de l' postgres
utilisateur actuel .
exit
Installez Zabbix
Zabbix fournit des binaires d'installation pour Ubuntu, qui peuvent être installés directement à partir du référentiel Zabbix. Ajoutez le référentiel Zabbix dans votre système.
wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
sudo apt update
Installez Zabbix server
et Zabbix web
.
sudo apt -y install zabbix-server-pgsql zabbix-frontend-php
Importez la base de données PostgreSQL, fournie avec l'application.
zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -H -u zabbix bash -c 'psql -U zabbix zabbix'
Vous devriez voir quelque chose de similaire à ce qui suit à la fin de la sortie.
...
INSERT 0 1
INSERT 0 1
COMMIT
Ouvrez le fichier de configuration Zabbix pour mettre à jour les détails de la base de données.
sudo nano /etc/zabbix/zabbix_server.conf
Recherchez les lignes suivantes et mettez à jour les valeurs en fonction de la configuration de votre base de données. Vous devrez décommenter les lignes DBHost
et DBPort
.
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=StrongPassword
DBPort=5432
Zabbix installe automatiquement le fichier hôte virtuel pour Apache. Nous devrons configurer l'hôte virtuel pour mettre à jour le fuseau horaire.
sudo nano /etc/apache2/conf-available/zabbix.conf
Trouvez les lignes suivantes.
<IfModule mod_php7.c>
...
#php_value date.timezone Europe/Riga
Mettez à jour les lignes en fonction de votre fuseau horaire, comme indiqué ci-dessous.
<IfModule mod_php7.c>
...
php_value date.timezone Asia/Kolkata
Redémarrez maintenant Apache pour appliquer ces changements de configuration.
sudo systemctl restart apache2
Démarrez également le serveur Zabbix et activez-le pour qu'il démarre automatiquement au démarrage.
sudo systemctl start zabbix-server
sudo systemctl enable zabbix-server
Vous devriez avoir le serveur Zabbix opérationnel. Vous pouvez vérifier l'état du processus.
sudo systemctl status zabbix-server
Pour accéder au tableau de bord d'administration, vous pouvez l'ouvrir à l' http://192.0.2.1/zabbix
aide de votre navigateur préféré. Vous verrez un message de bienvenue. Vous devriez avoir tous les prérequis satisfaits sur la prochaine interface. Suivez les instructions de la page d'installation pour installer le logiciel. Une fois le logiciel installé, connectez-vous en utilisant le nom d'utilisateur Admin
et le mot de passe zabbix
. Zabbix est maintenant installé et prêt à collecter les données de l'agent Zabbix.
Configurer l'agent sur le serveur
Pour surveiller le serveur sur lequel Zabbix est installé, vous pouvez configurer l'agent sur le serveur. L'agent Zabbix rassemblera les données d'événement du serveur Linux pour les envoyer au serveur Zabbix. Par défaut, le numéro de port 10050
est utilisé pour envoyer les événements et les données au serveur.
Installez l'agent Zabbix.
sudo apt -y install zabbix-agent
Démarrez l'agent et activez-le pour qu'il démarre automatiquement au démarrage.
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
Étant donné que la communication entre l'agent Zabbix et le serveur Zabbix se fait localement, il n'est pas nécessaire de configurer de chiffrement.
Avant que le serveur Zabbix puisse recevoir des données, vous devez activer l'hôte. Connectez-vous au tableau de bord d'administration Web du serveur Zabbix et accédez à Configuration >> Host
. Vous verrez une entrée désactivée de l'hôte du serveur Zabbix. Sélectionnez l'entrée et cliquez sur le Enable
bouton pour activer la surveillance de l'application du serveur Zabbix et du système de base sur lequel le serveur Zabbix est installé.
Agent de configuration sur des machines Linux distantes
Il existe trois méthodes par lesquelles un agent Zabbix distant peut envoyer des événements au serveur Zabbix. La première méthode consiste à utiliser une connexion non chiffrée, et la seconde utilise une clé pré-partagée sécurisée. Le troisième moyen, le plus sûr, consiste à chiffrer la transmission à l'aide de certificats RSA.
Avant de procéder à l'installation et à la configuration de l'agent Zabbix sur la machine distante, nous devons générer les certificats sur le système de serveur Zabbix. Dans ce didacticiel, nous utiliserons des certificats auto-signés.
Exécutez les commandes suivantes sur le serveur Zabbix en tant sudo
qu'utilisateur .
Créez un nouveau répertoire pour stocker les clés Zabbix et générer la clé privée pour l'autorité de certification.
mkdir ~/zabbix-keys && cd ~/zabbix-keys
openssl genrsa -aes256 -out zabbix-ca.key 4096
Il vous demandera une phrase secrète pour protéger la clé privée. Une fois la clé privée générée, procédez à la génération du certificat pour l'autorité de certification.
openssl req -x509 -new -key zabbix-ca.key -sha256 -days 3560 -out zabbix-ca.crt
Fournissez la phrase secrète de la clé privée. Il vous demandera quelques détails sur votre pays, votre état, votre organisation. Fournissez les détails en conséquence.
user@vultr:~/zabbix-keys$ openssl req -x509 -new -key zabbix-ca.key -sha256 -days 3560 -out zabbix-ca.crt
Enter pass phrase for zabbix-ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:My State
Locality Name (eg, city) []:My City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:My Unit
Common Name (e.g. server FQDN or YOUR name) []:Zabbix CA
Email Address []:[email protected]
Nous avons réussi à générer le certificat CA. Générez la clé privée et le CSR pour le serveur Zabbix.
openssl genrsa -out zabbix-server.key 2048
openssl req -new -key zabbix-server.key -out zabbix-server.csr
Veuillez ne pas fournir de phrase secrète pour crypter la clé privée lors de l'exécution de la commande ci-dessus. À l'aide de la CSR, générez le certificat pour le serveur Zabbix.
openssl x509 -req -in zabbix-server.csr -CA zabbix-ca.crt -CAkey zabbix-ca.key -CAcreateserial -out zabbix-server.crt -days 1825 -sha256
De même, générez la clé privée et le CSR pour l'hôte ou l'agent Zabbix.
openssl genrsa -out zabbix-host1.key 2048
openssl req -new -key zabbix-host1.key -out zabbix-host1.csr
Générez maintenant un certificat.
openssl x509 -req -in zabbix-host1.csr -CA zabbix-ca.crt -CAkey zabbix-ca.key -CAcreateserial -out zabbix-host1.crt -days 1460 -sha256
Copiez les certificats dans le répertoire de configuration Zabbix.
sudo mkdir /etc/zabbix/keys
sudo cp zabbix-ca.* zabbix-server.* /etc/zabbix/keys
Indiquez la propriété des certificats à l'utilisateur Zabbix.
sudo chown -R zabbix: /etc/zabbix/keys
Ouvrez le fichier de configuration du serveur Zabbix pour mettre à jour le chemin des certificats.
sudo nano /etc/zabbix/zabbix_server.conf
Recherchez ces lignes dans le fichier de configuration et modifiez-les comme indiqué ci-dessous.
TLSCAFile=/etc/zabbix/keys/zabbix-ca.crt
TLSCertFile=/etc/zabbix/keys/zabbix-server.crt
TLSKeyFile=/etc/zabbix/keys/zabbix-server.key
Enregistrez le fichier et quittez l'éditeur. Redémarrez le serveur Zabbix pour que les changements de configuration puissent prendre effet.
sudo systemctl restart zabbix-server
Copiez les certificats à l'aide de la scp
commande sur l'ordinateur hôte que vous souhaitez surveiller.
cd ~/zabbix-keys
scp zabbix-ca.crt zabbix-host1.* [email protected]:~
Assurez-vous que vous remplacez 192.0.2.2
par l'adresse IP réelle de l'hôte distant sur lequel vous souhaitez installer l'agent Zabbix.
Installer l'hôte Zabbix
Maintenant que nous avons copié les certificats sur le système hôte, nous sommes prêts à installer l'agent Zabbix.
Désormais, toutes les commandes doivent être exécutées sur l'hôte que vous souhaitez surveiller .
Ajoutez le référentiel Zabbix dans le système.
wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
sudo apt update
Installez l'agent Zabbix dans le système.
sudo apt -y install zabbix-agent
Pour la configuration et l'installation de Zabbix, accédez à l' étape Installer l'hôte Zabbix du guide Zabbix pour CentOS 7 .