Table des matières

StoreMe

Introduction

“StoreMe” est un service de mise à jour des bases de données de métrologie. Ces bases sont des fichiers RRD, gérées par l'outil RRDTool (http://oss.oetiker.ch/rrdtool). StoreMe est un composant de la solution de supervision Vigilo.

StoreMe est un démon écrit en python, qui écoute sur le réseau sur un port UDP paramétrable dans le fichier /etc/default/storeme. Du réseau il reçoit des trames indiquant le fichier RRD à créer ou à mettre à jour, ainsi que les nouvelles valeurs. Il stocke ces informations dans une file d'attente en mémoire, qui est régulièrement dépilée par des processus rrdtool, chargés de mettre à jour les fichiers RRD. La taille de la file d'attente est paramétrable dans le même fichier.

Les dépendances de l'application sont donc :

StoreMe utilise un fichier de configuration qui décrit le format des fichiers RRD s'ils doivent être créés. Ce fichier est nommé “storeme.conf.py” et se situe dans le dossier /etc/vigilo-storeme par défaut, mais l'emplacement est paramétrable dans le même fichier que précédemment.

StoreMe s'appuie sur deux fichiers de configuration :

Installation

Configuration

Le fichier storeme.conf.py décrit le format que doivent avoir les base de données RRD. Cette description est stockée dans un dictionnaire python, indexé par le nom du fichier RRD à créer. Si ce nom de fichier contient un caractère ”/”, un sous dossier sera créé.

Dans l'exemple suivant, on créé un fichier RRD par hôte et par indicateur (par exemple : la charge sur une minute). Il est très avantageux de créer un fichier RRD par indicateur : en effet, il est difficile d'ajouter un indicateur à un fichier RRD existant. Si on créé un fichier par hôte, il devient impossible d'ajouter un nouvel indicateur à cet hôte dans le futur. De plus, RRDGraph sait aller chercher les indicateurs dans plusieurs fichiers pour la création d'un graphe.

Ici, le nom des indicateurs est utilisé pour générer le nom du fichier RRD, après encodage en base64 (pour éviter l'échappement des caractères). La période de mise à jour est de 5 minutes, on créé 4 RRA :

Enfin, on défini un indicateur unique dont le nom est toujours “DS”, de type “GAUGE”, sans minimum et sans maximum. Pour plus d'informations sur la signification de ces paramètres, voir la documentation de RRDTool.

Exemple de configuration :

  # CPU 1min for host1
  hosts["host1/Q1BVIDFtaW4="] = {
      "step": 300,
      "RRA": [
          { "type": "AVERAGE", "xff": 0.5, "step": 1, "rows": 600 },
          { "type": "AVERAGE", "xff": 0.5, "step": 6, "rows": 700 },
          { "type": "AVERAGE", "xff": 0.5, "step": 24, "rows": 775 },
          { "type": "AVERAGE", "xff": 0.5, "step": 288, "rows": 797}
      ],
      "DS": [ { "name": "DS", "type": "GAUGE", "heartbeat": 600, "min": "U", "max": "U" } ],
  }

Un exemple de fichier de configuration commenté est fourni, voir le fichier storeme.conf.py.dist.