1. Les dashboards Zabbix #
Ce qu'on peut construire sans outil externe.
Principe #
Un dashboard est une page de l'interface web Zabbix qui réunit des widgets : courbes, listes de problèmes, jauges, cartes, valeurs. Il peut compter plusieurs pages (onglets), affichées une à une ou en diaporama sur un écran de supervision.
Les dashboards se trouvent dans le menu Dashboards. Le dashboard Global view est livré par défaut ; chaque utilisateur peut créer les siens, qui lui appartiennent tant qu'il ne les partage pas.
Vocabulaire #
| Notion | Définition |
|---|---|
| Dashboard | Ensemble de pages, avec un propriétaire et des droits de partage |
| Page | Onglet du dashboard ; chaque page a sa propre grille de widgets et sa durée d'affichage en diaporama |
| Widget | Bloc de la grille : type, titre, source de données, intervalle de rafraîchissement |
| Grille | Les widgets se placent et se redimensionnent à la souris sur une grille (72 colonnes en 7.0) |
| Dashboard de modèle | Dashboard défini sur un modèle et affiché sur chaque hôte qui lui est lié |
2. Créer un dashboard pas à pas #
De la page blanche au tableau de bord partagé.
Étapes #
Dashboards > All dashboards > Create dashboard.- Propriétés : nom, propriétaire, durée d'affichage par défaut des pages (diaporama) et démarrage automatique du diaporama.
- Add widget : choisir le type, le titre, l'intervalle de rafraîchissement, puis la source (groupes d'hôtes, hôtes, éléments, tags).
- Placer et redimensionner le widget ; ajouter des pages avec Add page pour séparer les thèmes (réseau, bases, applications).
- Save changes, puis Sharing : rendre le dashboard public ou le partager avec des utilisateurs et des groupes, en lecture seule ou en lecture-écriture.
À savoir : Un widget n'affiche que les hôtes sur lesquels l'utilisateur qui consulte a au moins un droit de lecture : un même dashboard partagé montre donc des données différentes selon les droits de chacun.
Le widget Graph #
Le widget Graph trace des courbes à partir de jeux de données (data sets) définis par des motifs d'hôtes et d'éléments, avec jokers : une seule définition couvre tous les serveurs web, présents et futurs.
| Réglage | Exemple | Effet |
|---|---|---|
| Host pattern | web-* | Tous les hôtes dont le nom commence par web- |
| Item pattern | CPU utilization | L'élément de ce nom sur chaque hôte |
| Draw | Line, Points, Staircase, Bar | Forme de la courbe |
| Aggregation | avg sur 5m | Lisse les courbes et réduit le nombre de points |
| Overrides | couleur, axe Y droit | Mettre en valeur une série particulière |
| Time period | Dashboard, ou période propre | Le widget suit le sélecteur de temps ou fixe sa période |
Bonne Pratique : Préférez des motifs (web-*) et des tags à une liste d'hôtes saisie à la main : le dashboard suit automatiquement l'arrivée de nouveaux serveurs.3. Choisir les bons widgets #
Un widget par question.
Catalogue #
| Question | Widget | Conseil |
|---|---|---|
| Qu'est-ce qui ne va pas maintenant ? | Problems, Problems by severity | Filtrer par tags (service, équipe) et sévérité minimale |
| Comment évolue cette métrique ? | Graph | Motifs d'hôtes et d'éléments, agrégation sur les longues périodes |
| Quels hôtes consomment le plus ? | Top hosts | Colonnes calculées sur un élément, seuils de couleur |
| Le parc est-il sain d'un coup d'œil ? | Honeycomb, Host availability | Une cellule par hôte, couleur selon un élément ou l'état |
| Quelle est la valeur actuelle ? | Item value, Gauge | Unités et seuils de couleur |
| Quelle part de chaque catégorie ? | Pie chart | Peu de catégories, sinon préférer un classement |
| Où est le problème physiquement ? | Map, Geomap | Cartes réseau ou géographiques avec état des hôtes |
| Tient-on nos engagements ? | SLA report | Nécessite le module Services et les SLA |
Widgets reliés #
Depuis Zabbix 7.0, des widgets peuvent en piloter d'autres : un Host navigator, un Honeycomb ou une Geomap diffusent l'hôte sélectionné, et les widgets dont la source est réglée sur ce widget (champ Override host) se mettent à jour au clic. Le même champ peut aussi prendre la valeur Dashboard : un sélecteur d'hôte apparaît alors en haut du dashboard.
Bonne Pratique : Un dashboard « exploration » avec un navigateur d'hôtes remplace des dizaines de dashboards identiques, un par serveur.
4. Les dashboards de modèle #
Définir une fois, afficher partout.
Principe #
Un dashboard peut être créé sur un modèle (Data collection > Templates > Dashboards). Ses widgets n'ont pas d'hôte : ils utilisent celui sur lequel on consulte le dashboard. Il apparaît sur chaque hôte lié au modèle, depuis Monitoring > Hosts (colonne Dashboards).
Les modèles officiels en contiennent déjà ; pour un modèle maison, le dashboard est exporté et versionné avec lui (export YAML).
5. Créer un dashboard par l'API #
Des dashboards reproductibles.
dashboard.create #
Les dashboards sont des objets de l'API JSON-RPC comme les autres : dashboard.get exporte un dashboard existant, dashboard.create et dashboard.update le recréent ailleurs. Chaque widget a un type, une position dans la grille et une liste de fields.
curl -s -X POST -H 'Content-Type: application/json-rpc' -H "Authorization: Bearer $TOKEN" \
http://localhost:8080/api_jsonrpc.php -d '{
"jsonrpc": "2.0", "method": "dashboard.create", "id": 1,
"params": {
"name": "Web - synthèse",
"display_period": 60, "auto_start": 1,
"pages": [{
"widgets": [
{ "type": "problems", "name": "Problèmes web", "x": 0, "y": 0, "width": 36, "height": 5,
"fields": [{ "type": 1, "name": "tags.0.tag", "value": "service" },
{ "type": 1, "name": "tags.0.value", "value": "web" }] },
{ "type": "svggraph", "name": "CPU web-*", "x": 36, "y": 0, "width": 36, "height": 5,
"fields": [{ "type": 1, "name": "ds.0.hosts.0", "value": "web-*" },
{ "type": 1, "name": "ds.0.items.0", "value": "CPU utilization" }] }
]
}],
"userGroups": [{ "usrgrpid": "7", "permission": 2 }]
}}' À savoir : Le plus simple pour connaître les noms de champs d'un widget : configurer le widget dans l'interface, puis lire le résultat dedashboard.getavec"selectPages": "extend". Les noms et la largeur de la grille peuvent changer d'une version majeure à l'autre.
Erreur Courante :permission: 2donne la lecture seule et3la lecture-écriture. Ne partagez pas en écriture un dashboard affiché sur un écran de NOC : une modification accidentelle s'y verrait immédiatement.
6. Bonnes pratiques #
Des dashboards qu'on regarde vraiment.
Check-list #
- Un dashboard par public : NOC (problèmes, disponibilité), équipe applicative (son service), direction (SLA).
- Le widget Problems en haut à gauche : c'est la première question en incident.
- Des motifs et des tags plutôt que des listes d'hôtes figées ; des dashboards de modèle pour les vues par hôte.
- Pas plus d'une dizaine de widgets par page ; utiliser des pages et le diaporama pour les écrans muraux.
- Agrégation sur les longues périodes : afficher 30 jours d'historique brut charge inutilement la base.
- Partage en lecture seule par groupes d'utilisateurs ; export par l'API pour sauvegarder et versionner.
