STERNENLABOR

Wiki und Dokuspace

Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:fabaccess:software:todos:grafana_anbindung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekte:fabaccess:software:todos:grafana_anbindung [2024/11/08 09:54] andreprojekte: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: {{ :projekte:fabaccess:software:todos:monitoring-prometheus-grafana.pdf |}} Anleitung zum Aufsetzen des Monitoring mittels Prometheus + Grafana: {{ :projekte:fabaccess:software:todos:monitoring-prometheus-grafana.pdf |}}
 +
 +Grafana Dashboard auf Basis vom FabAccess Prometheus Exporter und MQTT Exporter: {{ :projekte:fabaccess:software:todos:fabaccess-grafana-prometheus.json.zip |}}
  
 ==== 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. +  Internetzugang für die Installation von Paketen und das Herunterladen von Software. 
-Grundlegende Kenntnisse im Umgang mit der Kommandozeile und dem Editor ''vim'' (du kannst auch ''nano'' oder einen anderen bevorzugten Editor verwenden).+  Grundlegende Kenntnisse im Umgang mit der Kommandozeile und dem Editor ''vim'' (du kannst auch ''nano'' oder einen anderen bevorzugten Editor verwenden). 
 + 
 +---- 
 ===== 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>
-Code kopieren+
 wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
 echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
 +</code>
 +
 ==== Schritt 2: Installation von Grafana ==== ==== Schritt 2: Installation von Grafana ====
  
 Aktualisiere die Paketlisten und installiere Grafana: Aktualisiere die Paketlisten und installiere Grafana:
  
-bash +<code>
-Code kopieren+
 sudo apt-get update sudo apt-get update
 sudo apt-get install -y grafana sudo apt-get install -y grafana
 +</code>
 +
 ==== 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>
-Code kopieren+
 sudo systemctl enable grafana-server sudo systemctl enable grafana-server
 sudo systemctl start grafana-server sudo systemctl start grafana-server
-''Grafana sollte jetzt auf Port 3000 laufen. Du kannst darauf zugreifen, indem du in deinem Browser http://<deine_raspberry_pi_ip>:3000 eingibst.''+</code> 
 + 
 +''Grafana sollte jetzt auf Port 3000 laufen. Du kannst darauf zugreifen, indem du in deinem Browser **http://deine_raspberry_pi_ip:3000** eingibst'' 
 + 
 + 
 +---- 
  
 ===== 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 **/opt** und lade die passende Prometheus-Version für ARM herunter:
  
-bash +<code>
-Code kopieren+
 cd /opt cd /opt
 wget https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-armv7.tar.gz wget https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-armv7.tar.gz
 +</code>
 +
 ==== 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>
-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
 +</code>
 +
 ==== Schritt 3: Berechtigungen setzen ==== ==== Schritt 3: Berechtigungen setzen ====
  
 Setze die Eigentümerrechte: Setze die Eigentümerrechte:
  
-bash +<code>
-Code kopieren+
 sudo chown -R root:root prometheus/ sudo chown -R root:root prometheus/
 +</code>
 +
 ==== Schritt 4: Erstellen eines Systemd-Dienstes für Prometheus ==== ==== Schritt 4: Erstellen eines Systemd-Dienstes für Prometheus ====
  
-Erstelle die Dienstdatei /etc/systemd/system/prometheus.service:+Erstelle die Dienstdatei **/etc/systemd/system/prometheus.service**:
  
-bash +<code>
-Code kopieren+
 sudo vim /etc/systemd/system/prometheus.service sudo vim /etc/systemd/system/prometheus.service
 +</code>
 +
 Füge folgenden Inhalt ein: Füge folgenden Inhalt ein:
  
-javascript +<code>
-Code kopieren+
 [Unit] [Unit]
 Description=Prometheus Server Description=Prometheus Server
Zeile 102: Zeile 125:
 [Install] [Install]
 WantedBy=multi-user.target WantedBy=multi-user.target
 +</code>
 +
 ==== 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>
-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
 +</code>
 +
 ''Prometheus sollte jetzt laufen und auf seinem Standardport (9090) hören.'' ''Prometheus sollte jetzt laufen und auf seinem Standardport (9090) hören.''
 +
 +----
  
 ===== 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, falls noch nicht vorhanden:+Installiere **python3-pip**, falls noch nicht vorhanden:
  
-bash +<code>
-Code kopieren+
 sudo apt install -y python3-pip sudo apt install -y python3-pip
 +</code>
 +
 ==== 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>
-Code kopieren+
 cd /opt/prometheus/ cd /opt/prometheus/
 sudo git clone https://gitlab.com/fabinfra/fabaccess/prometheus-exporter.git fabaccess-exporter --recursive sudo git clone https://gitlab.com/fabinfra/fabaccess/prometheus-exporter.git fabaccess-exporter --recursive
 +</code>
 +
 ==== 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>
-Code kopieren+
 cd /opt/prometheus/fabaccess-exporter/ cd /opt/prometheus/fabaccess-exporter/
 sudo pip3 install -r requirements.txt sudo pip3 install -r requirements.txt
 +</code>
 +
 ==== 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>
-Code kopieren+
 sudo adduser --system prometheus sudo adduser --system prometheus
 +</code>
 +
 Setze die Eigentümerrechte: Setze die Eigentümerrechte:
  
-bash +<code>
-Code kopieren+
 sudo chown -R prometheus:root /opt/prometheus/ sudo chown -R prometheus:root /opt/prometheus/
 +</code>
 +
 ==== Schritt 5: Erstellen des Systemd-Dienstes für den Exporter ==== ==== Schritt 5: Erstellen des Systemd-Dienstes für den Exporter ====
  
-Erstelle die Dienstdatei /etc/systemd/system/prometheus-fabaccess-exporter.service:+Erstelle die Dienstdatei **/etc/systemd/system/prometheus-fabaccess-exporter.service**:
  
-bash +<code>
-Code kopieren+
 sudo vim /etc/systemd/system/prometheus-fabaccess-exporter.service sudo vim /etc/systemd/system/prometheus-fabaccess-exporter.service
 +</code>
 +
 Füge folgenden Inhalt ein (passe die Umgebungsvariablen entsprechend an): Füge folgenden Inhalt ein (passe die Umgebungsvariablen entsprechend an):
  
-makefile +<code>
-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
 +</code>
 +
 ==== 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>
-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
 +</code>
 +
 +----
 +
 ===== 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>
-Code kopieren+
 cd /opt/prometheus/ cd /opt/prometheus/
 sudo git clone https://github.com/kpetremann/mqtt-exporter.git sudo git clone https://github.com/kpetremann/mqtt-exporter.git
 cd mqtt-exporter/ cd mqtt-exporter/
 +</code>
 +
 ==== 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>
-Code kopieren+
 sudo pip3 install -r requirements/base.txt sudo pip3 install -r requirements/base.txt
 +</code>
 +
 ==== Schritt 3: Testweiser Start des Exporters ==== ==== Schritt 3: Testweiser Start des Exporters ====
  
 Starte den Exporter manuell, um sicherzustellen, dass er funktioniert (ersetze die Umgebungsvariablen durch deine eigenen Werte): Starte den Exporter manuell, um sicherzustellen, dass er funktioniert (ersetze die Umgebungsvariablen durch deine eigenen Werte):
  
-bash +<code>
-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
 +</code>
 +
 ==== 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 /etc/systemd/system/prometheus-mqtt-exporter.service:+Erstelle die Dienstdatei **/etc/systemd/system/prometheus-mqtt-exporter.service**:
  
-bash +<code>
-Code kopieren+
 sudo vim /etc/systemd/system/prometheus-mqtt-exporter.service sudo vim /etc/systemd/system/prometheus-mqtt-exporter.service
 +</code>
 +
 Füge folgenden Inhalt ein: Füge folgenden Inhalt ein:
  
-makefile +<code>
-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
 +</code>
 +
 ''Hinweis: Wenn du TLS verwenden möchtest, musst du die entsprechenden Umgebungsvariablen hinzufügen und sicherstellen, dass der MQTT Exporter TLS unterstützt.'' ''Hinweis: Wenn du TLS verwenden möchtest, musst du die entsprechenden Umgebungsvariablen hinzufügen und sicherstellen, dass der MQTT Exporter TLS unterstützt.''
  
Zeile 254: Zeile 297:
 Aktiviere und starte den Dienst: Aktiviere und starte den Dienst:
  
-bash +<code>
-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
 +</code>
 +
 Überprüfe die Logs, um sicherzustellen, dass der Exporter korrekt läuft: Überprüfe die Logs, um sicherzustellen, dass der Exporter korrekt läuft:
  
-bash +<code>
-Code kopieren+
 journalctl -f -u prometheus-mqtt-exporter.service journalctl -f -u prometheus-mqtt-exporter.service
 +</code>
 +
 +----
 +
 ===== 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 /opt/prometheus/prometheus.yml:+Öffne die Datei **/opt/prometheus/prometheus.yml**:
  
-bash +<code>
-Code kopieren+
 sudo vim /opt/prometheus/prometheus.yml sudo vim /opt/prometheus/prometheus.yml
 +</code>
 +
 Füge die neuen Jobs hinzu: Füge die neuen Jobs hinzu:
  
-yaml +<code>
-Code kopieren+
 scrape_configs: scrape_configs:
   - job_name: 'fabaccess_exporter'   - job_name: 'fabaccess_exporter'
Zeile 288: Zeile 335:
     static_configs:     static_configs:
       - targets: ['localhost:9001']       - targets: ['localhost:9001']
 +</code>
 +
 ==== 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>
-Code kopieren+
 sudo systemctl restart prometheus.service sudo systemctl restart prometheus.service
 +</code>
 +
 +----
 +
 ===== 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: **http://deine_raspberry_pi_ip:3000** 
-Melde dich mit dem Standardbenutzernamen und -passwort an (admin / admin). Ändere das Passwort beim ersten Login. +  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. +  Gehe zu **Configuration** (das Zahnradsymbol) und wähle **Data Sources**
-Klicke auf Add data source und wähle Prometheus. +  Klicke auf **Add data source** und wähle **Prometheus**
-Gib unter URL http://localhost:9090 ein. +  Gib unter **URL** **http://localhost:9090** ein. 
-Klicke auf Save & Test, um die Verbindung zu überprüfen.+  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, ob es Updates für Prometheus, Grafana und die Exporter gibt, um Sicherheitslücken zu schließen und neue Features zu nutzen.+  * **Updates**: Überprüfe regelmäßig, ob es Updates für Prometheus, Grafana und die Exporter gibt, um Sicherheitslücken zu schließen und neue Features zu nutzen. 
 + 
 +---- 
 ===== Fazit ===== ===== Fazit =====
  
 Du hast nun eine Schritt-für-Schritt-Anleitung, um Prometheus und Grafana auf deinem Raspberry Pi zu installieren und zu konfigurieren, einschließlich der Einrichtung von FabAccess und MQTT Exportern. Damit kannst du Daten sammeln und in Grafana visualisieren, um Einblicke in dein System zu erhalten. Du hast nun eine Schritt-für-Schritt-Anleitung, um Prometheus und Grafana auf deinem Raspberry Pi zu installieren und zu konfigurieren, einschließlich der Einrichtung von FabAccess und MQTT Exportern. Damit kannst du Daten sammeln und in Grafana visualisieren, um Einblicke in dein System zu erhalten.
  
-Wenn du weitere Fragen hast oder Hilfe bei bestimmten Schritten benötigst, stehe ich gerne zur Verfügung!+---- 
 + 
 + 
  
 [1] https://wiki.sternenlabor.de/doku.php?id=dienste:start&s[]=grafana [1] https://wiki.sternenlabor.de/doku.php?id=dienste:start&s[]=grafana
projekte/fabaccess/software/todos/grafana_anbindung.1731056099.txt.gz · Zuletzt geändert: 2024/11/08 09:54 von andre

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki