Graphite ist ein kostenloses und Open-Source-Überwachungstool zum Speichern numerischer Zeitreihendaten und ihrer Grafik in Echtzeit.
Graphite sammelt keine Daten selbst, sondern erhält Daten von anderen Tools. Sobald Graphite Daten erhält, kann es Grafiken in der Webapp erstellen.
In diesem Tutorial lernen wir, wie man Graphite installiert und Graphite Web 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 :Verdrehter Daemon, der passiv auf Zeitreihendaten zur Datenerfassung lauscht.
- Flüstern :einfache Datenbankbibliothek zum Speichern von Zeitreihendaten
- Graphite WebApp :Django WebApp, die Grafiken auf Abruf 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-Weboberfläche Graphite Web App angezeigt werden.
Schritt 1:Installieren Sie Docker auf Ubuntu
Zuerst werden wir Docker auf Ubuntu installieren. Mit Docker können Sie Grapgitue in Sekunden 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 ohne sudo-Berechtigungen verwenden kann:
$ 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. Diesmal werden einige andere Komponenten benötigt als die Standardkomponenten, die wir zuvor gesehen haben:
- Nginx :Reverse-Proxys für das Graphit-Dashboard
- Graphit :Frontend-Dashboard
- Kohlenstoff :Backend
- Statistiken :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. Weitere Informationen finden Sie im offiziellen Github-Repo von Graphit.
Host | Behälter | Service |
80 | 80 | nginx |
2003 | 2003 | Kohleempfänger - Klartext |
2004 | 2004 | Kohleempfänger - Gurke |
2023 | 2023 | Kohlenstoffaggregator - Klartext |
2024 | 2024 | Kohlenstoffaggregator - Gurke |
8080 | 8080 | Interner Gunicorn-Port aus Graphit (ohne Nginx-Proxy). |
8125 | 8125 | statsd |
8126 | 8126 | statsd-Administrator |
Nginx-Docker ausführen
In unserem Fall führen wir einen unabhängigen Container als unseren Nginx-Reverse-Proxy aus.
$ 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-Datenverkehr auf HTTPS umzuleiten, wenn Sie Ihre Zertifikate integrieren. Sie sollten das zugeordnete Volume zum Integrieren Ihrer Zertifikate beachten, das /etc/nginx/certs
ist
Ö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 Ihre SSL-Zertifikate bereits besitzen. 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
Graphit ausführen
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 -e VIRTUAL_HOST=domain.com
an 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 können, ist es nicht erforderlich, Port 80 von Nginx zuzuordnen, da es bereits ausgeführt wird. Versuchen Sie nun, über die URL https://domain.com
auf Graphit zuzugreifen
Sie können einen Blick auf statsd werfen.
Der standardmäßige Login-Benutzername von Graphite ist root und melden Sie sich mit dem root-Passwort an.
Sie sollten das Standardkennwort des Root-Profils ändern, um es sicherer zu machen, indem Sie es unter https://domain.com/admin/password_change/
verwenden
Sie können mit Ihrem neuen Passwort darauf zugreifen.
Schlussfolgerung
In diesem Tutorial haben wir gelernt, wie man Graphit unter Ubuntu 20.04 mit Docker ausführt. Sie können jetzt ganz einfach numerische Zeitreihendaten überwachen und grafisch darstellen.