projekte:fabaccess:software:todos:grafana_anbindung
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projekte:fabaccess:software:todos:grafana_anbindung [2024/10/31 14:00] – angelegt andre | projekte:fabaccess:software:todos:grafana_anbindung [2024/11/19 07:47] (aktuell) – andre | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
Um Verbrauchsmaterialien und Wartungsarbeiten besser abschätzen zu können und um Beschädigungen durch falsche Benutzung an Geräten besser nachvollziehen zu können, müssten diese Daten in ein System zur Strukturierung und Analyse geschrieben werden. | Um Verbrauchsmaterialien und Wartungsarbeiten besser abschätzen zu können und um Beschädigungen durch falsche Benutzung an Geräten besser nachvollziehen zu können, müssten diese Daten in ein System zur Strukturierung und Analyse geschrieben werden. | ||
- | Es gibt wohl bereits eine Beschreibung für eine Grafana Anbindung. Da wir Grafana 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 |
===== Umsetzung ===== | ===== Umsetzung ===== | ||
- | TBD (Anleitung | + | Anleitung |
+ | |||
+ | Grafana Dashboard auf Basis vom FabAccess Prometheus Exporter und MQTT Exporter: {{ : | ||
+ | |||
+ | ==== Von ChatGPT aufgehübschte Anleitung aus dem PDF Dokument: ==== | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Übersicht ===== | ||
+ | |||
+ | Wir werden folgende Komponenten installieren und konfigurieren: | ||
+ | |||
+ | * **Grafana**: | ||
+ | * **Prometheus**: | ||
+ | * **FabAccess Prometheus Exporter**: Exportiert FabAccess-Daten für Prometheus. | ||
+ | * **MQTT Exporter**: Exportiert MQTT-Daten für Prometheus. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Voraussetzungen ===== | ||
+ | |||
+ | * 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 ===== | ||
+ | |||
+ | ==== Schritt 1: Hinzufügen des Grafana-Repositorys ==== | ||
+ | |||
+ | Füge den GPG-Schlüssel und das Repository von Grafana hinzu, um die neueste Version installieren zu können: | ||
+ | |||
+ | < | ||
+ | wget -q -O - https:// | ||
+ | echo "deb https:// | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 2: Installation von Grafana ==== | ||
+ | |||
+ | Aktualisiere die Paketlisten und installiere Grafana: | ||
+ | |||
+ | < | ||
+ | sudo apt-get update | ||
+ | sudo apt-get install -y grafana | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 3: Starten und Aktivieren des Grafana-Dienstes ==== | ||
+ | |||
+ | Aktiviere den automatischen Start von Grafana beim Systemstart und starte den Dienst: | ||
+ | |||
+ | < | ||
+ | sudo systemctl enable grafana-server | ||
+ | sudo systemctl start grafana-server | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ===== 2. Installation von Prometheus ===== | ||
+ | |||
+ | ==== Schritt 1: Herunterladen von Prometheus ==== | ||
+ | |||
+ | Wechsle zum Verzeichnis **/opt** und lade die passende Prometheus-Version für ARM herunter: | ||
+ | |||
+ | < | ||
+ | cd /opt | ||
+ | wget https:// | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 2: Entpacken und Einrichten ==== | ||
+ | |||
+ | Entpacke das Archiv, benenne das Verzeichnis um und bereinige: | ||
+ | |||
+ | < | ||
+ | tar xfz prometheus-2.22.0.linux-armv7.tar.gz | ||
+ | mv prometheus-2.22.0.linux-armv7 prometheus | ||
+ | rm prometheus-2.22.0.linux-armv7.tar.gz | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 3: Berechtigungen setzen ==== | ||
+ | |||
+ | Setze die Eigentümerrechte: | ||
+ | |||
+ | < | ||
+ | sudo chown -R root:root prometheus/ | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 4: Erstellen eines Systemd-Dienstes für Prometheus ==== | ||
+ | |||
+ | Erstelle die Dienstdatei **/ | ||
+ | |||
+ | < | ||
+ | sudo vim / | ||
+ | </ | ||
+ | |||
+ | Füge folgenden Inhalt ein: | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=Prometheus Server | ||
+ | Documentation=https:// | ||
+ | After=network-online.target | ||
+ | |||
+ | [Service] | ||
+ | User=prometheus | ||
+ | Restart=on-failure | ||
+ | ExecStart=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 5: Dienst einrichten und starten ==== | ||
+ | |||
+ | Führe folgende Befehle aus, um den Dienst zu laden, zu aktivieren und zu starten: | ||
+ | |||
+ | < | ||
+ | sudo systemctl daemon-reload | ||
+ | sudo systemctl enable prometheus.service | ||
+ | sudo systemctl start prometheus.service | ||
+ | sudo systemctl status prometheus.service | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 3. Installation des FabAccess Prometheus Exporters ===== | ||
+ | |||
+ | ==== Schritt 1: Installieren von Python-Paketen ==== | ||
+ | |||
+ | Installiere **python3-pip**, | ||
+ | |||
+ | < | ||
+ | sudo apt install -y python3-pip | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 2: Herunterladen des Exporters ==== | ||
+ | |||
+ | Wechsle zum Prometheus-Verzeichnis und klone das Repository: | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | sudo git clone https:// | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 3: Installieren der Abhängigkeiten ==== | ||
+ | |||
+ | Wechsle in das Exporter-Verzeichnis und installiere die Python-Abhängigkeiten: | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | sudo pip3 install -r requirements.txt | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 4: Erstellen eines Benutzers für Prometheus ==== | ||
+ | |||
+ | Erstelle einen Systembenutzer für Prometheus: | ||
+ | |||
+ | < | ||
+ | sudo adduser --system prometheus | ||
+ | </ | ||
+ | |||
+ | Setze die Eigentümerrechte: | ||
+ | |||
+ | < | ||
+ | sudo chown -R prometheus: | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 5: Erstellen des Systemd-Dienstes für den Exporter ==== | ||
+ | |||
+ | Erstelle die Dienstdatei **/ | ||
+ | |||
+ | < | ||
+ | sudo vim / | ||
+ | </ | ||
+ | |||
+ | Füge folgenden Inhalt ein (passe die Umgebungsvariablen entsprechend an): | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=Prometheus FabAccess Exporter Service | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | Type=simple | ||
+ | User=prometheus | ||
+ | Group=root | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | WorkingDirectory=/ | ||
+ | ExecStart=/ | ||
+ | Restart=always | ||
+ | RestartSec=5 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 6: Dienst einrichten und starten ==== | ||
+ | |||
+ | Lade die Systemd-Daemon neu und starte den Dienst: | ||
+ | |||
+ | < | ||
+ | sudo systemctl daemon-reload | ||
+ | sudo systemctl enable prometheus-fabaccess-exporter.service | ||
+ | sudo systemctl start prometheus-fabaccess-exporter.service | ||
+ | sudo systemctl status prometheus-fabaccess-exporter.service | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 4. Installation des MQTT Exporters ===== | ||
+ | |||
+ | ==== Schritt 1: Herunterladen des MQTT Exporters ==== | ||
+ | |||
+ | Wechsle zum Prometheus-Verzeichnis und klone das Repository: | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | sudo git clone https:// | ||
+ | cd mqtt-exporter/ | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 2: Installieren der Abhängigkeiten ==== | ||
+ | |||
+ | Installiere die benötigten Python-Pakete: | ||
+ | |||
+ | < | ||
+ | sudo pip3 install -r requirements/ | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 3: Testweiser Start des Exporters ==== | ||
+ | |||
+ | Starte den Exporter manuell, um sicherzustellen, | ||
+ | |||
+ | < | ||
+ | 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 ==== | ||
+ | |||
+ | Erstelle die Dienstdatei **/ | ||
+ | |||
+ | < | ||
+ | sudo vim / | ||
+ | </ | ||
+ | |||
+ | Füge folgenden Inhalt ein: | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=Prometheus MQTT Exporter | ||
+ | After=network-online.target | ||
+ | |||
+ | [Service] | ||
+ | User=prometheus | ||
+ | Restart=on-failure | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | Environment=" | ||
+ | WorkingDirectory=/ | ||
+ | ExecStart=/ | ||
+ | Restart=always | ||
+ | RestartSec=5 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | ==== Schritt 5: Dienst einrichten und starten ==== | ||
+ | |||
+ | Aktiviere und starte den Dienst: | ||
+ | |||
+ | < | ||
+ | sudo systemctl daemon-reload | ||
+ | sudo systemctl enable prometheus-mqtt-exporter.service | ||
+ | sudo systemctl start prometheus-mqtt-exporter.service | ||
+ | sudo systemctl status prometheus-mqtt-exporter.service | ||
+ | </ | ||
+ | |||
+ | Überprüfe die Logs, um sicherzustellen, | ||
+ | |||
+ | < | ||
+ | journalctl -f -u prometheus-mqtt-exporter.service | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 5. Integration in Prometheus ===== | ||
+ | |||
+ | Damit Prometheus die Daten der Exporter sammelt, musst du die **prometheus.yml**-Konfigurationsdatei anpassen. | ||
+ | |||
+ | ==== Schritt 1: Bearbeiten der Prometheus-Konfiguration ==== | ||
+ | |||
+ | Öffne die Datei **/ | ||
+ | |||
+ | < | ||
+ | sudo vim / | ||
+ | </ | ||
+ | |||
+ | Füge die neuen Jobs hinzu: | ||
+ | |||
+ | < | ||
+ | scrape_configs: | ||
+ | - job_name: ' | ||
+ | static_configs: | ||
+ | - targets: [' | ||
+ | |||
+ | - job_name: ' | ||
+ | static_configs: | ||
+ | - targets: [' | ||
+ | </ | ||
+ | |||
+ | ==== Schritt 2: Neustarten von Prometheus ==== | ||
+ | |||
+ | Starte den Prometheus-Dienst neu, damit die Änderungen wirksam werden: | ||
+ | |||
+ | < | ||
+ | sudo systemctl restart prometheus.service | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 6. Einrichtung von Grafana ===== | ||
+ | |||
+ | ==== Schritt 1: Hinzufügen der Prometheus-Datenquelle ==== | ||
+ | |||
+ | * Öffne Grafana in deinem Browser: **http:// | ||
+ | * 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 ==== | ||
+ | |||
+ | Jetzt kannst du Dashboards erstellen und die von deinen Exportern bereitgestellten Metriken visualisieren. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 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. | ||
+ | * **Sicherheit**: | ||
+ | * **Updates**: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Fazit ===== | ||
+ | |||
+ | Du hast nun eine Schritt-für-Schritt-Anleitung, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [1] https:// |
projekte/fabaccess/software/todos/grafana_anbindung.1730379618.txt.gz · Zuletzt geändert: 2024/10/31 14:00 von andre