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 @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

                                  498
                                  Online

                                  31.6k
                                  Users

                                  79.5k
                                  Topics

                                  1.3m
                                  Posts

                                  7
                                  19
                                  1029
                                  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