1. Les types d'éléments #
Collecter n'importe quoi.
Types #
| Type | Exemple de clé ou d'usage |
|---|---|
| Zabbix agent (passif/actif) | system.cpu.util, vfs.fs.size[/,pused], proc.num[nginx] |
| SNMP agent | Interfaces réseau d'un commutateur (OID) |
| HTTP agent | Appeler une API ou une page /metrics |
| Simple check | icmpping, net.tcp.service[https] |
| Calculated | Formule à partir d'autres éléments |
| Dependent item | Extraire une valeur d'un élément maître (sans nouvelle collecte) |
| Log | log[/var/log/app.log,ERROR] (agent actif) |
2. Prétraitement et éléments dépendants #
Une collecte, plusieurs valeurs.
Principe #
Un élément maître collecte une réponse complète (JSON, page Prometheus) ; des éléments dépendants en extraient chacun une valeur par prétraitement. Une seule requête alimente des dizaines d'éléments.
| Étape de prétraitement | Exemple |
|---|---|
| JSONPath | $.connections.active |
| Prometheus pattern | node_load1 ou http_requests_total{code="500"} |
| Regular expression | Extraire une version d'une chaîne |
| Change per second | Transformer un compteur en débit |
| Discard unchanged with heartbeat | Ne stocker que les changements (avec une valeur toutes les heures) |
| JavaScript | Transformation libre |
Bonne Pratique : « Discard unchanged with heartbeat » divise souvent par dix le volume d'historique des éléments qui changent rarement (états, versions).
3. Découverte de bas niveau (LLD) #
S'adapter automatiquement.
Principe #
Une règle de découverte renvoie une liste d'objets (systèmes de fichiers, interfaces, conteneurs, bases) sous forme de macros ({#FSNAME}) ; des prototypes créent automatiquement éléments, déclencheurs et graphes pour chacun.
Règle de découverte : vfs.fs.discovery
Filtre : {#FSTYPE} correspond à ^(ext4|xfs|btrfs)$
Prototype d'élément : vfs.fs.size[{#FSNAME},pused]
Prototype de déclencheur : last(/Mon modèle/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}À savoir : La macro contextuelle {$VFS.FS.PUSED.MAX.CRIT:"/var"} permet un seuil différent pour un seul système de fichiers.Modèles et macros #
- Partir des modèles officiels (plus de 300) et les surcharger par macros plutôt que les modifier.
- Créer ses modèles pour les applications maison ; les exporter en YAML et les versionner.
- Utiliser des modèles imbriqués (un modèle « Application X » qui inclut « Linux » et « Nginx »).
