Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

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

FluxSource → destinationPortChapitre
Contrôle passif de l'agentServeur ou proxy → agentTCP 100503
Contrôle actif de l'agentAgent → serveur ou proxyTCP 100513
Proxy actifProxy → serveurTCP 100513
Proxy passifServeur → proxyTCP 100513
Interrogation SNMPServeur ou proxy → équipementUDP 1617
Trap SNMPÉquipement → serveur (snmptrapd)UDP 1627
Interface web et APINavigateur, Grafana → serveur webTCP 443 (ou 80)4
GrafanaNavigateur → GrafanaTCP 300010
API de Proxmox VEServeur → nœud ProxmoxTCP 80067
CourrielServeur → relais SMTPTCP 587 (STARTTLS) ou 4659
Base de donnéesServeur et interface → MariaDBTCP 3306, ou socket local4
Uptime KumaNavigateur → Uptime KumaTCP 300112

Les menus de Zabbix 7.0

Pour…Menu
Voir les problèmes en cours, acquitterMonitoring > Problems
Lire les dernières valeurs et leurs graphiquesMonitoring > Latest data
Voir l'état des hôtes, leurs scénarios web, leurs graphiquesMonitoring > Hosts
Consulter et éditer les cartesMonitoring > Maps
Résultats de la découverte réseauMonitoring > Discovery
Créer un hôte, ses éléments, déclencheurs, scénarios webData collection > Hosts
Modèles et groupes de modèlesData collection > Templates, Data collection > Template groups
Groupes d'hôtesData collection > Host groups
Périodes de maintenanceData collection > Maintenance
Règles de découverte réseauData collection > Discovery
Actions sur déclencheur, découverte, enregistrement automatiqueAlerts > Actions
Types de médias (courriel, Teams, Slack…)Alerts > Media types
Utilisateurs, groupes, rôles, jetons d'API, authentificationUsers > Users, User groups, User roles, API tokens, Authentication
Services, SLA et rapport de SLAServices > Services, Services > SLA, Services > SLA report
Journal des actions et des envoisReports > Action log
Déclencheurs les plus fréquentsReports > Top 100 triggers
Journal d'audit (qui a modifié quoi)Reports > Audit log
Macros globalesAdministration > Macros
Proxys et groupes de proxysAdministration > Proxies, Administration > Proxy groups
Durées de conservationAdministration > Housekeeping
File d'attente des collectes en retardAdministration > Queue

Clés d'éléments courantes

CléTypeRenvoie
agent.pingAgent1 si l'agent répond
agent.versionAgentVersion de l'agent
system.cpu.utilAgentUtilisation du processeur, en %
system.cpu.load[all,avg5]Agent (Linux)Charge moyenne sur 5 minutes
system.cpu.numAgentNombre de processeurs logiques
vm.memory.size[available]AgentMémoire disponible, en octets
vm.memory.utilAgentMémoire utilisée, en %
vfs.fs.size[/,pused]AgentEspace utilisé de /, en % (free, used, total, pfree existent aussi)
vfs.fs.discoveryAgentListe des systèmes de fichiers (découverte)
net.if.in["ens18"], net.if.out["ens18"]AgentOctets reçus, envoyés (compteur)
proc.num[nginx]AgentNombre 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 actifLes nouvelles lignes qui contiennent le motif
net.dns[192.168.10.177,ad.sorbier.example,SOA]Agent1 si le serveur DNS répond pour ce nom
net.tcp.service[https,,443]Simple check1 si le service répond sur ce port
icmpping, icmppingloss, icmppingsecSimple checkRéponse au ping, pertes en %, temps de réponse
web.test.fail[Scénario]Scénario web0, ou le numéro de l'étape en échec
web.test.time[Scénario,Étape,resp]Scénario webTemps de réponse de l'étape, en secondes
web.certificate.get[nom,443]Agent 2Les attributs du certificat du site, en JSON
snmptrap[regexp], snmptrap.fallbackSNMP trapLes traps reçus pour l'hôte
zabbix[host,agent,available]InterneDisponibilité de l'agent : 0 non, 1 oui, 2 inconnue
zabbix[proxy,prx-mrs,lastaccess]InterneHeure du dernier contact du proxy

Fonctions des déclencheurs

FonctionExempleLecture
lastlast(/h/proc.num[nginx])=0Dernière valeur
minmin(/h/system.cpu.util,5m)>90Au-dessus de 90 pendant 5 minutes
maxmax(/h/vm.memory.size[available],10m)<200MEn dessous de 200 Mio pendant 10 minutes
avgavg(/h/web.test.time[S,É,resp],5m)>3Moyenne sur 5 minutes
countcount(/h/web.test.fail[S],10m,"gt","0")>=3Au moins 3 échecs en 10 minutes
nodatanodata(/h/agent.ping,5m)=1Aucune valeur depuis 5 minutes
changechange(/h/system.sw.packages.get)<>0La valeur a changé
findfind(/h/log[…],,"like","FATAL")=1La dernière valeur contient le texte
fuzzytimefuzzytime(/h/system.localtime,60)=0Horloge décalée de plus de 60 s
timelefttimeleft(/h/vfs.fs.size[/,pused],7d,90)<14d90 % atteints dans moins de 14 jours
forecastforecast(/h/vfs.fs.size[/,pused],7d,30d)>95Plus de 95 % prévus dans 30 jours
percentilepercentile(/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

MacroSens
{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émentEmplacement 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 WindowsC:\Program Files\Zabbix Agent 2\zabbix_agent2.conf, service « Zabbix Agent 2 »
Paramètres de l'agentServer=, 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
GrafanaService grafana-server, configuration /etc/grafana/grafana.ini, port 3000

Commandes de test

bash
# 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
powershell
# 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.

Chapitre terminé !

Tu as lu ce chapitre jusqu'au bout. Passe au suivant tant que c'est frais.

chapitres
–
de série
–
du cours
–
Cours suivant : Haute disponibilitéRevoir le sommaire du cours