- Modifié
Bonjour,
Voici un tuto sur l'installation et la configuration d'un système simple et rapide pour superviser vos machines. Afficher les métriques dans de jolis dashboards. Et créer des alertes automatiques.
Vous avez la possibilité d'installer un container LXC préconfigurer en suivant le lien suivant . Rechercher Zabbix et suiver la procédure.
Ou de l'installer pas à pas par vous-même.
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
- Si on veut utiliser NPM
On modifie le fichier sites-enabled/000-default
<VirtualHost *:80> ServerAdmin admin@ndd.tld DocumentRoot /usr/share/zabbix ServerName zabbix.lilp.fr Alias /zabbix /usr/share/zabbix <Directory /usr/share/zabbix> Options FollowSymLinks AllowOverride None Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Configuration des hôtes sur Zabbix
Installation de l'agent Zabbix sur chacun de nos hôtes
apt install zabbix-agent
Configuration de l'agent
vi /etc/zabbix/zabbix-agen
t
On modifie les valeurs suivantesServer=IPdeZabbix ServerActive=IPdeZabbix Hostname=NomduClient
On recharge la configuration
systemctl restart zabbix-agent
Proxmox
On modifie les checks pour les containers Proxmox
vi /etc/zabbix/zabbix-agent.conf.d/zabbix_container.conf UserParameter=ct.memory.size[*],free -b | awk 'NR==2 {total=$ 2; used=($ 3+$ 5); pused=(($ 3+$ 5)*100/$ 2); free=$ 4; pfree=($ 4*100/$ 2); shared=$ 5; buffers=$ 6; cached=$ 6; available=$ 7; pavailable=($ 7*100/$ 2); if("$1" == "") {printf("%.0f", total )} else {printf("%.0f", $1 "" )} }' UserParameter=ct.swap.size[*],free -b | awk 'NR==3 {total=$ 2; used=$ 3; free=$ 4; pfree=($ 4*100/$ 2); pused=($ 3*100/$ 2); if("$1" == "") {printf("%.0f", free )} else {printf("%.0f", $1 "" )} }' UserParameter=ct.cpu.load[*],cut -d" " -f1-3 /proc/loadavg | awk -F'[, ]+' '{avg1=$(NF-2); avg5=$(NF-1); avg15=$(NF)}{print $2/'$(nproc)'}' UserParameter=ct.uptime,cut -d"." -f1 /proc/uptime
On relance le service
systemctl restart zabbix-agent
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.