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

- Globale Konfiguration

  - access.xml

  - databases.xml

  - factories.xml

    - Session Cookie Lifetime

  - logging.xml

  - settings.xml

  - translation.xml

- Default-Zeitzone ändern

- Module-Konfiguration

- Authentifizierung

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

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

Beispiel: Ändern der Zeitzone für Icinga-Web

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

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

### 6.5.5. Moduli-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

© 2009-2012 Icinga Development Team, http://www.icinga.org