Graphite ist ein kostenloses Open-Source-Monitoring-Tool zum Speichern von numerischen Zeitreihendaten und deren Diagrammen in Echtzeit.
Graphite sammelt keine Daten selbst, sondern empfängt Daten von anderen Tools. Sobald Graphite Daten erhält, kann es in der Webapp Grafiken erstellen.
In diesem Tutorial lernen wir, wie man Graphit installieren und Graphitnetz unter Ubuntu 20.04 mit Docker. Der einfachste Weg, eine laufende Graphite-Instanz zu haben, ist die Verwendung von Docker.
Wie funktioniert Graphit?
Der Überblick über die Graphite-Architektur zeigt, dass sie aus drei Softwarekomponenten besteht:
- Kohlenstoff: Twisted-Daemon, der passiv auf Zeitreihendaten für die Datensammlung lauscht.
- Flüstern: einfache Datenbankbibliothek zum Speichern von Zeitreihendaten
- Graphite WebApp: Django WebApp, die Grafiken nach Bedarf mit Cairo rendert.
Die Anwendung sendet die Daten an das Verarbeitungs-Backend von Graphite, Carbon, das die Daten in Graphites Datenbank Whisper speichert. Anschließend können die Daten über die Graphite-Webschnittstelle, die Graphite Web App, angezeigt werden.
Schritt 1: Docker auf Ubuntu installieren
Zuerst installieren wir Docker unter Ubuntu. Mit Docker können Sie Grapgitue in Sekundenschnelle ausführen.
Um Docker zu installieren, müssen Sie einige Voraussetzungen installieren:
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Fügen wir nun den GP-Schlüssel des Docker-Repositorys hinzu:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Fügen Sie nun Docker zu den APT-Quellen hinzu. Der Cache wird automatisch aktualisiert.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Installieren Sie nun Docker mit dem folgenden Befehl:
$ sudo apt install docker-ce
Fügen Sie den Benutzer der Docker-Gruppe hinzu, damit er den Docker-Befehl verwenden kann, ohne sudo Privilegien:
$ sudo usermod -aG docker username
Beenden Sie dann und melden Sie sich erneut an, damit die Aktion wirksam wird
Schritt 2: Graphit mit Docker ausführen
Es ist sehr schnell, Graphit mit Docker auszuführen. Dieses Mal werden einige andere Komponenten als die Standardkomponenten benötigt, die wir zuvor gesehen haben:
- Nginx: Reverse-Proxys für das Graphit-Dashboard
- Graphit: Frontend-Dashboard
- Kohlenstoff: Backend
- Statsd: UDP-basierter Back-End-Proxy
Sie müssen auch prüfen, ob die verschiedenen Anschlüsse, die Graphit benötigt, verfügbar sind. Außerdem wird während des Vorgangs eine Portzuordnung zwischen dem Host und dem Container durchgeführt, sodass Sie einige Zuordnungskonfigurationen auf Ihrer Seite ändern können, wenn sie nicht zu Ihrer tatsächlichen Konfiguration passen. Sie können weitere Informationen über die offizielles Github-Repository von Graphit.
Gastgeber | Container | Service |
80 | 80 | nginx |
2003 | 2003 | Carbon Empfänger – Klartext |
2004 | 2004 | Carbon Empfänger – Essiggurke |
2023 | 2023 | Kohlenstoffaggregator – Klartext |
2024 | 2024 | Kohlenstoffaggregator – Essiggurke |
8080 | 8080 | Interner Gunicorn-Port aus Graphit (ohne Nginx-Proxying). |
8125 | 8125 | Statistiken |
8126 | 8126 | Statistiken admin |
nginx docker ausführen
In unserem Fall werden wir einen unabhängigen Container als unseren Nginx-Reverse-Proxy ausführen.
$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy
Es hilft uns, den gesamten Standard-HTTP-Verkehr auf HTTPS umzuleiten, wenn Sie Ihre Zertifikate integrieren. Sie sollten das zugeordnete Volumen beachten, um Ihre Zertifikate zu integrieren /etc/nginx/certs
Öffnen Sie nun die Ports 80 und 443 auf der Firewall:
$ sudo ufw allow 80,443/tcp
Schritt 3: Graphite – Integrieren Sie Ihr SSL-Zertifikat in nginx
Wir gehen davon aus, dass Sie bereits über Ihre SSL-Zertifikate verfügen. Sie müssen es in das zugeordnete Volume kopieren, das für diesen Fall in Nginx konfiguriert ist. Wir werden unseren Schlüssel und unser Zertifikat wie folgt benennen:
- domain.com.crt
- domain.com.key
Und wir werden die beiden Dateien in das zugeordnete Volume kopieren. Kopieren Sie das Zertifikat
$ cp websitefortesting.com.crt /etc/nginx/certs
Kopieren Sie den Schlüssel
$ cp websitefortesting.com.key /etc/nginx/certs
Laufgraphit
Um Graphit auszuführen, verwenden wir auch den Befehl docker run mit einigen Optionen. In unserem Fall geben wir den Domainnamen unseres Dienstes mit dem Parameter . an -e VIRTUAL_HOST=domain.com
beim Starten
$ docker run -d
--name graphite
--restart=always
-e VIRTUAL_HOST=websitefortesting.com
-p 2003-2004:2003-2004
-p 2023-2024:2023-2024
-p 8125:8125/udp
-p 8126:8126
graphiteapp/graphite-statsd
Wie Sie sehen, muss Port 80 von Nginx nicht zugeordnet werden, da er bereits ausgeführt wird. Versuchen Sie nun, über die URL auf Graphit zuzugreifen https://domain.com
Sie können einen Blick auf statsd werfen.

Der Standard-Login-Benutzername von Graphite ist root und loggen sich mit dem Root-Passwort ein.

Sie sollten das Standardpasswort des Root-Profils ändern, um es sicherer zu machen, indem Sie at . verwenden https://domain.com/admin/password_change/

Sie können mit Ihrem neuen Passwort darauf zugreifen.
Fazit
In diesem Tutorial haben wir gelernt, wie man Graphit unter Ubuntu 20.04 mit Docker ausführt. Sie können jetzt numerische Zeitreihendaten einfach überwachen und grafisch darstellen.