Christian Theune
Jens Vagelpohl
Michael Hierweck
Veit Schiele
2013-09-10
Das Frontend graphite-web scheint gut geeignet zu sein, graphische Darstellungen in Echtzeit zu erstellen.
Graphite-web ist jedoch zunächst nicht wirklich gut vorbereitet auf verteiltes Monitoring:
das Carbon-Relay trifft die Annahme, dass alle Werte für DESTINATIONS
mit
derselben IP auch zu demselben Host gehören.
Umgekehrt nimmt Graphite-Web an, dass alle CLUSTER_SERVERS
, deren IP
lokal ist, auch tatsächlich eine lokale Instanz seien.
Sollen jedoch entfernete Hosts z.B. über SSL oder Stunnel miteinander verbunden werden, sind die oben getroffenen Annahmen falsch.
Um nun doch dem Carbon-Relay verschiedene Hosts unter der lokalen IP beizubringen, kann z.B. folgendes angegeben werden:
DESTINATIONS = 127.0.0.1:2004:a,127.0.0.01:2104:a,127.0.0.001:2204:a
Graphite-Web kann mit dem folgenden monkey patch auch für entfernte Hosts mit einer lokalen IP-Adresse konfiguriert werden:
from graphite import settings
from graphite import storage
from graphite.logger import log
storage.is_local_interface = lambda (host): False
storage.STORE = storage.Store(settings.DATA_DIRS,
remote_hosts=settings.CLUSTER_SERVERS)
Weitere Infos zu federated graphite und carbon dederated storage finden sich z.B. unter