Zabbix
- Installation bare-metal
- Prérequis et Installation
- Génération d'un certificat wildcard auto-signé
- Création du virtualhost (hôte virtuel)
- Suite de l'installation via l'interface Web
- Ajouter le proxy sur le serveur Zabbix
- Installer un agent Zabbix sous Windows
- Installer un agent Zabbix sous Linux
- Configurer l'agent Zabbix
- Ajouter un hôte dans Zabbix
- Superviser un hôte via le proxy
- Déploiement de l'agent Zabbix par GPO
- Importation de template
- Enregistrement automatique des agents Zabbix
- Superviser un ESXI 7
- Supervision d'un serveur HP avec l'iLO
- Ajouter un item SNMP (exemple avec iLO)
Installation bare-metal
Prérequis et Installation
apt update && apt upgrade -y && apt dist-upgrade -y
apt install apache2 mariadb-server php7.3 php7.3-mysql php7.3-xml php7.3-curl php7.3-imap php7.3-ldap php7.3-zip php7.3-mbstring php7.3-gd unzip ntp -y
wget https://repo.zabbix.com/zabbix/5.2/debian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb
dpkg -i zabbix-release_5.2-1+debian10_all.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Création de la base de données et de l'utilisateur Zabbix
mysql -uroot -p
On change le mot de passe 'password' par autre chose.
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
quit
On importe le schéma et les données.
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
On rentre le mot de passe du compte Zabbix.
On ajoute le mot de passe de la base de données dans le fichier de configuration de Zabbix.
nano /etc/zabbix/zabbix_server.conf
On redémarre Apache et Zabbix, puis on active zabbix et Apache2 au démarrage.
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2
Génération d'un certificat wildcard auto-signé
On crée le répertoire pour la clé et le certificat, puis on génère le certificat.
cd /etc/apache2
mkdir ssl
cd ssl/
mkdir private
openssl req -new -x509 -keyout cert.pem -out cert.pem -days 365 -nodes
On protège le certificat.
chown -R root:root /etc/apache2/ssl/cert.pem
chmod 0700 /etc/apache2/ssl/
chmod 0600 /etc/apache2/ssl/*
Création du virtualhost (hôte virtuel)
cd /etc/apache2/sites-available/
nano zabbix.littoral1.fr.conf
<VirtualHost *:80>
ServerName zabbix.littoral1.fr
ServerAlias www.zabbix.littoral1.fr
ServerAdmin Administrateur@littoral1.fr
DocumentRoot /usr/share/zabbix
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Redirect permanent / https://zabbix.littoral1.fr/
</VirtualHost>
<VirtualHost *:443>
ServerName zabbix.littoral1.fr
ServerAlias www.zabbix.littoral1.fr
ServerAdmin Administrateur@littoral1.fr
DocumentRoot /usr/share/zabbix
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile "/etc/apache2/ssl/cert.pem"
SSLCertificateKeyFile "/etc/apache2/ssl/cert.pem"
</VirtualHost>
On active le site.
a2ensite zabbix.littoral1.fr
systemctl reload apache2
a2dissite 000-default.conf
systemctl reload apache2
systemctl restart apache2
Suite de l'installation via l'interface Web
Les logins par défaut sont : Admin : zabbix
Ajouter le proxy sur le serveur Zabbix
Pour déployer un proxy Zabbix, voir Déploiement de Zabbix Proxy sous Docker ou
Dans l'interface Web :
puis en haut à droite :
On met en "Active" et on donne le même nom que l'on a mis dans le docker-compose du proxy (IMPORTANT).
Dans l'onglet Encryption, on peut mettre en PSK et définir les informations si on a mis cela en place dans le docker-compose.
Installer un agent Zabbix sous Windows
Lien de téléchargement : https://www.zabbix.com/download_agents/
On choisit une version compatible avec la version de notre serveur Zabbix.
On exécute le .msi.
On rentre l'adresse IP ou le nom DNS du serveur Zabbix dans les deux cases. On change le port pour 10051 (active checks).
Installer un agent Zabbix sous Linux
Lien de téléchargement de l'agent : Download Zabbix
On sélectionne les paquets qui correspondent à la distribution et la version.
Il faut adapter les URL à votre version.
apt install wget -y
dpkg -i zabbix-release_5.2-1+debian10_all.deb
apt update
apt install zabbix-agent
Configurer l'agent Zabbix
Sous Linux via nano ou vim :
nano /etc/zabbix/zabbix_agentd.conf
Dans la rubrique "Passive Checks" on rentre l'adresse IP ou le nom DNS du serveur Zabbix.
On fait de même dans la rubrique "Active checks".
On modifie également le nom d'hôte après "Hostname=".
On redémarre l'agent.
systemctl restart zabbix-agent
Ajouter un hôte dans Zabbix
On clique sur "Create host".
On rentre le nom d'hôte, on attribue un groupe et on renseigne l'adresse IP ou le nom DNS.
On applique un modèle.
On clique ensuite sur Add.
L'icône "ZBX" pour l'agent Zabbix passe en vert car nous avons des passives checks.
Superviser un hôte via le proxy
Je vais prendre pour exemple un de mes serveurs Linux sous Ubuntu Server 18.04.
On choisit la bonne distribution et version.
wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu18.04_all.deb
dpkg -i zabbix-release_5.2-1+ubuntu18.04_all.deb
apt update
apt install zabbix-agent
On modifie ensuite la configuration pour ajouter l'adresse IP du proxy et le nom d'hôte de l'hôte.
nano /etc/zabbix/zabbix_agentd.conf
Server=IP_DU_PROXY (donc du serveur Docker)
ServerActive=IP_DU_PROXY (donc du serveur Docker)
Hostname=Nom du serveur à superviser
On redémarre le serveur.
systemctl restart zabbix-agent
Dans l'interface Web, dans Configuration, on ajoute un hôte.
On indique le nom, des groupes , l'adresse IP (ou nom d'hôte si le nom peut être résolu) et le proxy (je l'ai nommé homelab précédemment).
On se rend dans l'onglet "Templates" et on ajoute un ou plusieurs templates.
Le logo "ZBX" passera au vert.
Déploiement de l'agent Zabbix par GPO
On télécharge d'abord l'agent.
https://www.zabbix.com/fr/download_agents
On choisit la version correspondante (dans notre cas, la dernière donc 5.2).
On déplace le fichier .msi dans C:\Share\Deploiement\Zabbix.
Avant de faire le script, on modifie les options de Zabbix, car nous allons mettre en place le chiffrement par PSK.
Dans Administration et Général :
Pour générer un PSK :
openssl rand -hex 32
On ajoute ensuite un groupe pour les serveurs Windows.
En haut à droite, on clique sur "Créer un groupe d'hôtes".
On active ensuite l'auto registration.
On se rend dans "Configuration" puis "Actions".
En haut à droite, on clique.
On définit un nom puis on clique sur "Ajouter".
On définit la métadonnée que l'on a mis dans le script.
Ensuite, dans la catégorie "Opérations", on ajoute l'hôte, on lui définit un groupe et un modèle.
Script d'installation
On crée ce script dans le dossier Zabbix du partage.
msiexec /i \\CPD01\Deploiement\Zabbix\zabbix_agent-5.2.5-windows-amd64-openssl.msi /qn^
ENABLEREMOTECOMMANDS=1^
SERVER=10.1.1.3^
SERVERACTIVE=10.1.1.3^
HOSTNAME=%computerName%^
HOSTMETADATA=WindowsServer^
TLSCONNECT=psk^
TLSACCEPT=psk^
TLSPSKIDENTITY=Littoral^
TLSPSKVALUE=7ef28f8b8524f2ed2b85e9d60db6ab8e40f0012238d1f068578796c7768981ec
On l'exécute sur un serveur pour le tester.
Création de la GPO
Dans la "Gestion de stratégie de groupe" :
Clic droit et modifier.
Liaison de la GPO aux OU
On lie cette GPO à l'OU "Servers".
On teste, sur SRV-MAILBOX01.
Importation de template
Nous allons rajouter le template de PAPAMICA (https://raw.githubusercontent.com/PAPAMICA/Templates/master/Zabbix/VMware/Template-APP_VMware--Hypervisor.xml) Merci à lui.
Dans l'interface web :
Enregistrement automatique des agents Zabbix
Ajouter les agents Zabbix automatiquement
Pour ajouter les VM avec agent, on crée une action d'enregistrement automatique sur Zabbix.
Puis en à gauche puis Auto-registration.
On ajoute.
On clique sur Add.
Du côté des agents, on rajoute "linux" dans Hostmetadata.
On redémarre l'agent.
Superviser un ESXI 7
Ajout de macros
Au début, on doit rentrer les informations liées à l'ESXI (ou vCenter).
On peut le faire de deux façons : ajouter les "macros" (informations) dans l'hôte ou via le template. Ici, on va le faire via le template.
On modifie le template "VMware macros" puis dans l'onglet "Macros".
On rentre les informations d'un compte en lecture seule (on peut également utiliser root, mais cela n'est pas du tout recommandé !)
Pour l'URL, il s'agit de l'adresse IP de l'ESXI et on rajoute "/sdk". Par exemple : https://192.168.199.252/sdk
On enlève également la règle de découverte des VMs. En effet, Zabbix va détecter automatiquement les VMs et créer les hôtes. On ne peut pas les modifier pour superviser les VMs par l'agent, à moins d'avoir un duplicat, ou de copier manuellement sur chaque hôte l'UUID de la VM et de la rentrer dans l'onglet macros de chaque hôte.
On crée ensuite un hôte, avec comme template uniquement "VMware".
Supervision d'un serveur HP avec l'iLO
Tout d'abord, on importe un modèle SNMP pour iLO (https://github.com/PAPAMICA/Templates/blob/master/Zabbix/iLO-4/Template-SNMP-HP-iLO4.xml).
On ajoute ensuite l'hôte :
Et on lui assigne les deux templates pour iLO.
Dans macros, on définit la communauté.
Quelques exemples de remontées :
J'ai eu un soucis avec mon serveur HP, qui commence à être âgé : le snmp s'arrête pendant plusieurs minutes et reprend. Idem avec snmpwalk.
Pour enlever les alertes à propos de ça :
Dans Templates, HP iLO, on se rend dans items et on désactive l'item "SNMP Agent availability"
Ajouter un item SNMP (exemple avec iLO)
On se rend dans le template à modifier, dans mon cas le modèle pour l'iLO.
Dans l'onglet Items, on clique sur ajouter.
On rajoute les informations : nom, type, la clé, SNMP OID etc.
Ce qui donne :
Il s'agit ici de la moyenne de la consommation électrique sur 24h du serveur.