Icinga

Installation des Icinga-Web Frontend

Einleitung

Das neue Icinga-Web wird aktuell sehr stark weiterentwickelt, sodass sich diese Dokumentation unter Umständen noch ändern kann/wird. Falls Sie eine detaillierte Installationsanleitung benötigen, konsultieren Sie bitte doc/INSTALL aus dem Source-Paket. Mehr Informationen über die gesamte Architektur können Sie auf unserer Webseite nachlesen: http://www.icinga.org/architecture/ Falls Sie mehr über das Icinga-Web-Development und die Modularchitektur wissen wollen, verfolgen Sie bitte stetig aktualisierte Einträge im Development-Wiki von Icinga-Web: Icinga-Wiki

Diese Installationsanleitung beschreibt die Installation von Icinga-Web mit MySQL als verwendeter Datenbank, weitere unterstütze Datenbanken sind Oracle und PostgreSQL..

  1. Voraussetzungen

    Die Pakete mysql und php5 sind installiert (mit PEAR und CLI), Icinga samt IDOUtils läuft, dann ab zu 2., ansonsten bitte:

    Ubuntu / Debian

     #> apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-pdo php5-ldap php5-gd php5-mysql
    [Anmerkung] Anmerkung

    Für Ubuntu gibt es kein php5-pdo-Paket, die benötigten PDO-Extensions sind in den Paketen php5 und php5-mysql enthalten!

    Fedora / RHEL / CentOS

    Stellen Sie sicher, dass Sie ein Repository bzw. Pakete für PHP 5.2.3 und PCRE 7.6 haben - RHEL/CentOS enthalten bisher lediglich PHP 5.1.6 und PCRE 6.6.

     #> yum install php php-cli php-pear php-xmlrpc php-xsl php-pdo php-ldap php-gd php-mysql
    [Anmerkung] Anmerkung

    Aktuelle Pakete für PHP und PRCE finden Sie beispielsweise unter: Les RPM de Remi oder http://www.jasonlitka.com/category/yum-repo-news/

    OpenSuSE

    Benutzen Sie yast, um die Pakete "php5", "php5-pear", "php5-xmlrpc", "php5-xsl", "php5-<rdbm>", "php5-soap", "php5-gettext", "php5-pdo", "php5-ldap", "php5-gd" und "apache2-mod_php5" zu installieren. Die CLI ist im php5-Paket enthalten.

    [Anmerkung] Anmerkung

    Zumindest bei SLES10 SP2 fehlt die Funktion hash_hmac.

    Die Installation von Icinga mit den IDOUtil ist in der Icinga-Schnellstartanleitung bescrieben

  2. Die Installation

    Laden Sie das Archiv herunter von http://sourceforge.net/projects/icinga/files/ oder klonen Sie von icinga-web.git, um mit der aktuellsten Version zu arbeiten:

     #> git clone git://git.icinga.org/icinga-web.git

    Extrahieren Sie das Archiv (tarball) wie folgt:

     #> tar xzvf icinga-web-1.5.0.tar.gz

    Wechseln Sie in das Verzeichnis:

     #> cd icinga-web-1.5.0

    Icinga-Web stellt verschiedene configure Optionen zur Verfügung z.B.

     #> ./configure
                            --prefix=/usr/local/icinga-web
                            --with-web-user=www-data
                            --with-web-group=www-data
                            --with-web-path=/icinga-web
                            --with-web-apache-path=/etc/apache2/conf.d
                            --with-db-type=mysql
                            --with-db-host=localhost
                            --with-db-port=3306
                            --with-db-name=icinga_web
                            --with-db-user=icinga_web
                            --with-db-pass=icinga_web
                            --with-conf-folder=etc/conf.d
                            --with-log-folder=log
                            --with-api-subtype=TYPE DB driver or network connection
                            --with-api-host=HOST Host to connect (DB or other) (default localhost)
                            --with-api-port=PORT Port for connection (default 3306)
                            --with-api-socket=PATH Path to socket (default none)
    [Anmerkung] Anmerkung

    Bitte beachten Sie, dass Sie hier die Icinga-Web-Datenbank konfigurieren, und nicht die Icinga-IDOUtils-Datenbank! User- und Gruppenname des Web-Prozesses sind abhängig von der verwendeten Distribution.

    Alle Konfigurationsmöglichkeiten sehen Sie mit:

     #> ./configure --help

    Ohne weitere Optionen wird das Icinga-Webinterface mit:

     #> ./configure
     #> make install

    unter /usr/local/icinga-web installiert.

    Installation der neuen Apache Konfiguration

    #> make install-apache-config

    Wenn Sie das nicht möchten, können Sie das bisherige Verfahren nutzen, durch die Eingabe von:

    #> make install-javascript

    Dies installiert die bisherigen Symlinks.

    Erzeugen des Installationsberichtes:

    #> make install-done
    
    Installation of icinga-web succeeded.
    Please check the new Apache2 configuration (etc/apache2/icinga-web.conf).

    Passwort zurücksetzen:

    #> make icinga-reset-password

    Setzt das Passwort für jeden Account auf icinga-web zurück.

  3. PHP-Abhängigkeiten

    Bitte prüfen Sie die PHP-Abhängigkeiten mit:

     #> make testdeps

    Alle "require"-Tests sollten erfolgreich sein. Eventuell müssen Sie die php.ini anpassen:

    Die "magic_quote_gpc" in der Apache- und der CLI-php.ini auf "Off" setzen! Evtl. müssen Sie auch "safe_mode" auf "off" setzen (php< 5.3.0). Bitte beachten Sie, dass die Pfade von der Distribution abhängig sind.

     #> vi /etc/php5/apache/php.ini
       magic_quotes_gpc = off
       safe_mode = off
     #> vi /etc/php5/cli/php.ini
       magic_quotes_gpc = off
    [Anmerkung] Anmerkung

    Beide Dateien müssen vorhanden sein, sonst erhalten Sie eine Agavi-Meldung, weil der Default von magic_quotes_gpc "ON" ist.

  4. Datenbank-Installation

    Icinga-Web benötigt eine eigene Datenbank z.B. icinga_web. Sie können die Datenbank von IDOUtils mitverwenden, dies wird allerdings nicht empfohlen, um bei Upgrades keine Probleme zu haben.

    Anlegen des Datenbankbenutzers:

    Der Benutzer muss mindestens diese Privilegien haben: SELECT, UPDATE, INSERT, DELETE.

     SQL> GRANT USAGE ON *.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web';
    
     SQL> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost';

    MySQL

     #> mysql -u root -p
    
     mysql> GRANT USAGE ON icinga_web.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
    
            GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost';
    
            quit

    Anlegen der Datenbank

    Icinga-Web bringt Doctrine mit, womit in Zukunft die Datenbank verwaltet wird. Mittels 'make' kann diese initialisiert oder gelöscht werden.

     #> make db-initialize      - legt eine Icinga Web Datenbank an und füllt diese mit initialen Werten
     #> make db-drop            - löscht die komplette Datenbank, inklusive Securityabfrage um ungewolltes Löschen zu verhindern
     #> make db-doc2sql         - falls Sie SQL scripts beispielsweise für Packaging oder manuelles Setup benötigen, können Sie diese Option verwenden um die SQL scripts aus Doctrine zu extrahieren
    

    Um die Datenbankanlege-Befehle nutzen zu können, müssen Sie dem Benutzer der diese DB Befehle ausführen soll, auch die entsprechenden Privilegien zuordnen. Falls derjenige Benutzer, der für das Icinga Web in configure vorgesehen wurde, zu wenig Berechtigungen hat, gibt es in 'make' eine Abfrage, ob Sie einen anderen Benutzer mit mehr Privilegien verwenden wollen. Falls dies nicht funktioniert, sollten sie etc/build.properties editieren und einen root Benutzer einfuegen

    Das Installieren der Datenbank funktioniert mittels:

     #> make db-initialize

    Manuelles Anlegen der Datenbank

    Sofern Sie die Datenbank manuell installieren wollen z.B. für Package building, können Sie mit diesem Befehl die SQL Scripts extrahieren

     #> make db-doc2sql

    und dann diese in die frisch angelegte Datenbank importieren.

  5. Icinga-Web Konfiguration

    Im Normalfall können Sie die Datenbankeinstellungen während configure vornehmen. Sollten Sie diese allerdings anpassen wollen oder nachsehen wollen im Fehlerfall, öffnen Sie folgende Datei mit einem Editor Ihrer Wahl.

     #> vi app/config/databases.xml
    [Anmerkung] Anmerkung

    Optional: Ihre spezifischen Icinga Datenbankeinstellungen können Sie vornehmen in etc/conf.d/database.xml (oder dem web-conf-folder Ziel). Es gibts zwei Datenbanken: icinga_web (welche für die interne Verwaltung von icinga_web verwendet wird) und icinga, welche auf die Datenbank zeigt, in die ido2db schreibt. Diese Informationen bleiben während eines Update-Prozesses erhalten.

        <databases default="icinga_web">
                            <database name="icinga_web" class="AgaviDoctrineDatabase">
    
                                    <!--
                                            Doctrine dsn strings:
    
                                            http://www.doctrine-project.org/documentation/manual/1_1/en/introduction-to-connections
                                    -->
                                    <ae:parameter name="dsn">mysql://icinga_web:icinga_web@127.0.0.1:3306/icinga_web</ae:parameter>
    
                                    <!-- Generic credentials  -->
                                    <!-- <ae:parameter name="username">icinga_web</ae:parameter> -->
                                    <!-- <ae:parameter name="password">icinga_web</ae:parameter> -->
    
                                    <!-- DB encoding type -->
                                    <ae:parameter name="charset">utf8</ae:parameter>
    
                                    <!--
                                            Doctrine_Manager configuration
                                    -->
                                    <ae:parameter name="manager_attributes">
                                            <!-- This allows lazy loading of the models -->
                                            <ae:parameter name="Doctrine_Core::ATTR_MODEL_LOADING">CONSERVATIVE</ae:parameter>
                                    </ae:parameter>
    
                                    <!-- The path to our models -->
                                    <ae:parameter name="load_models">%core.module_dir%/AppKit/lib/database/models/generated</ae:parameter>
                                    <ae:parameter name="models_directory">%core.module_dir%/AppKit/lib/database/models</ae:parameter>
    
                            </database>
    
                            <-- Die Icinga Datenbanek für ido2db -->
                            <database name="icinga" class="AgaviDoctrineDatabase">
    
                                    <!--
                                            Doctrine dsn strings:
    
                                            http://www.doctrine-project.org/documentation/manual/1_1/en/introduction-to-connections
                                    -->
                                    <ae:parameter name="dsn">mysql://icinga:icinga@127.0.0.1:3306/icinga</ae:parameter>
    
                                    <!-- Generic credentials  -->
                                    <!-- <ae:parameter name="username">icinga</ae:parameter> -->
                                    <!-- <ae:parameter name="password">icinga</ae:parameter> -->
    
                                    <!-- DB encoding type -->
                                    <ae:parameter name="charset">utf8</ae:parameter>
    
                                    <!--
                                            Doctrine_Manager configuration
                                    -->
                                    <ae:parameter name="manager_attributes">
                                            <!-- This allows lazy loading of the models -->
                                            <ae:parameter name="Doctrine_Core::ATTR_MODEL_LOADING">CONSERVATIVE</ae:parameter>
                                    </ae:parameter>
    
                                    <!-- The path to our models -->
                                    <ae:parameter name="load_models">%core.module_dir%/Api/lib/database/models/generated</ae:parameter>
                                    <ae:parameter name="models_directory">%core.module_dir%/Api/lib/database/models</ae:parameter>
    
                            </database>
                        </databases>
                

    In the access.xml you can specify the locations of your command pipe and the access credentials and method (ssh or via local console). Also you define here, which icinga instance is mapped to which host.

            <!-- Map your instances to hosts here -->
            <instances>
                <instance name="default">localhost</instance>
            </instances>
            <!-- default location of the icinga pipe -->
            <defaults>
                <access>
                    <write>
                        <files>
                            <resource name="icinga_pipe">/usr/local/icinga/var/rw/icinga.cmd</resource>
                    </files>
                </write>
            </defaults>
    
            <!-- Hosts that can be accessed via the console interface -->
            <hosts>
                <host name="localhost">
                    <type>local</type>
                    <access useDefaults="true">
    
                    </access>
                </host>
    
                <!--  Example for ssh connection with user/password auth -->
                <host name="remot_host">
                    <type>ssh</type>
                    <ssh-config>
                        <host>localhost</host>
                        <port>22</port>
                        <auth>
                            <type>password</type>
                            <user>john</user>
                            <password>doe</password>
                        </auth>
                    </ssh-config>
    
                    <access useDefaults="true" />
    
                </host>
          </hosts>
          
    [Anmerkung] Anmerkung

    Nachdem Sie Änderungen an diesen Konfigurationen vorgenommen haben, müssen Sie den Cache leeren!

     #> rm -rf app/cache/config/*.php

    oder /path/to/clearcache.sh

     #> /usr/local/icinga-web/bin/clearcache.sh
  6. Apache-Konfiguration

    Voraussetzungen:

    • mod_rewrite, vielleicht müssen Sie einen Verweis erstellen:

       #> ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

      Bei OpenSuSE und SLES können Sie das Modul mit "a2enmod rewrite" aktivieren. Falls das nicht funktioniert, gibt es in der Datei /etc/sysconfig/apache2 die Zeile "APACHE_MODULES=...", der das Modul "rewrite" hinzugefügt werden muss.

      Bei Debian und Ubuntu können Sie das Modul ebenfalls mit "a2enmod rewrite" aktivieren.

      Bei RHEL/Fedora/CentOS ist die Unterstützung bereits im httpd enthalten.

    • Über htaccess aktivierte Einstellungen

      Editieren Sie die .htaccess unter /usr/local/icinga-web/pub und ändern Sie die RewriteBase (ab Zeile 14):

       DirectoryIndex index.php
      
       Options -MultiViews -Indexes +FollowSymLinks
       Order allow,deny
       Allow from all
      
       <IfModule mod_rewrite.c>
          RewriteEngine On
      
          # This depends on your path
          # on independent hosts the base is '/'
          RewriteBase /icinga-web/
      
              # If the requested URL does not exist (it's likely an agavi route),
              # pass it as path info to index.php, the Agavi dispatch script.
              RewriteRule ^$ index.php?/ [QSA,L]
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteRule (.*) index.php?/$1 [QSA,L]
       </IfModule>
      
       <IfModule mod_deflate.c>
              SetOutputFilter DEFLATE
      
              BrowserMatch ^Mozilla/4 gzip-only-text/html
              BrowserMatch ^Mozilla/4\.0[678] no-gzip
      
              BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
              BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
      
              Header append Vary User-Agent env=!dont-vary
       </IfModule>
      
       <IfDefine APACHE2>
              AcceptPathInf  On
       </IfDefine>
      
       #<IfModule mod_auth_basic.c>
       #       AuthType Basic
       #       AuthName "My http basic auth realm"
       #       AuthUserFile /path/to/my/htusers
       #       require valid-user
       #</IfModule>

    Bitte wechseln Sie in das Konfigurationsverzeichnis Ihres Webservers. Überprüfen Sie, ob die, mit make install-apache-config erstellte Konfiguration Ihren Anforderungen entspricht, oder erstellen Sie noch einen neuen Alias im Konfigurationsverzeichnis des Webservers (hier in der icinga-web.conf):

    #> vi /etc/apache2/conf.d/icinga-web.conf
    #>
    #> icinga-web apache configuration
    #> - Enable all options .htaccess
    #> - Add extjs library to alias
    #>
    
    Alias /icinga-web/js/ext3 /usr/local/icinga-web/lib/ext3
    Alias /icinga-web /usr/local/icinga-web/pub
    <Directory /usr/local/icinga-web/lib/ext3>
        Order allow,deny
        Allow from all
    </Directory>
       Alias /icinga-web /usr/local/icinga-web/pub
      <Directory /usr/local/icinga-web/pub>
            AllowOverride All
      </Directory>

    Leeren Sie den Cache:

     #> rm /usr/local/icinga-web/app/cache/config/*.php

    oder /path/to/clearcache.sh

    #> /usr/local/icinga-web/bin/clearcache.sh

    und starten Sie den Webserver neu:

     #> service apache2 restart

    bzw.

     #> /etc/init.d/apache2 restart

    oder

     #> /etc/init.d/httpd restart
  7. Testen

    [Anmerkung] Anmerkung

    Bitte achten Sie darauf, dass Ihre Datenbank, Apache, IDOUtils und Icinga gestartet sind!

    Öffnen Sie im Webbrowser http://localhost/icinga-web. Überprüfen Sie, ob das Webinterface ohne Fehler "exceptions" startet, und loggen Sie sich mit dem User 'root' und dem Passwort 'password' ein.

    Viel Spaß :-)

  8. Test & Fehler?

    Diese Sammlung beinhaltet einige nützliche Informationen, wie Sie Fehler finden und lösen können. Ebenso wird darauf hingewiesen, welche Informationen Sie im Fehlerfall angeben sollen, wenn Sie eine Frage auf den Mailinglisten oder auf http://www.icinga-portal.org stellen.

    * Geben Sie immer die verwendete Version an - tar.gz oder GIT?

    * Browser, Version

    * Falls das Problem mit der Datenquelle besteht: Ausführliche Informationen zu API, IDOUtils, Core (Version, Debug Logs).

    Wo können Sie nachsehen?

    * Apache Error Logs, PHP Errors, PHP Dateien können nicht gefunden werden

    * /var/log/messages, /path/to/icinga/var/icinga.log

    Änderungen an der Icinga-Web-Konfiguration (z.B. API/IDOUtils-Einstellungen geändert) werden nicht aktualisiert?

    * Löschen Sie den Konfigurationscache in app/cache/config/*.php

    /usr/local/icinga-web/bin/clearcache.sh

    Icinga Web zeigt eine leere Seite?

    * Apache Errors Logs => mod_rewrite enabled, PHP-Abhängigkeiten ok? 'make testdeps'. Bei Debian gibt es u.a. die folgende Fehlermeldung: ".htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration"

    Icinga Web - Login erfolgt- aber die Seite lädt und lädt...

    * Request failed, Ressource /icinga-web/appkit/ext/application State could not be loaded - is the url correct? => mod_rewrite enabled ?

    * .htaccess/VHost-Konfiguration => Pfade nicht korrekt? Icinga-Web zeigt keine Daten?

    * Datenbankzugriff verweigert => Überprüfen Sie, ob die Datenbankeinstellungen für Icinga-Web korrekt sind.

    IDOUtils Datenbank wird nicht gefüllt?

    * "Error writing to data sink" => Überprüfen Sie die IDOUtils (ido2db runs 2x - ok?), ido2db.cfg debug_level=-1, debug_verbosity=2, restarten Sie IDOUtils und suchen Sie Fehler in ido2db.debug

    * Keine Daten vorhanden => Überprüfen Sie icinga.log, ob IDOMOD zu Beginn geladen wird. Falls nicht, enablen Sie das Event Broker Modul in icinga.cfg so wie im Icinga Core im IDOUtils Quickstart Guide beschrieben.

    * IDOUtils DB-Schema ist die aktuellste Version? => Falls nicht, überprüfen Sie mögliche Upgrades anhand der Docs dafür.

    * Sockets sind korrekt definiert? => Unix oder TCP Socket, TCP wahlweise mit oder ohne SSL

    Testing the Web (stellen Sie sicher, dass PHPUnit installiert ist):

     $> make test
    [Anmerkung] Anmerkung

    Falls Sie Ihren root- Benutzer zum Testen benutzen, dann stellen Sie vorher sicher, dass für den angegebenen Web-Benutzer eine gültige Shell eingetragen ist. Anderenfalls werden verschiedene Tests fehlschlagen. Abhängig von der verwendeten Icinga-Web-Version kann es sein, dass die Berechtigungen für die Dateien in /usr/local/icinga-web/log falsch gesetzt sind, so dass Icinga-Web mit der Meldung "Loading" stehenbleibt.

    [Anmerkung] Anmerkung

    Nicht vergessen - Ändern von PHP-Einstellungen in der php.ini erfordert einen Apache reload/restart!

    * PHP Fatal error: Allowed memory size of ... bytes exhausted (tried to allocate ... bytes) => Überprüfen Sie Ihre php.ini (apache2 und cli) und setzen Sie den Wert memory_limit auf 128M oder höher.

    * PHP Fatal error: Uncaught exception 'AgaviCacheException' with message 'Failed to write cache file /usr/local/icinga-web/app/cache/config/config_handlers.xml_development__xxxx.php" generated from configuration file /usr/local/icinga-web/app/config/config_handlers.xml". Please make sure you have set correct write permissions for directory /usr/local/icinga-web/app/cache.... = > Setzen von safe_mode = off in /etc/php5/apache/php.ini.

    * [PHP Error] strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead [line 1548 of /home/xxx/icinga/icinga-web/lib/doctrine/lib/Doctrine/Record.php] = > Sie muessen date.timezone in der php.ini definieren.

    * -> 500 internal server error! Uncaught exception AgaviException thrown! Your default timezone is 'System/Localtime', ... = > Sie muessen date.timezone in der php.ini definieren.

    * Keine Verbindung zur API. The API Connector returned the following message: getConnection failed: Database connection failed: SQLSTATE[28000] [1045] Access denied for user 'icinga'@'localhost' (using password: YES))

    => Überprüfen Sie Ihre IDOUtils DB-Referenzen in der ido2db.cfg und fügen Sie diese in Ihre Icinga-Web- Konfiguration als bevorzugte DB- Referenzen für Ihre IDO hinzu (siehe Konfiguration der Icinga-API). Ab Icinga-Web1.0.3 können die Werte direkt während des configure gesetzt werden.

    * touch: cannot touch `/usr/local/icinga-web/.../cache/testfile.txt': Permission denied

    => Die Konfiguration in den xml-Dateien wird vom Framework ge-'pre-cached'. Daher müssen spezielle Berechtigungen für die Caching-Verzeichnisse gesetzt werden. Durch die Ausführung von icingaWebTesting.php in etc/tests können die richtigen Berechtigungen automatisch gesetzt werden.

    * PHP Fatal error: Uncaught exception '...' with message 'Couldn't locate driver named mysql' => Stellen Sie sicher, dass php pdo installiert und geladen ist, auch wenn testdeps sagt, dass alles in Ordnung ist.

    * Das Login wird nicht angezeigt => Aktivieren Sie short_open_tag in Ihrer php.ini

    => Editieren Sie open_basedir in Ihrer php.ini und fügen Sie die Installationsverzeichnisse von Icinga-Web und von Icinga-API (z.B. /usr/local/icinga/share/) hinzu.

    * Leeres Icinga-Web? => Wenn mod_rewrite aktiviert ist und 'index.php' erscheint in der angefragten URL, dann funktioniert das Portal nicht. Entfernen Sie index.php aus Ihrer URL und alles sollte funktionieren

    * Die Ergebnisse in den Status Cronks passen nicht zu Ihrer Konfiguration? => Überprüfen Sie in Ihrem Backend, d.h. IDOUtils DB, welche Werte für die Status-Tabellen selektiert werden.

    * Keine Daten in den Cronks ? => Überprüfen Sie ob alle Berechtigungen korrekt gesetzt sind, insbesondere von log/. Weiters können Sie die angezeigten Daten in Ihrem Browser dbuggen. Ausführliche Informationen dazu finden Sie im Icinga Wiki https://wiki.icinga.org/display/Dev/Icinga+Web+Testing

    Sofern Sie Fragen oder Updates haben, zögern Sie bitte nicht, uns diese mitzuteilen! :-)