Keywords: Supervision, Icinga, Nagios, Linux

6.5. Konfigurationsübersicht Icinga Web
Zurück | Kapitel 6. Die Benutzeroberflächen | Weiter

## 6.5. Konfigurationsübersicht Icinga Web

### 6.5.1. Wo sind meine Konfigurationsdateien?

Mit Icinga 1.7 hat sich der Platz von einigen Konfigurationsdateien erneut geändert, um die Pflege für Benutzer, Packetierer und Entwickler gleichermaßen zu vereinfachen. Die von Icinga Web bereitgestellten Konfigurationsdateien stehen weiterhin unter `app/config`, aber Site-spezifische, die vorher im gleichen Ordner zu finden waren, sind nun in den Web-Konfigurationsordner gewandert (per Default `etc/conf.d`), der bei Aktualisierungen nicht überschrieben wird. Der Ordner kann während der Installation mit Hilfe von --with-conf-dir (bzw. --with-conf-folder Icinga <= 1.6.x) geändert werden. Bitte beachten Sie, dass sich - bedingt durch den neuen Ablageort - der Dateiname geändert hat. Die Kennzeichnung "site." ist entfallen, so dass die Namen nun identisch zu denen in `app/config` sind.

Icinga Web arbeitet mit Modulen und jedes Modul hat seine eigene Konfiguration. Das gilt ebenfalls für die Libraries. Wenn Sie weitere Informationen zu den Cronk-Libraries benötigen, schauen Sie in `app/modules/Cronks/lib` (für js in `app/modules/Cronks/lib/js`).

Ein Modul von Icinga Web ist wie folgt aufgebaut:

     tree -d -L 1 app/modules/AppKit/
     app/modules/AppKit/
     |-- actions
     |-- config
     |-- lib
     |-- models
     |-- templates
     |-- validate
     |-- views

### 6.5.2. Index

Tabelle 6.1. Konfigurationsdateien
Dateiname | Ablageort | Bemerkung
access.xml | app/modules/Api/config/ | Controls commands and where Icinga commands goes to
auth.xml | app/modules/AppKit/config/ | Authentication configuration
cronks.xml | app/modules/Cronks/config/ | System cronk and categories which are not changeable by users
databases.xml | app/config/ | Upgrade safe database connections
factories.xml | app/config/ | Agavi system config, storage and session configuration
icinga.xml | app/config/ | Icinga settings, e.g. version and prefixes / version name
logging.xml | app/config/ | Disable log levels or write new logfiles
module_appkit.xml | app/modules/AppKit/config/ | Overwrite settings for AppKit module (ajax timeout, SQL query logging)
module_cronks.xml | app/modules/Cronks/config/ | Overwrite settings for Cronks module
module_reporting.xml | app/modules/Reporting/config/ | Overwrite settings for Reporting (multiple JasperServer ...)
module_web.xml | app/modules/Web/config/ | Overwrite setting for Web module
settings.xml | app/config/ | Change agavi core settings (Title, availability, debug-mode, ...)
sla.xml | app/modules/Api/config/ | SLA settings for the provider (Only used by tackle view)
exclude_customvars.xml | app/modules/Api/config/ | Exclude sensitive customvars from API queries
translation.xml | app/config/ | Default language, date and time formats and settings
module.xml | app/modules/Appkit/config/ | Overwrite user preferences using userpreferences.xml (in etc/conf.d)

- Globale Konfiguration

  - access.xml

  - databases.xml

  - factories.xml

    - Session Cookie Lifetime

  - logging.xml

  - settings.xml

  - translation.xml

  - views.xml

- Default-Zeitzone ändern

- Benutzervorgaben ändern

- Module-Konfiguration

- Authentifizierung

- Benutzerdefinierte Konfiguration

### 6.5.3. Globale Konfiguration

app/config

Hier finden Sie die globalen Konfigurationsdateien für z.B. die Web-Session, den Icinga-Web-Pfad und die Datenbankinformationen.

Die wichtigsten Dateien:

- access.xml

  Die Konfigurationsdatei `access.xml` hat zwei Hauptzwecke:

  - definieren von Hosts, auf die von Icinga-Web (via System oder ssh) zugegriffen werden kann und definieren von Dateien, auf die lesend/schreibend zugegriffen werden kann bzw. auszuführenden Programmen

  - zuordnen von Icinga-Instanzen zu diesen Hosts

  Die `access.xml`-Konfiguration wird von Icinga-Webs Console-Handler-Implementation genutzt und bietet zusätzliche Sicherheit, weil sie willkürliche Ausführung/Manipulation von Dateien in letzter Instanz verhindert.

  Abschnitte

  - Instanzen

    Das Einrichten von Instanzen erfolgt im <instances>-Abschnitt:

    Beispiel: Zuordnen der Instanz 'default' zum Host 'localhost'

        <!-- Map your instances to hosts here -->
         <instances>
            <instance name="default">localhost</instance>
         </instances>

    Zulässige Unterelemente

    - instance: Nur "instance" ist als Unterelement zulässig. Dieser Knoten ordnet einem Host (s.u.) einen Instanznamen zu, der durch den Wert des Attributs "name" festgelegt ist:

           <instance name="%icinga instance name%">%host name%</instance>

  - Standardwerte

    Der "default"-Abschnitt definiert Standardwerte für Host-Einstellungen, z.B. auf welche Dateien schreibend/lesend zugegriffen werden bzw. welche ausgeführt werden können. Auch der Standard-Host, der von Icinga-Web benutzt werden soll, wird hier definiert.

    Zulässige Unterelemente

    - defaultHost: definiert den Hos, der für Aktionen benutzt wird, wenn kein Host angegeben ist. Momentan (v1.6) ist dies nur für einige Module wichtig und es betrifft nicht Icinga-Webs Standardleistungsumfang.

           <defaultHost>localhost</defaultHost>

      Der Host muss im hosts-Abschnitt definiert werden.

    - access: Icinga-Web (und Module, wenn sie korrekt geschrieben sind) greifen nicht direkt auf System-Ressourcen zu, sondern über ein Console-Interface, das sich um die Sicherheit kümmert. Im Zugriffsabschnitt definieren Sie, welche System-Ressources von dieser Behandlungsroutine aufgerufen werden dürfen und wo sie sich befinden. Außerdem geben Sie System-Ressourcen einen Ressourcen-Namen. Der Console-Handler bspw. greift auf die Icinga-Pipe nur über den Ressource-Namen "icinga_pipe" zu.

      Der Zugriffsabschnitt hat vier zulässige Unterelemente: 'readwrite', 'read', 'write' und 'execute', die die Zugriffsebene für darunterliegende Ressourcen definieren. Ressourcen selbst werden unter den Tags 'folders' oder 'files' definiert und mit 'resource' eingeschlossen: Das folgende Beispiel erlaubt Schreib-/Lesezugriff auf Icingas `objects`-Ordner. Schreiben, Lesen und Ausführen funktionieren analog, das 'readwrite'-Tag wird jeweils durch das entsprechende Tag ausgetauscht.

         <readwrite>
            <folders>
               <resource name="icinga_objects">/usr/local/icinga/etc/objects</resource>
            </folders>
            <files>
               <resource name="icinga_cfg">/usr/local/icinga/etc/icinga.cfg</resource>
            </files>
         </readwrite>

    Wie oben erwähnt ordnet jede Ressource ein Ressourcen-Symbol (Name) einem Pfad zu. Dies ist optional, wird aber empfohlen. Wenn ein Symbol mehrfach existiert, dann wird das letzte benutzt.

    | Anmerkung
    Eigene Default-Definitionen in Ihrem Konfigurationsordner If you override a custom section, like readwrite, all previously set definitions will be ignored and must be redefined if you want to use them. Das betrifft nicht Modul-KonfigurationenThis doesn't affect module configurations.

  - Hosts

    Im host-Abschnitt werden Zugriffsmethoden und Anmeldeinformation, aber auch spezifische Rechte für Hosts definiert.

    Zulässige Unterelemente:

    - host: definiert einen einzelnen Host und gibt ihm einen Namen, der benutzt werden kann, um auf diesen Host zu referenzieren (wie z.B. im "instance"-Abschnitt).

           <!-- Example for ssh connection with user/password auth -->
           <host name="vm_host1">
              <type>ssh</type>
              <ssh-config>
                 <host>localhost</host>
                 <port>22</port>
                 <auth>
                    <type>password</type>
                    <user>john_doe</user>
                    <password>foobar</password>
                 </auth>
              </ssh-config>

              <access useDefaults="true" />
           </host>

      Das 'host'-Tag hat eine Reihe von Unterelementen:

    - type: Entweder "local" oder "ssh". Definiert, ob Befehl direkt auf der Maschine ausgeführt werden, auf der Icinga-Web läuft, oder via ssh.

    - access: sh. den "access"-Abschnitt weiter oben. Zusätzlich kann 'useDefaults' gesetzt werden, um dem Command-Interface mitzuteilen, dass alle Standardzugriffsdefinitionen benutzt werden sollen (wenn sie nicht in diesem Abschnitt überschrieben werden).

    - ssh-config: (nur falls type:ssh) Dies legt fest, wie auf den Host per ssh zugegriffen werden soll. Es gibt drei Authentifizierungsmethoden für ssh: 'none', 'password' oder 'key', die im folgenden Abschnitt erläutert werden. Unabhängig davon, welche Methode Sie wählen, müssen die 'host'- und 'port'-Einträge für jeden Host gesetzt werden.

  - SSH-Config auth

    Dieser Abschnitt erklärt den Authentifizierungsblock der ssh-Konfigurationseinstellungen, die wir im vorigen Anschnitt angesprochen haben. Die Elemente unterhalb des 'auth'-Tags sind abhängig vom ausgewählten Authentifizierungstyp.

    - Auth type: none

      Dies teilt der Console-Verbindung mit, dass nur ein Benutzername für die Authentifizierung verwendet wird:

           <ssh-config>
              <host>localhost</host>
              <port>22</port>
              <auth>
                 <type>none</type>
                 <user>john_doe</user>
              </auth>
           </ssh-config>

      In diesem Beispiel wird nur der Benutzername 'john_doe' für die Authentifizierung geliefert. Dies kann sinnvoll sein, wenn Ihre Maschinen automatische Schlüssel-Authentifizierung benutzen.

    - Auth type: password

      Dies teilt der Console-Verbindung mit, dass Benutzername und Passwort für die Authentifizierung verwendet werden:

           <ssh-config>
              <host>localhost</host>
              <port>22</port>
              <auth>
                 <type>password</type>
                 <user>john_doe</user>
                 <password>foobar</password>
              </auth>
           </ssh-config>

      In diesem Beispiel werden nur der Benutzername 'john_doe' und das Passwort 'foobar' für die Authentifizierung verwendet.

    - Auth type: key

      | Wichtig
      Experimentell! Probieren Sie es aus und öffnen Sie ein Ticket, wenn Sie Probleme haben!

      Dies teilt der Console-Verbindung mit, eine Schlüsseldatei für die Authentifizierung zu benutzen, die optional mit einem Password geschützt ist

           <ssh-config>
              <host>localhost</host>
              <port>22</port>
              <auth>
                 <type>key</type>
                 <user>testuser</user>
                 <private-key>/usr/local/icinga-web/app/modules/Api/lib/.ssh/host1_rsa</private-key>
                 <password>secret123</password>
              </auth>
           </ssh-config>

      Hier wird der private Schlüssel benutzt, der im 'private-key'-Tag definiert wird. Sie sollten und müssen diesen Pfad nicht im host-Zugriffsabschnitt definieren!

- `databases.xml` - enthält die Verbindungseinstellungen für Ihre Icinga Web-Datenbank

  - Allgemeine Einstellungen

    Die folgenden Einstellungen gelten für jede in Icinga Web definierte Datenbank.

    Wenn Sie sich die Standarddefinition der icinga_web-Datenbank ansehen, dann finden Sie dort die meisten Einstellungen einer generischen Datenbankverbindung:

        <db:database name="icinga_web" class="AppKitDoctrineDatabase">
            <ae:parameter name="dsn">mysql://icinga_web:icinga_web@localhost:3306/icinga_web</ae:parameter>
            <ae:parameter name="charset">utf8</ae:parameter>
            <ae:parameter name="manager_attributes">
                <ae:parameter name="Doctrine_Core::ATTR_MODEL_LOADING">CONSERVATIVE</ae:parameter>
            </ae:parameter>

            <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>
            <ae:parameter name="date_format"><![CDATA[YYYY-MM-DD HH24:MI:SS]]></ae:parameter>

            <ae:parameter name="caching">
                <ae:parameter name="enabled">false</ae:parameter>
                <ae:parameter name="driver">apc</ae:parameter>
                <ae:parameter name="use_query_cache">true</ae:parameter>
                <ae:parameter name="use_result_cache">true</ae:parameter>
                <ae:parameter name="result_cache_lifespan">60</ae:parameter>
            </ae:parameter>

        </db:database>

    - Datenbank-Identifier

          <db:database name="%Database name%" class="%Handler%">
             ...
          </db:database>

      Mit dem db:database-Tag informieren Sie Icinga Web, dass es sich um eine Datenbankdefinition handelt. Dieses Tag muss zwei Attribute haben:

      - name: Der Name für Ihre Datenbank. Zu dieser Zeit (>= v1.5) ist 'icinga-web' für die interne Icinga-Web-Datenbank reserviert, die Benutzer- und Anmeldeinformationen, Persistenz-Einstellungen usw. enthält, und 'icinga' für die Datenbank, die von ido2db genutzt wird, um die Informationen von Icinga zu speichern.

      - class: Benutzen Sie immer "AppKitDoctrineDatabase", nur die 'icinga'-Datenbank erfordert 'IcingaDoctrineDatabase' (siehe unten)

    - dsn (Data Source Name):

      Definiert die Anmeldeinformationen, den Typ und Standort der Datenbank:

      Für MySQL, PostgreSQL und Oracle:

          <db:database ...>
              ...
              <ae:parameter name="dsn">%driver%://%username%:%password%@%host%:%port%/%database name%</ae:parameter>
              ...
          </db:database>

      Für sqlite3:

          <db:database ...>
              ...
              <ae:parameter name="dsn">sqlite:///%path to your db file%</ae:parameter>
              ...
          </db:database>

      | Anmerkung
      SQLite-Datenbanken müssen für den Webserver-Benutzern les- und beschreibbar sein, außerdem das Verzeichnis, in dem sich die Datei befindet.

      - %driver%: Das zu benutzende Datenbank-Backend

        - mysql: Eine MySQL-Datenbank

        - pgsql: Eine PostgreSQL-Datenbank

        - oracle: Eine Oracle-Datenbank, auf die über den oci8-Treiber zugegriffen wird

          Benutzen Sie nicht den PDO-Treiber, denn dieser ist weit von produktiver Nutzung entfernt.

        - icingaOracle: Eine spezielle Implementation, die genutzt werden muss, wenn eine Icinga-Datenbank verwendet wird (einige Tabellennamen sind unterschiedlich und die Längen von Bezeichnern muss automatisch berücksichtigt werden, um sicherzustellen, dass sich kein Entwickler während der Entwicklung umbringt).

      - %username%: Der Benutzername zur DB-Authentifizierung

      - %password%: Das Passwort zur DB-Authentifizierung

      - %host%: Der Host Ihres DB-Servers

      - %port%: Der Port Ihres DB-Servers

        - mysql-default: 3306

        - postgresql-default: 5432

        - oracle-default: 1521

      - %database name%: Der Name Ihrer Datenbank

    - charset

          <db:database ...>
              ...
              <ae:parameter name="charset">utf8</ae:parameter>
              ...
          </db:database>

      Im Allgemeinen sollte Ihr Datenbank-Zeichensatz utf8 sein.

    - manager_attributes, load_models, models_directory

          <db:database ...>
              ...
              <ae:parameter name="manager_attributes">
                  <ae:parameter name="Doctrine_Core::ATTR_MODEL_LOADING">CONSERVATIVE</ae:parameter>
              </ae:parameter>
              ...
          </db:database>

      Sie können beruhigt diesen Abschnitt ignorieren und ihn einfach kopieren. Er enthält lediglich Doctrine-spezifische Einstellungen (insbesondere wie Datenbankmodelle geladen werden und wo sie zu finden sind. Wenn Sie mehr wissen möchten, dann schauen Sie in die doctrine documentation).

    - date_formate

      Dies ist erforderlich, um sauber auf Oracle-Datenbanken zuzugreifen. Es setzt das für die Datenbank zu benutzende Datumsformat.

          <db:database ...>
              ...
              <ae:parameter name="date_format"><![CDATA[YYYY-MM-DD HH24:MI:SS]]></ae:parameter>
              ...
          </db:database>

    - Caching

          <db:database ...>
              ...
              <ae:parameter name="caching">
                  <ae:parameter name="enabled">false</ae:parameter>
                  <ae:parameter name="driver">apc</ae:parameter>
                  <ae:parameter name="use_query_cache">true</ae:parameter>
                  <ae:parameter name="use_result_cache">true</ae:parameter>
                  <ae:parameter name="result_cache_lifespan">60</ae:parameter>
              </ae:parameter>
          <db:database>

      Wenn Sie apc oder memcache benutzen, dann können Sie entweder Datenbankabfragen oder -ergebnisse zwischenspeichern. Während das Zwischenspeichern von Abfragen eigentlich nie eine schlechte Sache ist (solange Sie nicht entwickeln), ist das Zwischenspeichern von Ergebnissen ein ziemlich spezieller Fall - denn Sie könnten veraltete Daten aus Ihrer Datenbank bekommen. Also benutzen Sie es bitte nie für Ihre Icinga-Datenbank!

      - enabled: Caching für diese Datenbank ein- oder ausschalten

      - driver: apc oder memcache, wobei memcache experimentell ist (also probieren Sie es aus !)

      - use_query_cache: Abfragen zwischenspeichern (nur die SQL-Abfragen, nicht die Ergebnisse)

      - use_result_cache: Datenbankergebnisse zwischenspeichern (Gefahr!)

      - result_cache_lifespan: Wie lange Ergebnisse zwischengespeichert werden sollen (in Sekunden), wenn use_result_cache benutzt wird

  - Die "icinga_web"-Datenbank

    Sie müssen eine Icinga-Web-Datenbank haben, die Informationen über Benutzer, Anmeldeinformationen, View-Persistenz, etc. enthält. Diese Datenbank muss 'icinga_web' heißen. Alle Einstellungen sind im vorigen Abschnitt beschrieben.

  - Die "icinga"-Datenbank

    Ab Icinga-Web v1.5 wird die Icinga-API über Doctrine angesprochen (vorher gab es ein eigenes Projekt, die 'icinga-api'). Im Folgenden werden nur spezielle bzw. zusätzliche Einstellungen erklärt. Solange nicht anders erwähnt, gelten alle Regeln aus "Allgemeine Einstellungen".

    - Datenbank-Identifier

      Der Icinga-Datenbank-Identifier muss "IcingaDoctrineDatabase" als 'class'-Attribut und 'icinga' als Datenbankname benutzen, also:

          <db:database name="icinga" class="IcingaDoctrineDatabase">
          ...
          </db:database>

    - dsn

      Sie können die gleichen Anmeldeinformationen wie in der `ido2db.cfg` benutzen, aber als Sicherheitsgründen ist es sehr ratsam, einen Benutzer nur mit Leserechten für Icinga-Web anzulegen. Nachfolgend ein Beispiel, welche Werte aus der `ido2db.cfg` passen.

              <ae:parameter name="dsn">mysql://db_user:db_pass@db_host:db_port/db_name</ae:parameter>

    - prefix

      Definiert den Präfix wie in `ido2db.cfg` angegeben

          <db:database name="icinga" class="IcingaDoctrineDatabase">
          ...
              <ae:parameter name="prefix">icinga_</ae:parameter>
          ...
          </db:database>

      Für Oracle benutzen Sie einen leeren Wert

          <db:database name="icinga" class="IcingaDoctrineDatabase">
          ...
              <ae:parameter name="prefix"></ae:parameter>
          ...
          </db:database>

    - use_retained

      Whether to use retained or original data dumps (see the value in idomod.cfg)

          <db:database name="icinga" class="IcingaDoctrineDatabase">
          ...
               <ae:parameter name="use_retained">true</ae:parameter>
          </db:database>

  - Komplettes Listing

        <?xml version="1.0" encoding="UTF-8"?>

        <databases xmlns:db="http://agavi.org/agavi/config/parts/databases/1.0" xmlns:ae="http://agavi.org/agavi/config/global/envelope/1.0">

            <db:database name="icinga_web" class="AppKitDoctrineDatabase">
                <ae:parameter name="dsn">mysql://icinga_web:icinga_web@localhost:3306/icinga_web</ae:parameter>
                <ae:parameter name="charset">utf8</ae:parameter>
                <ae:parameter name="manager_attributes">
                    <ae:parameter name="Doctrine_Core::ATTR_MODEL_LOADING">CONSERVATIVE</ae:parameter>
                </ae:parameter>

                <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>
                <ae:parameter name="date_format"><![CDATA[YYYY-MM-DD HH24:MI:SS]]></ae:parameter>

                <ae:parameter name="caching">
                    <ae:parameter name="enabled">false</ae:parameter>
                    <ae:parameter name="driver">apc</ae:parameter>
                    <ae:parameter name="use_query_cache">true</ae:parameter>
                    <ae:parameter name="use_result_cache">true</ae:parameter>
                    <ae:parameter name="result_cache_lifespan">60</ae:parameter>
                </ae:parameter>

            </db:database>

            <db:database xmlns="http://agavi.org/agavi/config/parts/databases/1.0" name="icinga" class="IcingaDoctrineDatabase">
                <ae:parameter name="dsn">mysql://icinga:icinga@localhost:3306/icinga</ae:parameter>
                <ae:parameter name="prefix">icinga_</ae:parameter>
                <ae:parameter name="charset">utf8</ae:parameter>
                 <ae:parameter name="use_retained">true</ae:parameter>
                <ae:parameter name="manager_attributes">
                    <ae:parameter name="Doctrine_Core::ATTR_MODEL_LOADING">CONSERVATIVE</ae:parameter>
                </ae:parameter>
                <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>
                <ae:parameter name="caching">
                    <ae:parameter name="enabled">false</ae:parameter>
                    <ae:parameter name="driver">apc</ae:parameter>
                    <ae:parameter name="use_query_cache">true</ae:parameter>
                </ae:parameter>

            </db:database>

        </databases>

- `factories.xml` - Agavi Systemkonfiguration, Storage- und Session-Konfiguration

  holds the config for your web session, e.g. the session_cookie_lifetime-parameter

  Session Cookie Lifetime

  Beispiel: Ändern von session_cookie_lifetime

  Die Session Lifetime ist die Zeit in Sekunden, bis die Icinga Web-Session abläuft. Sie kann auf globaler Ebene in der Datei `app/config/factories.xml` konfiguriert werden.

      <ae:parameter name="session_cookie_lifetime">3600<ae:parameter>

  Wenn Sie die session_cookie_lifetime ändern möchten, editieren Sie bitte `app/config/factories.site.xml`

- `logging.xml` - enthält die Verbindungsinformationen für Ihr Icinga Web

- `settings.xml` - Icinga-Einstellungen, z.B. Version und Präfixe / Versionsname

  enthält auch `icinga.xml` (enthält die Konfiguration für Ihr Icinga Web ROOT-Verzeichnis und den Icinga-Web Pfad)

- `translation.xml` - Default-Sprache, Datum- und Zeitformate und Einstellungen

  Falls Ihre Zeitzone von GMT abweicht, dann müssen Sie ggf. die entsprechenden Einstellungen in `php.ini` (oder in `translation.xml`, falls Sie dort nicht ändern können). Anderenfalls erhalten Sie möglicherweise eine Fehlermeldung ähnlich der folgenden:

  Abbildung 6.1. Icinga Web instance down

  Setzen Sie die Direktive auf einen gültigen Wert (z.B. 'Europe/Berlin').

- `views.xml` - erlaubt dem Benutzer das Hinzufügen/Ändern von API-Ansichten.

### 6.5.4. Fehlersuche

- Ich kann keine Befehle senden/ausführen!

  Stellen Sie sicher, dass der WebServer-Benutzer Schreibberechtigung auf die Icinga-Pipe besitzt und dass das "icinga_pipe"-Symbol im "readwrite"- oder "write"-Abschnitt Ihres Host (oder im default-Abschnitt) vorhanden ist. Stellen Sie sicher, dass der Pfad korrekt ist.

Icinga Web-Zeitzone

Wenn die Zeitzone von Icinga Web von Ihrer lokalen Zeitzone abweicht, überprüfen Sie bitte den Parameter "date.timezone" in Ihrer `php.ini`. Alternativ überprüfen Sie den Eintrag in `app/modules/AppKit/config/module.xml` (z.B. 'Europe/Berlin')

    #> vi app/modules/AppKit/config/module.xml
    <ae:parameter name="date.timezone">Europe/Berlin</ae:parameter>

Benutzervorgaben ändern

Die Datei `module.xml` enthält verschiedene Einstellungen, die durch eigene Werte überschrieben werden können, die in der Datei `userpreferences.xml` (im Ordner `etc/config` einzutragen sind).

### 6.5.5. Modul-Konfiguration:

- app/modules/AppKit

  Hier "lebt" das Framework: Authentifikation, Menüs und weiteres.

  Authentifizierung

  Beispiel: LDAP-Authentifizierung

  Öffnen Sie `app/modules/AppKit/config/auth.xml`.

  Ein Anbieter ist wie folgt aufgebaut:

       <ae:parameter name="msad-ldap1">
                  <ae:parameter name="auth_module">AppKit</ae:parameter>
                  <ae:parameter name="auth_provider">Auth.Provider.LDAP</ae:parameter>
                  <ae:parameter name="auth_enable">true</ae:parameter>
                  <ae:parameter name="auth_authoritative">true</ae:parameter>
                  <ae:parameter name="auth_create">true</ae:parameter>
                  <ae:parameter name="auth_update">true</ae:parameter>

                  <ae:parameter name="auth_map">
                      <ae:parameter name="user_firstname">givenName</ae:parameter>
                      <ae:parameter name="user_lastname">sn</ae:parameter>
                      <ae:parameter name="user_email">mail</ae:parameter>
                  </ae:parameter>

                  <ae:parameter name="ldap_dsn">ldap://ad.icinga.org</ae:parameter>
                  <ae:parameter name="ldap_basedn">DC=ad,DC=icinga,DC=org</ae:parameter>
                  <ae:parameter name="ldap_binddn">ldap@AD.ICINGA.ORG</ae:parameter>
                  <ae:parameter name="ldap_bindpw"><![CDATA[XXXXXXXXX]]></ae:parameter>
                  <ae:parameter name="ldap_userattr">uid</ae:parameter>
                  <ae:parameter name="ldap_filter_user"><![CDATA[(&(sAmAccountName=__USERNAME__))]]></ae:parameter>
              </ae:parameter>

  Die `auth.xml` hält die Dokumentation für die globale Konfiguration. Die LDAP-Authentifizierung sollte mit einigen grundlegenden LDAP-Kenntnissen möglich sein.

  Sie können die Anbieter duplizieren und so Ihre Authentifizierungs-Basis vergrößern.

  Bitte speichern Sie Ihre Konfiguration in `auth.site.xml`!

- app/modules/Cronks

  Alle Cronks werden hier implementiert: Grids und iframes. Sie sind einfache HTML-Seiten, die ExtJS-Komponenten-Code enthalten. Wenn Sie einen neuen Cronk hinzufügen möchten, wird dieses Modul Ihr Freund sein.

  Wenn Sie einen neuen Cronk entwickeln möchten, schauen Sie hier: HowToDevelopCronks

  Die Konfiguration können Sie im Cronk-Module ändern:

      #> ls app/modules/Cronks/config
      autoload.xml  config_handlers.xml  cronks.xml  module.xml  validators.xml

  - `module.xml` - definieren von neuen Kategorien in denen die Cronks erscheinen, die Datei `module.xml` hält dazu alle Informationen

  - `cronks.xml` - um auf neue Cronks zu zugreifen, definieren von neuen iframe Cronks

- app/modules/Web

  Oder besser: Icinga. Dieses Modul enthält alle Icinga relevanten Dinge wie IcingaAPI2Json und die Statusinformationen.

### 6.5.6. Benutzerdefinierte Konfiguration

Bitte beachten:

Wenn Sie Konfigurationsdateien ändern oder erstellen, denken Sie bitte an folgendes:

- Zeilen die mit <!-- beginnen und enden mit --> werden als Kommentare interpretiert.

- Variablennamen sind case-sensitive

| Anmerkung
Nach dem Ändern von Konfigurationsdateien leeren Sie bitte den Cache!

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

oder

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

Benötigen Sie weitere Informationen? Schauen Sie bitte in unserem Development Wiki.

Zurück | Nach oben | Weiter
6.4. Installation des Icinga Web Frontend | Zum Anfang | 6.6. Aktualisierung von Icinga Web und Icinga Web Datenbank

© 1999-2009 Ethan Galstad, 2009-2013 Icinga Development Team, http://www.icinga.org