Question

J'aimerais savoir s'il existe une alternative à rrdtool pour la journalisation des données de séries chronologiques. Je cherche quelque chose qui peut s’adapter à un grand nombre d’appareils à surveiller.

D'après ce que j'ai lu à ce sujet, rrdtool est lié à l'entrée / sortie lorsque vous y accédez avec de grandes quantités de données. Étant donné que j'envisage de l'adapter à un très grand nombre de périphériques à surveiller, je suis curieux de savoir s'il existe une alternative qui ne s'étoufferait pas sur les E / S. Préférable basé sur SQL, mais pas nécessairement.

Merci

Était-ce utile?

La solution

Si les performances d'E / S sont la principale préoccupation, vous souhaitez examiner quelque chose comme rrdcached disponible dans la version actuelle (1.4) de RRDTools.

La surcharge d'E / S n'est pas une fonction des données en cours d'écriture, après tout, chaque valeur est de 8 octets par source de données. La bande passante d'E / S vient du fait qu'un secteur entier (généralement 4k) doit être lu avant d'être écrit. Soudain, pour écrire 8 octets, vous avez lu / écrit 8k octets.

Le rrdcached fusionne toutes ces écritures afin que lors de la mise à jour d'un RRD, le rapport entre les données utiles (valeurs réelles du DS) et les données gaspillées (les octets disponibles dans le secteur) est réduit.

Tous les outils RRD utilisent automatiquement rrdcached lorsqu'ils le détectent en cours d'exécution (via une variable d'environnement). Cela leur permet de déclencher des vidages en cas de besoin, par exemple lors de la génération d’un graphique à partir des données.

Lors du passage à une solution SQL, il peut être utile d’envisager les E / S supplémentaires nécessaires à la prise en charge de SQL. Étant donné que vous n’avez pas tendance à utiliser les données RRD dans ce type de modèle d’accès aléatoire, une base de données est un peu comme un foudroyeur. En conservant RRDTool, vous conserverez l'accès à tous les outils de l'écosystème qui comprennent les fichiers et peuvent travailler avec les fichiers, ce qui est particulièrement utile si vous êtes déjà familiarisé avec ce logiciel.

Autres conseils

Certaines bases de données de séries chronologiques ont pour objectifs une disponibilité et / ou une évolutivité élevées.

Peut-être jeter un oeil à

  • rrdcached , une couche de mise en cache au-dessus du rrd
  • whisper , le moteur de base de données derrière graphite
  • opentsdb est une base de données temporelle (TSDB) distribuée et évolutive écrite au-dessus de HBase
  • reconnoiter bien que l'accent soit mis sur la surveillance

Un de mes amis a déjà travaillé sur un serveur SQL pour stocker des données round robin: http: // rrs .decibel.org

Cependant, je suppose que puisque vous vous posez des questions sur les "dispositifs de surveillance", vous recherchez peut-être une solution plus complète.

Si les opérations d'E / S par seconde constituent votre principal goulot d'étranglement et que vous utilisez Linux, il existe un hack facile qui ne vous coûte que de la mémoire. Utilisez un montage tmpfs pour organiser vos écritures RRD.

Toutes les opérations d'E / S seront effectuées en mémoire et n'entraîneront aucun des goulots d'étranglement rencontrés lors de l'exécution d'E / S de disque (cette opération est encore plus rapide que l'utilisation de disques à l'état solide). Vous pouvez ensuite utiliser un travail cron et rsync pour ne copier que les RRD modifiés sur le disque toutes les quelques minutes.

Créer les répertoires

bash-4.2# mkdir /mnt/rrd-reads
bash-4.2# mkdir /mnt/rrd-writes

Créer un système de fichiers RAM de 500 Mo maximum avec les options appropriées

bash-4.2# mount -t tmpfs -o size=500m,mode=0750,uid=collectd,gid=collectd none /mnt/rrd-writes
bash-4.2# echo "none /mnt/rrd-writes tmpfs size=500m,mode=0750,uid=collectd,gid=collectd 1 2" >> /etc/fstab

Copiez les anciens fichiers RRD dans le nouveau point de montage

bash-4.2# cp -a /var/lib/collectd/rrd/* /mnt/rrd-writes

Configurez votre application d'écriture rrd pour écrire sur le nouveau point de montage

bash-4.2# sed -i -e 's/DataDir "\/var\/lib\/collectd\/rrd"/DataDir "\/mnt\/rrd-writes"/' /etc/collectd/collectd.conf

Configurez une tâche cron pour ne synchroniser que les disques RRD modifiés sur le disque toutes les 2 minutes

.
bash-4.2# echo "*/2 * * * * collectd rsync -a /mnt/rrd-writes/* /mnt/rrd-reads/ ; sync" > /etc/cron.d/rrd-sync

N'oubliez pas de copier vos fichiers RRD sauvegardés dans le point de montage avant de démarrer votre application d'écriture rrd! Vous devrez peut-être modifier le script d'initialisation de ce service pour vous assurer que les fichiers sont là avant de commencer. S'il démarre sans les fichiers en place, de nouveaux fichiers nus seront créés et vous serez très confus une fois que le répertoire de lecture sera écrasé par des RRD vides.

Si vous avez besoin de redimensionner le montage de tmpfs à un moment donné, vous pouvez le faire à la volée:

bash-4.2# mount -t tmpfs -o remount,size=850m /mnt/rrd-writes
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top