[MySQL Master-Slave Verbindungsfehler] Grafana-Panel über VServer in Webseite einbinen

  • Hallo zusammen,


    ich bin mal wieder auf eure Hilfe angewiesen.

    Ich habe einen Pi Zero, auf dem läuft Raspian-lite, Apache2, phpMyAdmin und Grafana.

    Grafana visualisiert meine Daten die ich in phpMyAdmin speichere.

    Da ich die Visualisierungen gerne immer über das Internet abrufen möchte, habe ich eine *.php-Datei erstellt. Darin befinden sich dann die Grafana-Panels mit 'iframe'.

    Das funktioniert im W-lan auch problemlos.

    Ich habe mir einen V-Server gemietet und mit Apache2, WireGuard und ReverseProxy kann ich auf die Webseite jetzt auch aus dem Internet aufrufen. Das klappt also auch. Mit 'Cert-Bot' habe ich ein Zertifikat erstellt um meine Webseite mit 'https' aufrufen zu können.

    Mein Problem ist jetzt, dass wenn ich die Webseite aus dem Internet (z.B. mit dem mobilen Daten) aufrufen, wird sie ohne die Grafana-Panels angezeigt. Dabei spielt es keine Rolle ob ich 'http' oder 'https' verwende.

    Die 'grafana.ini' hat verschiedene Optionen, ich bin leider nicht besonders schlau daraus geworden, was ich wo ändern muss.

    Könnte es auch sein das ich die Proxy-conf-Datei ändern muss?


    In der Grafana.ini habe ich folgendes geändert:

    Auf dem V-Server mit Apache2 hat die Konfigurationsdatei für den Reverse Proxy diesen Inhalt:

    Code
    <VirtualHost *:80>
       ProxyPreserveHost On
       ProxyPass / http://192.168.200.2/
       ProxyPassReverse /  http://192.168.200.2/
    </VirtualHost>


    Ich weis hier mal wieder überhaupt nicht weiter und ich weis auch nicht welche Informationen euch helfen um mein Problem anzugehen?


    Vielen Dank im vor ab und viele Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Hallo,


    läuft Grafana auch auf dem VServer, also auf der gleichen Maschine wie der Apache? Dann müsstest du IMHO doch in der Direktive für den Reverse Proxy `localhost` bzw. `127.0.0.1` eintragen.


    Gruß, noisefloor

  • Hallo noisefloor ,


    danke für deine Antwort.

    Grafana läuft bis jetzt nur auf dem Raspberry Zero (Apache2 läuft auf dem Pi und auf dem V-Server). Wäre es sinnvoller Grafana auf dem V-Server zu installieren und von dort aus in die Webseite einzubinden?

    Dachte ich lasse alles auf einem System laufen und übergebe die fertige Webseite dem V-Server.



    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Hallo,


    weißt du, wie ein Reverse Proxy funktioniert? Du leitest auf dem Webserver im Moment alle Anfrage auf / (also die "Hauptseite" des Servers) an die IP-Adresse 192.168.200.2 weiter. D.h. dein Raspi müsste für den VServer unter 192.168.200.2 erreichbar sein. Ist er aber ziemlich sicher nicht, da 192.168.x.x eine IP-Adresse für private / interne Netzwerke ist.


    Ist dein Pi überhaupt von außerhalb erreichbar? Sonst funktioniert deine Konstellation sowie so nicht.


    Gruß, noisefloor

  • Guten Morgen und Danke für deine Antwort.


    Zwischen meinem Raspi und dem V-Server steht ein VPN-Tunnel, den ich mit WireGuard aufgesetzt habe. Da habe ich dann die IP-Adresse festgelegt.

    Ich kann im jetzigen Zustand aus dem Internet die selbst erstellte Webseite abrufen, die auf meinem Raspi liegt. Die Konstellation funktioniert soweit.

    Ich habe das alles auch nicht irgendwie zusammengebastelt, sondern mit Hilfe des Forums hier in einem langen Thread erarbeitet. Von dem her gehe ich davon aus, dass das so passen sollte? Hier der Link zu dem Thread, ist jedoch durch ein paar Fehler von mir, ziemlich unübersichtlich.


    Ich fasse nochmal zusammen:

    Auf dem Pi:

    -Grafana, Apache2, WireGuard und phpMyAdmin

    - *.php Datei, die die Grafana-Panel enthält


    Auf dem V-Server:

    - Apache2 und WireGuard


    Die *.php-Datei ist aktuell aus dem Internet aufrufbar, allerdings werden die Grafana-Panel nicht dargestellt. Es gibt keine Fehlermeldung. Wenn ich die *.php-Datei direkt im W-lan über die IP-des Raspi öffne, dann werden die Grafana-Panels angezeigt.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Hallo,


    ok, thx. Hatte das Setup erst nicht richtig verstanden.


    Quote

    Es gibt keine Fehlermeldung.

    Heißt das, dass du auf der Webseite keinen Fehler siehst oder auch keine Webfehler in Entwicklertools des Browsers?`


    Und zeigt mal bitte den relevanten Teil des HTML-Quelltextes, der im Browser ankommt und das Grafana-Panel zeigen soll.


    Gruß, noisefloor

  • Hallo und Danke für deine Antwort.


    Heißt das, dass du auf der Webseite keinen Fehler siehst

    Ja genau.


    Die restlichen Informationen kann ich erst heute nach Feierabend liefern.

    Was ich schon mal zu der URL sagen kann: Nach dem ich mein Grafana-Panel erstellt habe, habe ich auf "Share" geklickt, dann im Reiter "Embed" habe ich den dort angezeigten Link genommen. Kann ich heute Abend gern noch mit Bildern zeigen.


    Bis später und Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Guten Abend,


    so zum Thema URL:



    Diesen Link habe ich dann genommen. Habe mal die Größe weggelassen und mal mit der Größenangabe, machte aber keinen Unterschied.

    Hier die vollständige *.php - Datei, war mir nicht sicher ob ich eventuell etwas wichtiges weglasse, wenn ich nur Teile zeige:


    Wenn ich auf 'Seitenquelltext anzeigen' im Browser klicke, bekomme ich nur diesen Code:

    Der Link hinter 'src' führt dann aber zum vollständigen Quellcode.


    In den Entwicklertools des Browsers sieht es so aus:

    Hoffe man kann es lesen, da steht dass der Inahlt blockiert wurde. Wenn ich die Seite mit Safari auf dem Handy öffne, werden die Panels aber auch nicht angezeigt. Ein Versuch mit Samsung-Internet auf einem Android-Smartphone brachte das gleiche Ergebnis, von daher schließe ich den Browser aus.


    Ich habe noch nie viel mit den Entwicklertools im Browser gemacht, kann ich euch da noch weitere hilfreiche Infos raussuchen?

    Ich nutze Mozilla Firefox Version 89.0.2.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Ändere mal die URL im iframe von http zu https.
    Dein PI muss natürlich für https konfiguriert sein.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Hallo,


    IMHO kann das mit der IP-Adresse im IFrame doch nicht funktionieren? Die HTML-Seite läuft im Browser und _der_ versucht dann, die Adresse abzurufen. Wobei dann nur ein Ergebnis kommt, wenn du in deinem Heimnetz. Wenn du woanders im Internet bist, führt die URL im src-Attribut ins nichts.


    Gruß, noisefloor

  • Guten Morgen,


    danke für eure Antworten.


    Ändere mal die URL im iframe von http zu https.

    Kann ich mal versuchen. Es macht aber auch kein Unterschied wenn ich die Webseite mit 'httpp aufrufe.



    Wenn du woanders im Internet bist, führt die URL im src-Attribut ins nichts.

    Achso okay, ich glaube ich verstehe. Ich versuche die URL heute Abend mal zu ändern bzw. erst mal versuche ich Grafana von außerhalb zu erreichen und dann den URL anzupassen.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Kann ich mal versuchen. Es macht aber auch kein Unterschied wenn ich die Webseite mit 'httpp aufrufe.


    Grüße

    Dennis

    Laut deinem Bild aus den Entwicklertools schon. Es wird in einer https Seite http nachgeladen und das wird blockiert.

    Das mit der Lokalen IP im Iframe ist ein anderes Thema. Wenn du nun Grafana von Außen erreichbar machst dann brauchst du keinen VServer mit Wireguard Tunnel.
    Du solltest dann einen zusätzlichen ReversProxy für Grafana konfigurieren.


    Code
    <VirtualHost *:80>
        ProxyPreserveHost On
        ProxyPass / http://192.168.200.2/
        ProxyPassReverse / http://192.168.200.2/
        ProxyPass /grafana/ http://192.168.0.216:3000
        ProxyPassReverse /grafana/ http://192.168.0.216:3000
    </VirtualHost>

    Dann in den iFrame :

    Code
    <iframe id="diagram" src="/grafana/d-solo/jsed0Ukgz/temperatur?orgId=1&refresh=1m&theme=light&panelId=2" frameborder="0"></iframe>


    So ähnlich sollte das klappen, aber obacht, ist alles http, nicht (s).

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Hallo und vielen Dank für die Antwort.


    Werde ich heute Abend (hoffe es reicht mir) ausprobieren und geben hier dann wieder Rückmeldung. :thumbup:



    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Hallo,


    leider hat es nicht gekappt. Habe eine neue proxy.conf- Datei mit dem vorgeschlagenen Inhalt von Der_Imperator erstellt, diese aktivert und in der *php-Datei die 'iframe' angepasst. Das Ergebnis war eine leere Webseite. Egal ob ich die Website mit 'http' oder 'https' aufgerufen habe.

    Dann habe ich in meine bestehende proxy.conf die Zeilen:

    Code
        ProxyPass /grafana/ http://192.168.0.216:3000
        ProxyPassReverse /grafana/ http://192.168.0.216:3000

    hinzugefügt. Die vorhin neu erstellte conf-Datei wieder deaktivert. Brachte wieder eine leere Webseite zum Vorschein.

    Habe mich dann über die IP-Adresse gewundert, die ich in die proxy.conf eingetragen habe. Dass ist ja die lokale IP meines Pi's. Die kann ja von dem V-Server gar nicht geöffnet werden. Habe die IP dann gegen http://192.168.200.2:3000 geändert. Aber leider ohne Veränderung.

    Nach jeder Änderung an einer conf-Datei habe ich Apache2 neugestartet.


    Wenn du nun Grafana von Außen erreichbar machst dann brauchst du keinen VServer mit Wireguard Tunnel.

    Das verstehe ich nicht. Ich habe den VServer mit WireGuard im Einsatz, weil ich keine andere Möglichkeit habe meinen Pi von Außen zu erreichen.



    Da die Webseite keine Fehlermeldungen enthält und das Ergebnis eine leere Seite ist, weis ich leider gar nicht was für Informationen weiter helfen könnten.


    Danke und Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Hallo und Danke für deine Antwort.


    Wenn ich auf dem Pi 'Listen 3000' hinzufüge oder 80 in 3000 ändere, dann startet Apache2 nicht mehr.

    Habe jetzt auf dem VServer 'Listen 3000' eingetragen und den Vorschlag von Der_Imperator eingebaut.

    Das Ergebnis ist folgende Fehlermeldung auf der Webseite:


    Code
    Not Found
    
    The requested URL was not found on this server.
    Apache/2.4.38 (Raspbian) Server at 45261ee.online-server.cloud Port 80

    Die Meldung kommt wieder, egal ob ich die Webseite mit 'http' oder 'https' aufrufe.



    Danke und Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Wenn ich auf dem Pi 'Listen 3000' hinzufüge oder 80 in 3000 ändere, dann startet Apache2 nicht mehr.

    Weil der Port von Grafana gebunden wurde.


    Habe jetzt auf dem VServer 'Listen 3000' eingetragen

    Warum? Grafana läuft doch auf deinem RPi, oder nicht? Der Zugriff auf Grafana Port 3000 hat doch mit den Apache-Ports nichts zu tun.

    Menschen die keine Ironie verstehen finde ich super!

    Edited 2 times, last by llutz ().