Icinga

6.6. Konfigurationsübersicht Icinga Web

6.6.1. Wo sind meine Konfigurationsdateien?
6.6.2. Index
6.6.3. Globale Konfiguration
6.6.4. Fehlersuche
6.6.5. Modul-Konfiguration:
6.6.6. Benutzerdefinierte Konfiguration

6.6.1. Wo sind meine Konfigurationsdateien?

Die von Icinga Web bereitgestellten Konfigurationsdateien stehen unter app/config, aber Site-spezifische stehen im Web-Konfigurationsordner (per Default etc/conf.d), der bei Aktualisierungen nicht überschrieben wird. Der Ordner kann während der Installation mit Hilfe von --with-conf-dir geändert werden. Die Namen der Dateien sind identisch zu denen in app/config.

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.6.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)

6.6.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 Host, der für Aktionen benutzt wird, wenn kein Host angegeben 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] 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] 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] 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 - deaktivieren von Log-Ebenen oder schreiben von neuen Log-Dateien

  • 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

    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.6.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.6.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.6.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] 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.