RRD Werkzeug Alternative für hochvolumige
-
03-07-2019 - |
Frage
Ich bin daran interessiert zu wissen, ob es eine Alternative zu rrdtool ist Zeitreihendaten für die Anmeldung. Ich bin auf der Suche etwas, das für eine große Anzahl von Geräten skalieren zu überwachen.
Von dem, was ich zu diesem Thema lesen, rrdtool ist I / O gebunden, wenn Sie ihn treffen mit großen Datenmengen. Da ich dies vorstellen, auf eine sehr große Anzahl von Geräten zu skalieren zu überwachen, ich bin gespannt, ob eine Alternative gibt es die nicht auf I / O ersticken würden. Bevorzugte SQL-basierte, aber nicht unbedingt.
Danke
Lösung
Andere Tipps
Es gibt einige Zeitreihen-Datenbanken, die eine hohe Verfügbarkeit und / oder Skalierbarkeit als Ziele haben.
hat vielleicht einen Blick auf
Ein Freund von mir hat eine Weile einige Arbeit vor auf einem SQL-Backend Round-Robin-Daten zu speichern: http: // rrs .decibel.org
Allerdings vermute ich, dass da Sie über „Geräte zu überwachen“ sind zu fragen, können Sie sich für eine Komplettlösung suchen.
Wenn I / O-Operationen pro Sekunde Hauptengpass ist und Sie verwenden Linux, gibt es eine einfache Hack, dass Sie Speicher kostet nur. Verwenden Sie ein tmpfs mounten RRD schreibt Bühne.
Alle I / O-Operationen werden im Speicher durchgeführt werden und werden nicht der Engpaß dabei Disk I / O (dies ist sogar schneller als die Verwendung von Solid State Disks) gefunden entstehen. Anschließend können Sie einen cron-Job und rsync verwenden nur geänderte RRDs auf die Festplatte einmal alle paar Minuten zu kopieren.
Erstellen Sie die Verzeichnisse
bash-4.2# mkdir /mnt/rrd-reads
bash-4.2# mkdir /mnt/rrd-writes
Erstellen Sie ein 500 MB-RAM maximalen Dateisystem mit entsprechenden Optionen
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
Kopieren Sie die alten RRD-Dateien in den neuen Mount-Punkt
bash-4.2# cp -a /var/lib/collectd/rrd/* /mnt/rrd-writes
Konfigurieren Sie Ihre rrd-Schreibanwendung auf den neuen Bereitstellungspunkt
schreibenbash-4.2# sed -i -e 's/DataDir "\/var\/lib\/collectd\/rrd"/DataDir "\/mnt\/rrd-writes"/' /etc/collectd/collectd.conf
einen Cron-Job einrichten, um nur die geänderten RRDs auf die Festplatte einmal alle 2 Minuten
synchronisierenbash-4.2# echo "*/2 * * * * collectd rsync -a /mnt/rrd-writes/* /mnt/rrd-reads/ ; sync" > /etc/cron.d/rrd-sync
Vergessen Sie nicht, Ihre gespeicherten RRD-Dateien in den Bereitstellungspunkt kopieren vor Sie Ihre rrd-Schreiben Anwendung starten! Möglicherweise müssen Sie das Init-Skript für diesen Dienst bearbeiten, um sicherzustellen, dass die Dateien vorhanden sind, bevor es beginnt. Wenn es ohne die Dateien an ihrem Platz beginnt, wird neue kahle erstellt werden, und Sie werden sehr verwirrt sein, wenn das Lesebuch mit leeren RRDs überschrieben wird.
Wenn Sie an einem gewissen Punkt müssen die tmpfs mounten, um die Größe, können Sie, dass im Fluge tun:
bash-4.2# mount -t tmpfs -o remount,size=850m /mnt/rrd-writes