7 Éléments calculés

Aperçu

Avec les éléments calculés, il est possible de créer des calculs basés sur les valeurs d'autres éléments.

Les calculs peuvent utiliser à la fois :

  • des valeurs uniques d'éléments individuels
  • des filtres complexes pour sélectionner plusieurs éléments pour les agrégations (voir calculs agrégés pour plus de détails)

Ainsi, les éléments calculés sont un moyen de créer des sources de données virtuelles. Tous les calculs sont effectués par le serveur Zabbix uniquement. Les valeurs sont calculées périodiquement en fonction de l'expression arithmétique utilisée.

Les données résultantes sont stockées dans la base de données Zabbix comme pour tout autre élément ; les valeurs d'historique et de tendance sont stockées et des graphiques peuvent être générés.

Si le résultat du calcul est une valeur flottante, il sera réduit à un nombre entier si le type d'information de l'élément calculé est Numérique (non signé).

Les éléments calculés partagent leur syntaxe avec les expressions de déclencheur. La comparaison avec des chaînes est autorisée dans les éléments calculés. Les éléments calculés peuvent être référencés par des macros ou d'autres entités identiques à tout autre type d'élément.

Pour utiliser des éléments calculés, choisissez le type d'élément Calculé.

Champs configurables

La clé est un identifiant d'élément unique (par hôte). Vous pouvez créer n'importe quel nom de clé à l'aide des symboles pris en charge.

La définition du calcul doit être saisie dans le champ Formule. Il n'y a pratiquement aucun lien entre la formule et la clé. Les paramètres clés ne sont en aucun cas utilisés dans la formule.

La syntaxe d'une formule simple est :

fonction(/hôte/clé,<paramètre1>,<paramètre2>,...)

où :

fonction L'une des fonctions prises en charge: last, min, max, avg, count, etc
hôte Hôte de l'élément utilisé pour le calcul.
L'hôte actuel peut être omis (comme dansfonction(//clé,paramètre,...)).
clé Clé de l'élément utilisé pour le calcul.
paramètre(s) Paramètres de la fonction, si nécessaire.

Les macros utilisateur de la formule seront développées si elles sont utilisées pour référencer un paramètre de fonction, un paramètre de filtre d'élément ou une constante. Les macros utilisateur ne seront PAS développées si elles font référence à une fonction, un nom d'hôte, une clé d'élément, un paramètre de clé d'élément ou un opérateur.

Une formule plus complexe peut utiliser une combinaison de fonctions, d'opérateurs et de parenthèses. Vous pouvez utiliser toutes les fonctions et tous les opérateurs pris en charge dans les expressions de déclencheur. La logique et la priorité des opérateurs sont exactement les mêmes.

Contrairement aux expressions de déclencheur, Zabbix traite les éléments calculés en fonction de l'intervalle de mise à jour des éléments, et non lors de la réception d'une nouvelle valeur.

Tous les éléments référencés par les fonctions d'historique dans la formule d'élément calculé doivent exister et collecter des données. De plus, si vous modifiez la clé d'élément d'un élément référencé, vous devez mettre à jour manuellement toutes les formules utilisant cette clé.

Un élément calculé peut devenir non pris en charge dans plusieurs cas :

  • l'article(s) référencé(s)
    • n'est pas trouvé
    • est désactivé
    • appartient à un hôte désactivé
    • n'est pas pris en charge (sauf avec la fonction nodata() et les opérateurs avec des valeurs inconnues)
  • pas de donnée pour calculer une fonction
  • division par zéro
  • syntaxe incorrecte utilisée

Exemples d'utilisation

Exemple 1

Calcul du pourcentage d'espace disque libre sur '/'.

Utilisation de la fonction last:

100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])

Zabbix prendra les dernières valeurs pour les espaces disque libres et totaux et calculera le pourcentage selon la formule donnée.

Exemple 2

Calcul d'une moyenne sur 10 minutes du nombre de valeurs traitées par Zabbix.

Utilisation de la fonction avg:

avg(/Zabbix Server/zabbix[wcache,values],10m)

Notez qu'une utilisation intensive d'éléments calculés avec de longues périodes peut affecter les performances du serveur Zabbix.

Exemple 3

Calcul de la bande passante totale sur eth0.

Somme de deux fonctions :

last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Exemple 4

Calcul du pourcentage du trafic entrant.

Expression plus complexe :

100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))

Voir également : Exemples de calculs agrégés