projekte:fabaccess:software:todos:grafana_anbindung
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
projekte:fabaccess:software:todos:grafana_anbindung [2024/11/08 09:54] – andre | projekte:fabaccess:software:todos:grafana_anbindung [2024/11/19 07:47] (aktuell) – andre | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
Es gibt wohl bereits eine Beschreibung für eine Grafana Anbindung. Da wir Grafana [1] auch bereits an anderen Stellen einsetzen, sollte dies hier auch zum Einsatz kommen. | Es gibt wohl bereits eine Beschreibung für eine Grafana Anbindung. Da wir Grafana [1] auch bereits an anderen Stellen einsetzen, sollte dies hier auch zum Einsatz kommen. | ||
+ | |||
===== Umsetzung ===== | ===== Umsetzung ===== | ||
Anleitung zum Aufsetzen des Monitoring mittels Prometheus + Grafana: {{ : | Anleitung zum Aufsetzen des Monitoring mittels Prometheus + Grafana: {{ : | ||
+ | |||
+ | Grafana Dashboard auf Basis vom FabAccess Prometheus Exporter und MQTT Exporter: {{ : | ||
==== Von ChatGPT aufgehübschte Anleitung aus dem PDF Dokument: ==== | ==== Von ChatGPT aufgehübschte Anleitung aus dem PDF Dokument: ==== | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
===== Übersicht ===== | ===== Übersicht ===== | ||
Wir werden folgende Komponenten installieren und konfigurieren: | Wir werden folgende Komponenten installieren und konfigurieren: | ||
- | Grafana: Eine Plattform zur Visualisierung von Metriken und Logs. | + | * **Grafana**: Eine Plattform zur Visualisierung von Metriken und Logs. |
- | Prometheus: Ein Monitoring-System und Zeitreihendatenbank. | + | * **Prometheus**: Ein Monitoring-System und Zeitreihendatenbank. |
- | FabAccess Prometheus Exporter: Exportiert FabAccess-Daten für Prometheus. | + | * **FabAccess Prometheus Exporter**: Exportiert FabAccess-Daten für Prometheus. |
- | MQTT Exporter: Exportiert MQTT-Daten für Prometheus. | + | * **MQTT Exporter**: Exportiert MQTT-Daten für Prometheus. |
+ | |||
+ | ---- | ||
===== Voraussetzungen ===== | ===== Voraussetzungen ===== | ||
- | Ein Raspberry Pi mit einer aktuellen Installation von Raspbian oder einem anderen Debian-basierten Betriebssystem. | + | * Ein Raspberry Pi mit einer aktuellen Installation von Raspbian oder einem anderen Debian-basierten Betriebssystem. |
- | Internetzugang für die Installation von Paketen und das Herunterladen von Software. | + | |
- | Grundlegende Kenntnisse im Umgang mit der Kommandozeile und dem Editor '' | + | |
+ | |||
+ | ---- | ||
===== 1. Installation von Grafana ===== | ===== 1. Installation von Grafana ===== | ||
Zeile 31: | Zeile 44: | ||
Füge den GPG-Schlüssel und das Repository von Grafana hinzu, um die neueste Version installieren zu können: | Füge den GPG-Schlüssel und das Repository von Grafana hinzu, um die neueste Version installieren zu können: | ||
- | bash | + | < |
- | Code kopieren | + | |
wget -q -O - https:// | wget -q -O - https:// | ||
echo "deb https:// | echo "deb https:// | ||
+ | </ | ||
+ | |||
==== Schritt 2: Installation von Grafana ==== | ==== Schritt 2: Installation von Grafana ==== | ||
Aktualisiere die Paketlisten und installiere Grafana: | Aktualisiere die Paketlisten und installiere Grafana: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo apt-get update | sudo apt-get update | ||
sudo apt-get install -y grafana | sudo apt-get install -y grafana | ||
+ | </ | ||
+ | |||
==== Schritt 3: Starten und Aktivieren des Grafana-Dienstes ==== | ==== Schritt 3: Starten und Aktivieren des Grafana-Dienstes ==== | ||
Aktiviere den automatischen Start von Grafana beim Systemstart und starte den Dienst: | Aktiviere den automatischen Start von Grafana beim Systemstart und starte den Dienst: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo systemctl enable grafana-server | sudo systemctl enable grafana-server | ||
sudo systemctl start grafana-server | sudo systemctl start grafana-server | ||
- | '' | + | </ |
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | ---- | ||
===== 2. Installation von Prometheus ===== | ===== 2. Installation von Prometheus ===== | ||
Zeile 57: | Zeile 77: | ||
==== Schritt 1: Herunterladen von Prometheus ==== | ==== Schritt 1: Herunterladen von Prometheus ==== | ||
- | Wechsle zum Verzeichnis /opt und lade die passende Prometheus-Version für ARM herunter: | + | Wechsle zum Verzeichnis |
- | bash | + | < |
- | Code kopieren | + | |
cd /opt | cd /opt | ||
wget https:// | wget https:// | ||
+ | </ | ||
+ | |||
==== Schritt 2: Entpacken und Einrichten ==== | ==== Schritt 2: Entpacken und Einrichten ==== | ||
Entpacke das Archiv, benenne das Verzeichnis um und bereinige: | Entpacke das Archiv, benenne das Verzeichnis um und bereinige: | ||
- | bash | + | < |
- | Code kopieren | + | |
tar xfz prometheus-2.22.0.linux-armv7.tar.gz | tar xfz prometheus-2.22.0.linux-armv7.tar.gz | ||
mv prometheus-2.22.0.linux-armv7 prometheus | mv prometheus-2.22.0.linux-armv7 prometheus | ||
rm prometheus-2.22.0.linux-armv7.tar.gz | rm prometheus-2.22.0.linux-armv7.tar.gz | ||
+ | </ | ||
+ | |||
==== Schritt 3: Berechtigungen setzen ==== | ==== Schritt 3: Berechtigungen setzen ==== | ||
Setze die Eigentümerrechte: | Setze die Eigentümerrechte: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo chown -R root:root prometheus/ | sudo chown -R root:root prometheus/ | ||
+ | </ | ||
+ | |||
==== Schritt 4: Erstellen eines Systemd-Dienstes für Prometheus ==== | ==== Schritt 4: Erstellen eines Systemd-Dienstes für Prometheus ==== | ||
- | Erstelle die Dienstdatei / | + | Erstelle die Dienstdatei |
- | bash | + | < |
- | Code kopieren | + | |
sudo vim / | sudo vim / | ||
+ | </ | ||
+ | |||
Füge folgenden Inhalt ein: | Füge folgenden Inhalt ein: | ||
- | javascript | + | < |
- | Code kopieren | + | |
[Unit] | [Unit] | ||
Description=Prometheus Server | Description=Prometheus Server | ||
Zeile 102: | Zeile 125: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
==== Schritt 5: Dienst einrichten und starten ==== | ==== Schritt 5: Dienst einrichten und starten ==== | ||
Führe folgende Befehle aus, um den Dienst zu laden, zu aktivieren und zu starten: | Führe folgende Befehle aus, um den Dienst zu laden, zu aktivieren und zu starten: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
sudo systemctl enable prometheus.service | sudo systemctl enable prometheus.service | ||
sudo systemctl start prometheus.service | sudo systemctl start prometheus.service | ||
sudo systemctl status prometheus.service | sudo systemctl status prometheus.service | ||
+ | </ | ||
+ | |||
'' | '' | ||
+ | |||
+ | ---- | ||
===== 3. Installation des FabAccess Prometheus Exporters ===== | ===== 3. Installation des FabAccess Prometheus Exporters ===== | ||
Zeile 118: | Zeile 146: | ||
==== Schritt 1: Installieren von Python-Paketen ==== | ==== Schritt 1: Installieren von Python-Paketen ==== | ||
- | Installiere python3-pip, | + | Installiere |
- | bash | + | < |
- | Code kopieren | + | |
sudo apt install -y python3-pip | sudo apt install -y python3-pip | ||
+ | </ | ||
+ | |||
==== Schritt 2: Herunterladen des Exporters ==== | ==== Schritt 2: Herunterladen des Exporters ==== | ||
Wechsle zum Prometheus-Verzeichnis und klone das Repository: | Wechsle zum Prometheus-Verzeichnis und klone das Repository: | ||
- | bash | + | < |
- | Code kopieren | + | |
cd / | cd / | ||
sudo git clone https:// | sudo git clone https:// | ||
+ | </ | ||
+ | |||
==== Schritt 3: Installieren der Abhängigkeiten ==== | ==== Schritt 3: Installieren der Abhängigkeiten ==== | ||
Wechsle in das Exporter-Verzeichnis und installiere die Python-Abhängigkeiten: | Wechsle in das Exporter-Verzeichnis und installiere die Python-Abhängigkeiten: | ||
- | bash | + | < |
- | Code kopieren | + | |
cd / | cd / | ||
sudo pip3 install -r requirements.txt | sudo pip3 install -r requirements.txt | ||
+ | </ | ||
+ | |||
==== Schritt 4: Erstellen eines Benutzers für Prometheus ==== | ==== Schritt 4: Erstellen eines Benutzers für Prometheus ==== | ||
Erstelle einen Systembenutzer für Prometheus: | Erstelle einen Systembenutzer für Prometheus: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo adduser --system prometheus | sudo adduser --system prometheus | ||
+ | </ | ||
+ | |||
Setze die Eigentümerrechte: | Setze die Eigentümerrechte: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo chown -R prometheus: | sudo chown -R prometheus: | ||
+ | </ | ||
+ | |||
==== Schritt 5: Erstellen des Systemd-Dienstes für den Exporter ==== | ==== Schritt 5: Erstellen des Systemd-Dienstes für den Exporter ==== | ||
- | Erstelle die Dienstdatei / | + | Erstelle die Dienstdatei |
- | bash | + | < |
- | Code kopieren | + | |
sudo vim / | sudo vim / | ||
+ | </ | ||
+ | |||
Füge folgenden Inhalt ein (passe die Umgebungsvariablen entsprechend an): | Füge folgenden Inhalt ein (passe die Umgebungsvariablen entsprechend an): | ||
- | makefile | + | < |
- | Code kopieren | + | |
[Unit] | [Unit] | ||
Description=Prometheus FabAccess Exporter Service | Description=Prometheus FabAccess Exporter Service | ||
Zeile 183: | Zeile 216: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
==== Schritt 6: Dienst einrichten und starten ==== | ==== Schritt 6: Dienst einrichten und starten ==== | ||
Lade die Systemd-Daemon neu und starte den Dienst: | Lade die Systemd-Daemon neu und starte den Dienst: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
sudo systemctl enable prometheus-fabaccess-exporter.service | sudo systemctl enable prometheus-fabaccess-exporter.service | ||
sudo systemctl start prometheus-fabaccess-exporter.service | sudo systemctl start prometheus-fabaccess-exporter.service | ||
sudo systemctl status prometheus-fabaccess-exporter.service | sudo systemctl status prometheus-fabaccess-exporter.service | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
===== 4. Installation des MQTT Exporters ===== | ===== 4. Installation des MQTT Exporters ===== | ||
Zeile 199: | Zeile 237: | ||
Wechsle zum Prometheus-Verzeichnis und klone das Repository: | Wechsle zum Prometheus-Verzeichnis und klone das Repository: | ||
- | bash | + | < |
- | Code kopieren | + | |
cd / | cd / | ||
sudo git clone https:// | sudo git clone https:// | ||
cd mqtt-exporter/ | cd mqtt-exporter/ | ||
+ | </ | ||
+ | |||
==== Schritt 2: Installieren der Abhängigkeiten ==== | ==== Schritt 2: Installieren der Abhängigkeiten ==== | ||
Installiere die benötigten Python-Pakete: | Installiere die benötigten Python-Pakete: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo pip3 install -r requirements/ | sudo pip3 install -r requirements/ | ||
+ | </ | ||
+ | |||
==== Schritt 3: Testweiser Start des Exporters ==== | ==== Schritt 3: Testweiser Start des Exporters ==== | ||
Starte den Exporter manuell, um sicherzustellen, | Starte den Exporter manuell, um sicherzustellen, | ||
- | bash | + | < |
- | Code kopieren | + | |
MQTT_ADDRESS=127.0.0.1 MQTT_PORT=1883 MQTT_USERNAME=DEIN_MQTT_BENUTZER MQTT_PASSWORD=DEIN_MQTT_PASSWORT PROMETHEUS_PORT=9001 python3 exporter.py | MQTT_ADDRESS=127.0.0.1 MQTT_PORT=1883 MQTT_USERNAME=DEIN_MQTT_BENUTZER MQTT_PASSWORD=DEIN_MQTT_PASSWORT PROMETHEUS_PORT=9001 python3 exporter.py | ||
+ | </ | ||
+ | |||
==== Schritt 4: Erstellen des Systemd-Dienstes für den MQTT Exporter ==== | ==== Schritt 4: Erstellen des Systemd-Dienstes für den MQTT Exporter ==== | ||
- | Erstelle die Dienstdatei / | + | Erstelle die Dienstdatei |
- | bash | + | < |
- | Code kopieren | + | |
sudo vim / | sudo vim / | ||
+ | </ | ||
+ | |||
Füge folgenden Inhalt ein: | Füge folgenden Inhalt ein: | ||
- | makefile | + | < |
- | Code kopieren | + | |
[Unit] | [Unit] | ||
Description=Prometheus MQTT Exporter | Description=Prometheus MQTT Exporter | ||
Zeile 248: | Zeile 289: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
'' | '' | ||
Zeile 254: | Zeile 297: | ||
Aktiviere und starte den Dienst: | Aktiviere und starte den Dienst: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
sudo systemctl enable prometheus-mqtt-exporter.service | sudo systemctl enable prometheus-mqtt-exporter.service | ||
sudo systemctl start prometheus-mqtt-exporter.service | sudo systemctl start prometheus-mqtt-exporter.service | ||
sudo systemctl status prometheus-mqtt-exporter.service | sudo systemctl status prometheus-mqtt-exporter.service | ||
+ | </ | ||
+ | |||
Überprüfe die Logs, um sicherzustellen, | Überprüfe die Logs, um sicherzustellen, | ||
- | bash | + | < |
- | Code kopieren | + | |
journalctl -f -u prometheus-mqtt-exporter.service | journalctl -f -u prometheus-mqtt-exporter.service | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
===== 5. Integration in Prometheus ===== | ===== 5. Integration in Prometheus ===== | ||
- | Damit Prometheus die Daten der Exporter sammelt, musst du die prometheus.yml-Konfigurationsdatei anpassen. | + | Damit Prometheus die Daten der Exporter sammelt, musst du die **prometheus.yml**-Konfigurationsdatei anpassen. |
==== Schritt 1: Bearbeiten der Prometheus-Konfiguration ==== | ==== Schritt 1: Bearbeiten der Prometheus-Konfiguration ==== | ||
- | Öffne die Datei / | + | Öffne die Datei **/ |
- | bash | + | < |
- | Code kopieren | + | |
sudo vim / | sudo vim / | ||
+ | </ | ||
+ | |||
Füge die neuen Jobs hinzu: | Füge die neuen Jobs hinzu: | ||
- | yaml | + | < |
- | Code kopieren | + | |
scrape_configs: | scrape_configs: | ||
- job_name: ' | - job_name: ' | ||
Zeile 288: | Zeile 335: | ||
static_configs: | static_configs: | ||
- targets: [' | - targets: [' | ||
+ | </ | ||
+ | |||
==== Schritt 2: Neustarten von Prometheus ==== | ==== Schritt 2: Neustarten von Prometheus ==== | ||
Starte den Prometheus-Dienst neu, damit die Änderungen wirksam werden: | Starte den Prometheus-Dienst neu, damit die Änderungen wirksam werden: | ||
- | bash | + | < |
- | Code kopieren | + | |
sudo systemctl restart prometheus.service | sudo systemctl restart prometheus.service | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
===== 6. Einrichtung von Grafana ===== | ===== 6. Einrichtung von Grafana ===== | ||
==== Schritt 1: Hinzufügen der Prometheus-Datenquelle ==== | ==== Schritt 1: Hinzufügen der Prometheus-Datenquelle ==== | ||
- | Öffne Grafana in deinem Browser: http://<deine_raspberry_pi_ip>:3000 | + | * Öffne Grafana in deinem Browser: |
- | Melde dich mit dem Standardbenutzernamen und -passwort an (admin / admin). Ändere das Passwort beim ersten Login. | + | |
- | Gehe zu Configuration (das Zahnradsymbol) und wähle Data Sources. | + | |
- | Klicke auf Add data source und wähle Prometheus. | + | |
- | Gib unter URL http:// | + | |
- | Klicke auf Save & Test, um die Verbindung zu überprüfen. | + | |
==== Schritt 2: Erstellen von Dashboards ==== | ==== Schritt 2: Erstellen von Dashboards ==== | ||
Jetzt kannst du Dashboards erstellen und die von deinen Exportern bereitgestellten Metriken visualisieren. | Jetzt kannst du Dashboards erstellen und die von deinen Exportern bereitgestellten Metriken visualisieren. | ||
+ | |||
+ | ---- | ||
===== Zusätzliche Hinweise ===== | ===== Zusätzliche Hinweise ===== | ||
- | Passwörter und sensible Daten: Stelle sicher, dass du in den Dienstdateien und Umgebungsvariablen die richtigen Benutzer und Passwörter einträgst. | + | * **Passwörter und sensible Daten**: Stelle sicher, dass du in den Dienstdateien und Umgebungsvariablen die richtigen Benutzer und Passwörter einträgst. |
- | Sicherheit: Wenn du den Zugriff von außerhalb deines Netzwerks erlaubst, überlege dir, wie du die Dienste absicherst (z.B. durch Firewalls oder TLS). | + | * **Sicherheit**: Wenn du den Zugriff von außerhalb deines Netzwerks erlaubst, überlege dir, wie du die Dienste absicherst (z.B. durch Firewalls oder TLS). |
- | Updates: Überprüfe regelmäßig, | + | * **Updates**: Überprüfe regelmäßig, |
+ | |||
+ | ---- | ||
===== Fazit ===== | ===== Fazit ===== | ||
Du hast nun eine Schritt-für-Schritt-Anleitung, | Du hast nun eine Schritt-für-Schritt-Anleitung, | ||
- | Wenn du weitere Fragen hast oder Hilfe bei bestimmten Schritten benötigst, stehe ich gerne zur Verfügung! | + | ---- |
+ | |||
+ | |||
[1] https:// | [1] https:// |
projekte/fabaccess/software/todos/grafana_anbindung.1731056099.txt.gz · Zuletzt geändert: 2024/11/08 09:54 von andre