Chapitre 149 minIntermédiaire
Aide-mémoire Zabbix : ports, clés et fonctions
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- retrouver vite un port, un menu ou une clé d'élément ;
- écrire un déclencheur avec la bonne fonction ;
- tester un agent, un hôte SNMP ou un média depuis la ligne de commande.
Cet aide-mémoire rassemble ce qu'il faut retrouver vite en TP, en stage ou en révision : les ports et le sens des flux, les menus de Zabbix 7.0, les clés d'éléments les plus courantes, les fonctions des déclencheurs, les macros, les fichiers et les commandes de test. Chaque ligne renvoie au chapitre qui l'explique.
Ports et sens des connexions
| Flux | Source → destination | Port | Chapitre |
|---|---|---|---|
| Contrôle passif de l'agent | Serveur ou proxy → agent | TCP 10050 | 3 |
| Contrôle actif de l'agent | Agent → serveur ou proxy | TCP 10051 | 3 |
| Proxy actif | Proxy → serveur | TCP 10051 | 3 |
| Proxy passif | Serveur → proxy | TCP 10051 | 3 |
| Interrogation SNMP | Serveur ou proxy → équipement | UDP 161 | 7 |
| Trap SNMP | Équipement → serveur (snmptrapd) | UDP 162 | 7 |
| Interface web et API | Navigateur, Grafana → serveur web | TCP 443 (ou 80) | 4 |
| Grafana | Navigateur → Grafana | TCP 3000 | 10 |
| API de Proxmox VE | Serveur → nœud Proxmox | TCP 8006 | 7 |
| Courriel | Serveur → relais SMTP | TCP 587 (STARTTLS) ou 465 | 9 |
| Base de données | Serveur et interface → MariaDB | TCP 3306, ou socket local | 4 |
| Uptime Kuma | Navigateur → Uptime Kuma | TCP 3001 | 12 |
Les menus de Zabbix 7.0
| Pour… | Menu |
|---|---|
| Voir les problèmes en cours, acquitter | Monitoring > Problems |
| Lire les dernières valeurs et leurs graphiques | Monitoring > Latest data |
| Voir l'état des hôtes, leurs scénarios web, leurs graphiques | Monitoring > Hosts |
| Consulter et éditer les cartes | Monitoring > Maps |
| Résultats de la découverte réseau | Monitoring > Discovery |
| Créer un hôte, ses éléments, déclencheurs, scénarios web | Data collection > Hosts |
| Modèles et groupes de modèles | Data collection > Templates, Data collection > Template groups |
| Groupes d'hôtes | Data collection > Host groups |
| Périodes de maintenance | Data collection > Maintenance |
| Règles de découverte réseau | Data collection > Discovery |
| Actions sur déclencheur, découverte, enregistrement automatique | Alerts > Actions |
| Types de médias (courriel, Teams, Slack…) | Alerts > Media types |
| Utilisateurs, groupes, rôles, jetons d'API, authentification | Users > Users, User groups, User roles, API tokens, Authentication |
| Services, SLA et rapport de SLA | Services > Services, Services > SLA, Services > SLA report |
| Journal des actions et des envois | Reports > Action log |
| Déclencheurs les plus fréquents | Reports > Top 100 triggers |
| Journal d'audit (qui a modifié quoi) | Reports > Audit log |
| Macros globales | Administration > Macros |
| Proxys et groupes de proxys | Administration > Proxies, Administration > Proxy groups |
| Durées de conservation | Administration > Housekeeping |
| File d'attente des collectes en retard | Administration > Queue |
Clés d'éléments courantes
| Clé | Type | Renvoie |
|---|---|---|
agent.ping | Agent | 1 si l'agent répond |
agent.version | Agent | Version de l'agent |
system.cpu.util | Agent | Utilisation du processeur, en % |
system.cpu.load[all,avg5] | Agent (Linux) | Charge moyenne sur 5 minutes |
system.cpu.num | Agent | Nombre de processeurs logiques |
vm.memory.size[available] | Agent | Mémoire disponible, en octets |
vm.memory.util | Agent | Mémoire utilisée, en % |
vfs.fs.size[/,pused] | Agent | Espace utilisé de /, en % (free, used, total, pfree existent aussi) |
vfs.fs.discovery | Agent | Liste des systèmes de fichiers (découverte) |
net.if.in["ens18"], net.if.out["ens18"] | Agent | Octets reçus, envoyés (compteur) |
proc.num[nginx] | Agent | Nombre de processus nginx |
service.info[DNS] | Agent (Windows) | État du service : 0 en marche, 6 arrêté, 255 absent |
perf_counter_en["\System\Processor Queue Length"] | Agent (Windows) | Un compteur de performance, par son nom anglais |
eventlog[Application,,"Error"] | Agent actif (Windows) | Les événements d'erreur du journal Application |
log[/chemin/fichier,motif] | Agent actif | Les nouvelles lignes qui contiennent le motif |
net.dns[192.168.10.177,ad.sorbier.example,SOA] | Agent | 1 si le serveur DNS répond pour ce nom |
net.tcp.service[https,,443] | Simple check | 1 si le service répond sur ce port |
icmpping, icmppingloss, icmppingsec | Simple check | Réponse au ping, pertes en %, temps de réponse |
web.test.fail[Scénario] | Scénario web | 0, ou le numéro de l'étape en échec |
web.test.time[Scénario,Étape,resp] | Scénario web | Temps de réponse de l'étape, en secondes |
web.certificate.get[nom,443] | Agent 2 | Les attributs du certificat du site, en JSON |
snmptrap[regexp], snmptrap.fallback | SNMP trap | Les traps reçus pour l'hôte |
zabbix[host,agent,available] | Interne | Disponibilité de l'agent : 0 non, 1 oui, 2 inconnue |
zabbix[proxy,prx-mrs,lastaccess] | Interne | Heure du dernier contact du proxy |
Fonctions des déclencheurs
| Fonction | Exemple | Lecture |
|---|---|---|
last | last(/h/proc.num[nginx])=0 | Dernière valeur |
min | min(/h/system.cpu.util,5m)>90 | Au-dessus de 90 pendant 5 minutes |
max | max(/h/vm.memory.size[available],10m)<200M | En dessous de 200 Mio pendant 10 minutes |
avg | avg(/h/web.test.time[S,É,resp],5m)>3 | Moyenne sur 5 minutes |
count | count(/h/web.test.fail[S],10m,"gt","0")>=3 | Au moins 3 échecs en 10 minutes |
nodata | nodata(/h/agent.ping,5m)=1 | Aucune valeur depuis 5 minutes |
change | change(/h/system.sw.packages.get)<>0 | La valeur a changé |
find | find(/h/log[…],,"like","FATAL")=1 | La dernière valeur contient le texte |
fuzzytime | fuzzytime(/h/system.localtime,60)=0 | Horloge décalée de plus de 60 s |
timeleft | timeleft(/h/vfs.fs.size[/,pused],7d,90)<14d | 90 % atteints dans moins de 14 jours |
forecast | forecast(/h/vfs.fs.size[/,pused],7d,30d)>95 | Plus de 95 % prévus dans 30 jours |
percentile | percentile(/h/net.if.in[…],30d,95) | 95e centile sur 30 jours |
Opérateurs : =, <>, <, <=, >, >=, and, or, not. Suffixes de temps : s, m, h, d, w. Suffixes d'unité dans les expressions : K, M, G, T, en puissances de 1 024. Décalage dans le temps : avg(/h/k,1h:now-1w) (la même heure, la semaine dernière).
Gravités
Not classified, Information, Warning, Average, High, Disaster (chapitre 5).
Macros utiles
| Macro | Sens |
|---|---|
{HOST.NAME}, {HOST.CONN} | Nom visible de l'hôte, adresse de son interface |
{EVENT.NAME}, {EVENT.SEVERITY}, {EVENT.ID} | Nom, gravité et numéro de l'événement |
{EVENT.DATE}, {EVENT.TIME}, {EVENT.DURATION} | Date, heure et durée du problème |
{EVENT.RECOVERY.DATE}, {EVENT.RECOVERY.TIME} | Date et heure du rétablissement |
{EVENT.OPDATA} | Données opérationnelles du déclencheur |
{ITEM.LASTVALUE1} | Dernière valeur du premier élément de l'expression |
{TRIGGER.URL} | Lien du déclencheur (vers la procédure) |
{$ZABBIX.URL} | Macro globale à créer : l'adresse de l'interface, pour les webhooks |
{$VFS.FS.PUSED.MAX.WARN:"/var"} | Macro de modèle avec contexte : un seuil pour un seul volume |
Fichiers et services
| Élément | Emplacement ou nom |
|---|---|
| Configuration du serveur | /etc/zabbix/zabbix_server.conf (DBPassword, StartSNMPTrapper, SNMPTrapperFile) |
| Journal du serveur | /var/log/zabbix/zabbix_server.log |
| Configuration de l'interface web | /etc/zabbix/web/zabbix.conf.php |
| Agent 2 sous Linux | /etc/zabbix/zabbix_agent2.conf, dossier /etc/zabbix/zabbix_agent2.d/, service zabbix-agent2, journal /var/log/zabbix/zabbix_agent2.log |
| Agent 2 sous Windows | C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf, service « Zabbix Agent 2 » |
| Paramètres de l'agent | Server=, ServerActive=, Hostname=, HostMetadata=, TLSConnect=, TLSAccept=, TLSPSKIdentity=, TLSPSKFile=, UserParameter= |
| Schéma de la base | /usr/share/zabbix-sql-scripts/mysql/server.sql.gz |
| Réception des traps | /etc/snmp/snmptrapd.conf, script zabbix_trap_receiver.pl |
| Grafana | Service grafana-server, configuration /etc/grafana/grafana.ini, port 3000 |
Commandes de test
# Le serveur tourne-t-il, écoute-t-il ?
systemctl status zabbix-server zabbix-agent2 --no-pager
sudo ss -lntup | grep -E ':10050|:10051|:162'
sudo tail -f /var/log/zabbix/zabbix_server.log
# Interroger un agent comme le fait le serveur (paquet zabbix-get)
zabbix_get -s 192.168.10.179 -k agent.version
zabbix_get -s 192.168.10.179 -k 'vfs.fs.size[/,pused]'
zabbix_get -s 192.168.10.179 -k agent.ping --tls-connect psk \
--tls-psk-identity PSK-srv-gestion --tls-psk-file /root/psk-srv-gestion.psk
# Tester un équipement en SNMPv3 (paquet snmp)
snmpget -v3 -l authPriv -u zabbix -a SHA -A 'phrase-auth' -x AES -X 'phrase-priv' 192.168.10.211 1.3.6.1.2.1.1.5.0
snmpwalk -v3 -l authPriv -u zabbix -a SHA -A 'phrase-auth' -x AES -X 'phrase-priv' 192.168.10.211 1.3.6.1.2.1.2.2.1.8
# Envoyer une valeur à un élément de type Zabbix trapper (paquet zabbix-sender)
zabbix_sender -z 192.168.10.180 -s srv-gestion -k sauvegarde.statut -o 0
# Sous Windows Server
Get-Service "Zabbix Agent 2"
Restart-Service "Zabbix Agent 2"
Test-NetConnection 192.168.10.180 -Port 10051
Get-NetTCPConnection -LocalPort 10050 -State Listen
La checklist d'une supervision prête pour l'E6
- Les hôtes sont rangés par groupes, liés aux modèles adaptés, sans erreur dans la colonne Availability.
- Les seuils sont des macros redéfinies sur les hôtes, pas des modèles modifiés.
- Au moins un test de bout en bout (scénario web) par service rendu aux utilisateurs.
- Les équipements réseau sont en SNMPv3
authPriv, les agents en PSK. - Chaque flux de supervision figure dans la matrice des flux, avec sa règle de pare-feu.
- Les alertes partent par au moins un média testé, aux bons destinataires, avec des escalades et des dépendances.
- Chaque alerte importante a sa procédure (lien dans le déclencheur).
- Les alertes ont été provoquées et leur réception notée dans un rapport de test.
- Un tableau de bord répond à une question claire, pour un public identifié.
- La supervision elle-même est surveillée (signal de vie), sauvegardée et documentée.