====== 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 : * python (testé avec 2.4, devrait fonctionner avec 2.3), * rrdtool 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 : * ''/etc/default/storeme'', qui définit les variables d'environnement utilisées pour les paramètres généraux de l'application * ''storeme.conf.py'', qui décrit le format des fichiers RRD s'ils doivent être créés. Ce fichier est en python, et doit donc en respecter la syntaxe. Il se situe dans le dossier ''/etc/vigilo-storeme'' par défaut, mais l'emplaçement est paramétrable dans le fichier de configuration précédent ===== Installation ===== * Placer le fichier "StoreMe.py" dans un répertoire du serveur * Copier le fichier "storeme.sh" dans le dossier des scripts de démarrage du système (en général ''/etc/init.d'') et paramétrer les variables en début de script (notamment l'emplacement de "StoreMe.py") * Copier le fichier "storeme" dans ''/etc/default'' et y régler les paramètres de l'application * Créer le répertoire ''/etc/vigilo-storeme'' et y copier le fichier de configuration d'exemple * Copier ce fichier en ''storeme.conf.py'' et modifier son contenu suivant le besoin. * Démarrer StoreMe avec la commande ''/etc/init.d/storeme start''. ===== 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 : * 5 minutes sur 2 jours * 30 minutes sur 2 semaines * 2 heures sur 2 mois * 1 jour sur 2 an 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''.