Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Grafana von extern erreichbar machen

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Grafana von extern erreichbar machen

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Herrx last edited by Herrx

      Hallo,

      ich möchte meine Grafana Ansicht mobil von meinem Smartphone sehen können? Vermutlich brauch ich dafür ein PIVPN auf meinem Raspberry PI4 worauf auch mein ioBroker und mein Grafana drauf läuft.
      Hat schon jemand damit Erfahrungen gesammelt?

      Danke

      Meister Mopper Asgothian 2 Replies Last reply Reply Quote 0
      • Meister Mopper
        Meister Mopper @Herrx last edited by

        @herrx

        Welchen Router nutzt du?

        H 1 Reply Last reply Reply Quote 0
        • Asgothian
          Asgothian Developer @Herrx last edited by

          @herrx sagte in Grafana von extern erreichbar machen:

          ich möchte meine Grafana Ansicht mobil von meinem Smartphone sehen können? Vermutlich brauch ich dafür ein PIVPN auf meinem Raspberry PI4 worauf auch mein ioBroker und mein Grafana drauf läuft.
          Hat schon jemand damit Erfahrungen gesammelt?

          Ein PIVPN auf dem Rechner laufen zu lassen auf dem auch der Rest Deiner Umgebung läuft ist wenig Sinnvoll. Damit erlaubst du zugriffe von aussen auf dein Live-System ohne vorherige Benutzerkontrolle. Dafür nutzt man entweder das VPN des Routers (sie die Frage von @Meister-Mopper) oder baut sich einen eigenen kleinen von Router mit entsprechend reduzierter Softwareausstattung (also kein std. Linux mit nem PIVPN)

          A.

          H 1 Reply Last reply Reply Quote 0
          • H
            Herrx @Meister Mopper last edited by

            @meister-mopper Speedport Smart 2

            1 Reply Last reply Reply Quote 0
            • H
              Herrx @Asgothian last edited by

              @asgothian Also Fritz!Box kaufen.. Scheint das einfachste zu sein.

              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @Herrx last edited by

                Ich verwende tailscale für sowas.

                1 Reply Last reply Reply Quote 0
                • BananaJoe
                  BananaJoe Most Active last edited by

                  Also,

                  Grafana läuft bei mir mit auf ioBroker-Server auf dem Default Port 3000.

                  Für den Zugriff von Außen (wie für viele andere Dinge auch) nutze ich einen Apache-Reverse Proxy in einer eigenen VM die nichts anderes macht (könnte aber auch ein extra Raspberry Pi sein). Auf diese VM habe ich von außen Port 80 und 443 weitergeleitet (=http und https).
                  In der VM kann ich eine Subdomain einrichten (grafana.deinedomain.de) für die dann auch ein LetsEncrypt-Zertifikat angefordert wird.
                  Kommt von außen jemand mit "grafana.deinedomain.de" an, weiß der Proxy das er das auf Port 3000 meiner ioBroker-Installation weiter.
                  Auf meinem Android-Handy nutze ich die App "Viewer4Grafana" in der ich dann https://grafana.deinedomain.de eingetragen habe.

                  Der Reverse Proxy biegt je nach DNS-Namen anders ab - Seafile, Nextcloud, Zabbix, Homepage usw.
                  Die Subdomänen lege ich nach Bedarf an. Diese zeigen entweder auf die feste IP-Adresse oder sind vom Typ CNAME und zeigen auf den DNS-Namen meiner FritzBox.

                  Der Reverse Proxy könnte auch mit /grafana umgehen. Also als DNS-Namen hätten dann alle die gleiche, www.meinedomain.de und die einzelnen Dienste kann man auch als /grafana /zabbix /nextcloud etc. dahinter hängen.

                  Der Vorteil ist das ich eine VM habe wo ich so etwas bei Bedarf anlege und beliebige interne Webinterfaces verschlüsselt und ggf. mit zusätzlicher Anmeldung nach außen hin bereitstellen kann ohne das Rad jedes mal neu erfinden zu müssen.
                  Weil ich faul bin läuft auf diesem Reverse Proxy bei mir "ISPConfig", da gibt es auch viele fertige Installationsskripte. Dann hat meinen Weboberfläche wo man die neue Domain anlegt, den Haken bei Lets Encrypt setzt und kurz wartet, dann geht die Webseite. Dann noch mal bearbeiten und die Reverse DNS-Einträge setzen und fertig.

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    ManfredHi @BananaJoe last edited by

                    @bananajoe

                    Hallo, hab gerade deinen Eintrag gefunden und bin in einer ähnlichen Situation.
                    Das was ich brauche ist, dass ich auf meine grafana-Dashboards von außen zugreifen muss.

                    Ich habe derzeit einen proxmox lxc-Container für nextcloud laufen. dieser ist mit einer dyndns-Adresse erreichbar. Letsencrypt ist darauf aktiv.

                    Ich brauche nun einen reverseproxy für grafana.
                    Habe das nun mal auf dem nextcloud eingerichtet. eine nextcloud.conf und eine grafana.conf.

                    Bisher hat der aufruf meiner nextcloud immer so funktioniert "https://xxxxxx.dnshome.de und ich bin sofort in der Nextcloud gewesen. Seit ich jetzt in der config was geändert habe muss ich "/nextcloud" anhängen. mache ich das nicht kommt die apache hinweisseite.
                    wenn ich "/grafana" anhänge komme ich auf den Grafana-Server allerdings kommt eine Meldung "If you're seeing this Grafana has failed to load its application files"

                    Der inhalt meiner nextcloud.conf:

                    
                    <VirtualHost *:80>
                         ServerAdmin xxxxx@gmx.at
                         DocumentRoot /var/www/html/nextcloud
                         ServerName xxxxx.dnshome.de
                         ErrorLog /var/log/apache2/nextcloud-error.log
                         CustomLog /var/log/apache2/nextcloud-access.log combined
                         Redirect permanent / https://xxxxx.dnshome.de/
                    
                    </VirtualHost>
                    
                    <VirtualHost *:443>
                        ServerName xxxxx.dnshome.de
                    
                        SSLEngine on
                        SSLCertificateFile /etc/letsencrypt/live/xxxxx.dnshome.de/fullchain.pem
                        SSLCertificateKeyFile /etc/letsencrypt/live/xxxxx.dnshome.de/privkey.pem
                        Include /etc/letsencrypt/options-ssl-apache.conf
                    
                        # Nextcloud configuration
                        Alias /nextcloud "/var/www/html/nextcloud/"
                        DocumentRoot /var/www/html/nextcloud
                        <Directory /var/www/html/nextcloud/>
                            Require all granted
                            Options FollowSymlinks MultiViews
                            AllowOverride All
                            <IfModule mod_dav.c>
                                Dav off
                            </IfModule>
                        </Directory>
                    </VirtualHost>
                    
                    

                    Der Inhalt meiner grafana.conf:

                    <VirtualHost *:80>
                        ServerName xxxxx.dnshome.de
                    
                        # Redirect all HTTP traffic to HTTPS
                        Redirect permanent / https://xxxxx.dnshome.de/
                    </VirtualHost>
                    
                    <VirtualHost *:443>
                        ServerName xxxxx.dnshome.de
                    
                        SSLEngine on
                        SSLCertificateFile /etc/letsencrypt/live/xxxxx.dnshome.de/fullchain.pem
                        SSLCertificateKeyFile /etc/letsencrypt/live/xxxxx.dnshome.de/privkey.pem
                        Include /etc/letsencrypt/options-ssl-apache.conf
                    
                        # Proxy settings for Grafana
                        ProxyPreserveHost On
                        ProxyPass /grafana http://192.168.0.23:3000/
                        ProxyPassReverse /grafana http://192.168.0.23:3000/
                    </VirtualHost>
                    
                    

                    Das ist die Meldung die ich bekomme wenn ich https://xxxxx.dnshome.de/grafana eingebe:

                    2f75153a-795c-4c52-9b72-bfc7f899b034-image.png

                    Kannst du mir da bitte vielleicht weiterhelfen?
                    danke.

                    BananaJoe 1 Reply Last reply Reply Quote 0
                    • BananaJoe
                      BananaJoe Most Active @ManfredHi last edited by BananaJoe

                      @manfredhi Was willst du erreichen, Nextcloud wie bisher und /grafana dann für grafana?
                      Oder hast du 2 verschiedene xxx.dnshome.de DNS-Namen?

                      Wenn beides unter einen Namen:

                      Deaktiviere die Webseite für Grafana wieder.

                      a2dissite namegrafana.vhost
                      

                      Die Konfigurationsdatei kopierst du dir dann in das Apache-Conf Verzeichnis, bei mir wäre das

                      /etc/apache2/conf-available/grafana.conf
                      

                      bzw. erstellst diese Datei dort dort
                      Bei der Grafana-Konfiguration fehlt das Alias /grafana im https Teil, den ServerName lässt du dafür weg.
                      Inhalt müsste so sein:

                      Alias /grafana /var/www
                      ProxyPreserveHost On
                      ProxyPass / http://192.168.0.23:3000/
                      ProxyPassReverse / http://192.168.0.23:3000/
                      
                      

                      Speichern und mit

                      a2enconf grafana
                      

                      Aktieren.

                      Nextcloud: da nimmst du die Alias-Zeile wieder raus bzw. machst alles wieder so wie vorher wie es ging.

                      Und den Apache neu starten / reloaden.
                      Die notwendigen Module hast du aktiviert nehme ich an (sonst würde SSL und rewrite ja nicht gehen)

                      Dann sollte Nextcloud funktionieren wie vorher, wenn du an die Domäne direkt ein /grafana anhängst sollte Grafana kommen.

                      Bei mir habe ich das gerade getestet und das klappt.

                      Über die .conf Variante gilt das global, du kannst 20 verschiedenen Webseiten auf deinem Server hosten und überall ein /grafana anhängen und die Seite kommt.

                      Zufällig habe ich heute an meinem Webserver gearbeitet und da war mir aufgefallen das /phpmyadmin auch auf jeder Webseite funktionierte, da habe ich mir das gerade abgeschaut.
                      Das der Alias nach /var/www zeigt ist nur ein Hilfskonstrukt, der Proxy-Aufruf leitet ja alles nach dem / um. Und der / gilt nach dem Alias /grafana, deshlab muss/darf das da nicht noch einmal stehen.

                      M 2 Replies Last reply Reply Quote 0
                      • M
                        ManfredHi @BananaJoe last edited by ManfredHi

                        @bananajoe sagte in Grafana von extern erreichbar machen:

                        Die Konfigurationsdatei kopierst du dir dann in das Apache-Conf Verzeichnis, bei mir wäre das

                        bei mir war die bestehende nextcloud.conf unter /etc/apache2/sites-available
                        dort habe ich auch die grafana.conf angelegt.

                        Soll ich diese dort nun löschen und unter /etc/apache2/conf-available anlegen? Dort sind bei mir derzeit ganz andere conf dateien.

                        BananaJoe 1 Reply Last reply Reply Quote 0
                        • M
                          ManfredHi @BananaJoe last edited by

                          @bananajoe

                          ok nextcloud funktioniert wieder wie vorher.

                          allerdings mit grafana klappt es nicht, da dürfte ich noch irgendwas falsch machen.
                          es kommt beim aufruf immer der hinweis von nextcloud dass diese seite nicht vorhanden ist.

                          1 Reply Last reply Reply Quote 0
                          • BananaJoe
                            BananaJoe Most Active @ManfredHi last edited by BananaJoe

                            @manfredhi sagte in Grafana von extern erreichbar machen:
                            vergiss es, das klappt nicht, mein Browsercache hat mich auf das Glatteis geführt

                            1 Reply Last reply Reply Quote 0
                            • BananaJoe
                              BananaJoe Most Active last edited by

                              es könnte sein das es nicht funktioniert mit Nextcloud wegen dessen .htaccess-Dateien
                              2 verschiedene Domänennamen können es nicht sein? Falls du eine Domäne hast würden auch CNAME-Einträge gehen

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                ManfredHi @BananaJoe last edited by ManfredHi

                                @bananajoe sagte in Grafana von extern erreichbar machen:

                                es könnte sein das es nicht funktioniert mit Nextcloud wegen dessen .htaccess-Dateien
                                2 verschiedene Domänennamen können es nicht sein? Falls du eine Domäne hast würden auch CNAME-Einträge gehen

                                du meinst eine zweite dyndns adresse ? soll ich dazu einen eigene LXC-Container im Proxmox erstellen der nur für das reverse proxy ist oder gehen zwei adressen mit letsencrypt auch auf dem nextcloud-server ?

                                oder soll ich den zweiten dyndns gleich direkt am grafana-server einrichten? und dort dann auch letsenrypt installieren?

                                BananaJoe 1 Reply Last reply Reply Quote 0
                                • BananaJoe
                                  BananaJoe Most Active @ManfredHi last edited by

                                  @manfredhi also, zum Verständnis

                                  Ich habe eine VM (aka LXC-Container) mit dem Apache Reverse Proxy.
                                  Port 80 und 443 der FritzBox sind auf diesen weitergleitet.

                                  Darauf läuft bei mir eine Apache-vHost Konfiguration https://httpd.apache.org/docs/2.4/vhosts/examples.html
                                  Also jede Webseite hat bei mir eine eigene .vhost Datei unterhalb von

                                  /etc/apache2/sites-available/
                                  

                                  Die sehen immer so aus:

                                  <VirtualHost *:80>
                                                 ServerName zabbix.znil.net
                                                 ServerAdmin webmaster@zabbix.znil.net
                                                 RewriteEngine On
                                                 RewriteCond %{HTTPS} !=on
                                                 RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
                                  </VirtualHost>
                                   
                                  <VirtualHost *:443>
                                                 ServerName zabbix.znil.net
                                                 ServerAdmin webmaster@zabbix.znil.net
                                  
                                                 SSLEngine on
                                                 SSLCertificateFile /var/www/clients/client0/web7/ssl/zabbix.znil.net.crt
                                                 SSLCertificateKeyFile /var/www/clients/client0/web7/ssl/zabbix.znil.net.key
                                  
                                                 ProxyPass / http://192.168.200.15/
                                                 ProxyPassReverse / http://192.168.200.15/
                                  </VirtualHost>
                                  

                                  In jeder Datei steht ein anderer ServerName.
                                  Je nachdem mit welchen DNS-Namen ich ankomme, weis der Apache welche Datei/Konfiguration gilt.

                                  Nun habe ich bei IONOS ein paar Domänen, eine würde reichen, und habe für alles was ich hinter dem Proxy verstecken will jeweils eine Subdomäne erstellt:

                                  nextcloud.znilz.net
                                  seafile.znilz.net
                                  zabbix.znilz.net
                                  grafana.znilz.net
                                  ...
                                  

                                  Die DNS-Einträge dieser Subdomänen zeigen auf meine externe IP-Adresse der FritzBox.
                                  Also ein A-Record bei IPv4 und/oder ein AAAA-Record bei IPv6.
                                  Das geht natürlich nur wenn man entweder

                                  • eine feste IP-Adresse hat
                                  • oder den DNS-Eintrag bei jeder Änderung beim Hoster aktualisiert, z.B. per Skript.

                                  Die Alternative:

                                  • Du hast eine DynDNS-Eintrag. Ob nun xxx.dnshome.de oder cxsuahcuasbcuasbc.myfritz.net ist egal
                                  • Für die Subdomänen erstellst du statt eine A-Records einen CNAME-Eintrag der auf den DynDNS-Namen zeigt.
                                    Dann wird bei einem Aufruf zwar auf die DynDNS-Adresse umgeleitet, aber der DNS-Name bleibt erhalten und wird auch so dem Apache gemeldet.

                                  Eigentlich müsste es auch mit den Alias gehen, aber Nextcloud nutzt massiv die .htaccess-Dateien und ich vermute es liegt daran. Bei einer harmlosen Webseite funktioniert das jedenfalls

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    ManfredHi @BananaJoe last edited by ManfredHi

                                    @bananajoe

                                    ok, danke für die ausführliche Erklärung. Ich hab mir jetzt mal eine zweite adresse bei dnshome registriert. Dort habe ich die IP-Adresse der FritzBox als A-Record und als AAAA-Record eingetragen.
                                    die bisherige: xxxxx.dnshome.de
                                    die neue: xxxxx.dnshome.at
                                    bei beiden geht der ping nun auf die externe IP-Adresse meiner FritzBox (hat ne fixe IP)

                                    Den Rest muss ich mir morgen bzw. am Wochenende dann mal genau anschauen, was du da geschrieben hast. Mir ist das mit den .vhost Dateien nicht klar. Bisher hatte ich immer .conf Dateien. Heißen diese nun z.B.

                                    /etc/apache2/sites-available/nextcloud.vhost
                                    /etc/apache2/sites-available/grafana.vhost
                                    

                                    die ionos-Domänen brauch ich dann ja nicht oder?

                                    Danke vorerst mal für Deine Hilfe. Werd mich dann wieder melden wenn ich wo nicht weiterkomme.

                                    Ergänzung:
                                    Hab gerade gesehen, dass ich ja eh einen IONOS-Account mit einer Domain habe. Habe dort jetzt A-Records und AAAA-Records eingetragen für nextcloud und grafana. Diese zeigen nun auf die externe IP-meiner FritzBox.

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @ManfredHi last edited by

                                      @manfredhi

                                      und das hier bitte auch lesen
                                      https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/
                                      trotz anmeldung ist deine installation angreifbar
                                      daher dafür sorgen, das man vom grafana server nicht weiter ins netz kommt und diesen rechner am besten über firewall regeln abschotten.
                                      möglichst alle komfort tools zur rechner und netzwerk analyse entfernen.
                                      daher bietet sich da immer auch ein docker container an, da das im image enthaltene betriebssystem so minimal ist, das gerade zum betreiben der applikation ausreicht.
                                      falls da mal ein ungebetener gast drin ist, kommt er nicht mehr weiter

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        ManfredHi @OliverIO last edited by

                                        @oliverio sagte in Grafana von extern erreichbar machen:

                                        daher bietet sich da immer auch ein docker container an, da das im image enthaltene betriebssystem so minimal ist, das gerade zum betreiben der applikation ausreicht.
                                        falls da mal ein ungebetener gast drin ist, kommt er nicht mehr weiter

                                        meinst du ich soll unter proxmox eine vm mit einem docker container einrichten und darin grafana installieren? wo dann den reverse proxy? hab ich dann zugriff vom internen netz so wie bisher oder funktioniert dann da auch etwas nicht mehr?

                                        sorry, aber momentan versteh ich bei dem ganzen nur bahnhof.

                                        OliverIO 1 Reply Last reply Reply Quote 0
                                        • OliverIO
                                          OliverIO @ManfredHi last edited by

                                          @manfredhi
                                          Ja, aber wenn du sonst keine Anwendung für docker hast, reicht auch nur die vm. Dann aber wirklich nur eine minimalinstallation
                                          Und ggfs unnötige Tools entfernen.
                                          Docker hat halt den Vorteil, das man dort unabhängig von ssh eine console öffnen kann. Gegenüber ssh ist der Vorteil das man ssh auch aus dem Container heraus nicht nutzen kann.

                                          Hier mal eine Meinung dazu aus dem Internet.
                                          Alpine kommt mittlerweile sehr oft in den docker Container vor, kann aber auch direkt installiert werden. Hat glaube ich nur 85MB. Super minimal. Alles was man benötigt muss dazu installiert werden.

                                          As of my last knowledge update in September 2021, there are several Linux distributions known for their focus on security and suitability for web servers. Here are some popular hardened Linux distributions that are often recommended for web servers with a high priority on security:

                                          Qubes OS: While not a typical choice for web servers, Qubes OS is a security-focused operating system that uses virtualization to compartmentalize applications. This can provide a high level of security, but it may not be as straightforward to set up and maintain as other options.
                                          Alpine Linux: Alpine Linux is known for its small size, simplicity, and security focus. It is commonly used in containerized environments, making it a good choice for hosting web applications in lightweight, secure containers.
                                          OpenBSD: OpenBSD is a Unix-like operating system known for its security features and proactive approach to security auditing. While it may not be as widely used as some other Linux distributions, it has a strong reputation for security.
                                          Hardened Gentoo: Gentoo Linux is a source-based distribution that allows for a high degree of customization. Hardened Gentoo includes additional security features and hardening options that can help improve the security of the system.
                                          Tails: Tails is a privacy-focused Linux distribution that is designed to be booted as a live system from a USB stick. While it is not typically used for web servers, it can be a good choice for accessing the web anonymously and securely.
                                          It's important to note that the best Linux distribution for a web server with a high priority on security can depend on various factors, including your specific security requirements, familiarity with the distribution, and the level of support available. It's a good idea to thoroughly research and test any distribution before deploying it in a production environment. Additionally, staying up to date with the latest security patches and best practices is crucial for maintaining a secure web server.

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          885
                                          Online

                                          31.6k
                                          Users

                                          79.5k
                                          Topics

                                          1.3m
                                          Posts

                                          7
                                          19
                                          1030
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo