Créer un container Debian à jour
Installer les packages essentiels
apt-get install build-essential libmariadb-dev sudo libxml2-dev snmp libsnmp-dev libcurl4-openssl-dev libevent-dev libpcre3-dev libxml2-dev libmariadb-dev libopenipmi-dev pkg-config -y
Création d'un utilisateur spécifique pour Zabbix
useradd -r -d /var/lib/zabbix -s /sbin/nologin -M zabbix
mkdir /var/lib/zabbix
chown -R zabbix:zabbix /var/lib/zabbix
Installation du serveur LAMP
apt-get install apache2 mariadb-server php-gd php-xml php-bcmath php-mbstring libapache2-mod-php php-ldap php-mysql -y
Lancement du serveur Apache et de la DB
systemctl start apache2 mariadb
systemctl enable apache2 mariadb
Création de la DB spécifique
mysql
create database zabbixdb character set utf8 collate utf8_bin;
grant all on zabbixdb.* to zabbixadmin@localhost identified by 'securepassword';
flush privileges;
exit;
Téléchargement de la dernière version de Zabbix et untar
cd /tmp
wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.0.tar.gz
tar -xvzf zabbix-7.0.0.tar.gz
Pré configuration
cd zabbix-7.0.0
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make install
Importation des schémas dans la DB
cd ~/zabbix-6.0.3/database/mysql/
mysql -u zabbixadmin -p zabbixdb < schema.sql
mysql -u zabbixadmin -p zabbixdb < images.sql
mysql -u zabbixadmin -p zabbixdb < data.sql
Édition du fichier de configuration de Zabbix avec nos propres informations
vi /usr/local/etc/zabbix_server.conf
DBHost=localhost
DBName=zabbixdb
DBUser=zabbixadmin
DBPassword=securepassword
LogFile=/var/log/zabbix_server.log
Création du service Zabbix
vi /etc/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target network.target mariadb.service
[Service]
Type=oneshot
User=zabbix
ExecStart=/usr/local/sbin/zabbix_server
ExecReload=/usr/local/sbin/zabbix_server -R config_cache_reload
RemainAfterExit=yes
PIDFile=/var/run/zabbix/zabbix_server.pid
[Install]
WantedBy=multi-user.target
Création du fichier systemd
vi /etc/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target network.target
[Service]
Type=oneshot
User=zabbix
ExecStart=/usr/local/sbin/zabbix_agentd
RemainAfterExit=yes
PIDFile=/var/run/zabbix/zabbix_agent.pid
[Install]
WantedBy=multi-user.target
Chargement du daemon
systemctl daemon-reload
On lance et active le service
systemctl start zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent
Configuration d'apache
mkdir /var/www/html/zabbix
Copie des fichiers de configuration
cp -ar ~/zabbix-0.0.0/ui/* /var/www/html/zabbix/
On change le propriétaire du dossier
chown -R www-data:www-data /var/www/html/zabbix/
On active les modules
echo "opcache.enable=0" >> /etc/php/7.4/mods-available/opcache.ini
On édite le fichier de configuration Apache2
vi /etc/php/7.4/apache2/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = UTC
On relance Apache pour charger la nouvelle configuration
systemctl restart apache2
On accède à l'interface Zabbix
http://your-server-ip/zabbix
On configure
Mdp par défaut Admin/zabbix
🚨On pense à les changer
Activation de la découverte sur Zabbix
Collecte de données=>Découverte=>Local Network=>Choisir l'intervalle d'actualisation=>Actualiser=> Activer
Paramétrage des hôtes
Collecte de données=>Hôtes
Les hôtes paramétrés doivent apparaitre ici, une fois le délai passé de la découverte
En cliquant sur un hôte, on peut lui attribuer des Modèles spécifiques en fonction de son type (Linux by zabbix agent, windows by zabix agent,...). Cela concerne les informations qui remonteront pour l'hôte spécifique.
Le logo ZBX doit passer en vert (cela signifie que vous avez bien des informations qui remontent) sinon, vérifier la configuration de l'agent zabbix sur l'hôte.
Une fois les hôtes configurés et remontés, vous avez un dashboard synthétique accessible depuis "Tableaux de bords"
Vous voyez les dernières alertes remontées, leurs status, et vous pouvez interagir directement dessus via le bouton "Actualiser".
Vous pouvez paramétrer des supports de communication pour l'envoi des alertes via Alertes=>Type de média
Vous pouvez quels utilisateurs seras prévenu par quels supports et pour quels types d'alertes via le menu Utilisateurs=>Utilisateurs. Sélectionner l'utilisateur en question, puis sur "Media", "Ajouter"
Installation de Grafana ou utilisation de Grafana On cloud
Pour ma part j'ai commencé avec Grafana en local puis j'ai migré sur GrafanCloud.
Pour cela, il suffit de créer un compte gratuit sur https://grafana.com/products/cloud/
Par la suite, nos dashboard grafana seront accéssible via une adresse https://MyGrafana.grafana.net/d/XxX/
Connecter Grafana à son instance Zabbix
Connections=>DataSources=> Add Datasources=>Zabbix=>Activer la source
Ouvrir les paramètres du DataSources Zabbix et préciser son adresse ZAbbix : https://VotreZabbix/zabbix/api_jsonrpc.php, renseigner les différents champs d'authentification.
Paramétrage des alertes
Alerts & IRM=>Contact Points
Créer un contact points (pour recevoir les notifications d'alertes). Différents supports existe (email, slack, télégram, sms,...).
Création de vos dashboards
Dashboard=>New=> New dashboard=>Add visualization
Choisissez votre source de données, Zabbix dans notre cas.
Puis créer les graphiques souhaitées à l'aide de requêtes pré établis ou en créant directement les votre
Création de vos alertes
Vous pouvez créer vos alertes de 0 depuis Alerts & IRM=>Alerting=>Alert Rules
New Alert Rule
Choisissez un nom, votre source de donnée, la requête, la condition, définition les paramètres d'évélation de l'alerte ( durée pendant le seuil doit être déclenchée pour envoyer la notification). Vous pouvez personnaliser les tags, messages.
Vous pouvez créer une alerte directement depuis vos dashboards, via les 3 points du graphique, More, New Alert Rule (cela crée une alerte pré configuré depuis les indicateurs du tableau).
Normalement vous avez maintenant votre supervision, vos dashboards et vos alertes de configurer.