Icinga

Konfigurationsübersicht Icinga-Web

Wo sind meine Konfigurationsdateien?

Wir versuchen die Verwendung von globalen Konfigurationsdateien zu minimieren. 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

Index

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:

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.

#> vi app/config/factories.xml

<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

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>

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össern.

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

app/modules/Web

Oder besser: Icinga. Dieses Modul enthält alle Icinga relevanten Dinge wie IcingaAPI2Json und die Statusinformationen. Auch die Icinga-API-Verbindungseinstellungen werden hier konfiguriert.

Icinga-API Verbindungseinstellungen

Beispiel: Ändern der Icinga-API-Verbindungseinstellungen

Sehen Sie in app/modules/Web/config/icinga-io.xml, hier finden Sie die Standardeinstellungen für die Icinga-API-Verbindung.

#> vi app/modules/Web/config/icinga-io.xml

          <setting name="api.interfaces.data">
                                        <!-- IcingaApi connection interface -->
                                        <ae:parameter name="api_type">IcingaApi::CONNECTION_IDO</ae:parameter>

                                        <!-- Suits for all interfaes -->
                                        <ae:parameter name="config_type">mysql</ae:parameter>
                                        <ae:parameter name="config_host">localhost</ae:parameter>
                                        <ae:parameter name="config_port">3306</ae:parameter>

                                        <!-- ###BEGIN_CONNECTION_IDO### -->
                                        <!-- Database specific (IcingaApi::CONNECTION_IDO) -->
                                        <ae:parameter name="config_database">icinga</ae:parameter>
                                        <ae:parameter name="config_user">icinga</ae:parameter>
                                        <ae:parameter name="config_password">icinga</ae:parameter>
                                        <ae:parameter name="config_table_prefix">icinga_</ae:parameter>
                                        <!-- ###END_CONNECTION_IDO### -->

Wenn Sie diese Einstellungen ändern möchten, editieren Sie bitte app/modules/Web/config/icinga-io.site.xml.

Benutzerdefinierte Konfiguration

Bitte beachten:

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

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

  2. Variablennamen sind case-sensitive

  3. Ihre benutzerdefinierten Icinga-Web-Konfigurationseinstellungen für die Icinga-API, die Authentifizierung und die Datenbank können Sie in den app/modules/Appkit(/Cronks/Web)/config/*.site.xml- Dateien vornehmen. Diese Dateien werden bei einer Aktualisierung von Icinga-Web nicht überschrieben.

    Folgende Dateien sind dafür vorgesehen:

    app/modules/Cronks/config/cronks.site.xml

    app/modules/Web/config/icinga-io.site.xml

    app/modules/AppKit/config/auth.site.xml

    app/config/icinga.site.xml

    app/config/databases.site.xml

    app/config/settings.site.xml

    app/config/translation.site.xml

    app/config/factories.site.xml

    Die Templates für Grids und TO's (tactical overview) können in ihrem Verzeichnis zu *.site.xml- Dateien kopiert werden:

    Die Grids:

    app/modules/Cronks/data/xml/grid/icinga-hostgroup-summary-template.xml

    app/modules/Cronks/data/xml/grid/icinga-host-history-template.xml

    app/modules/Cronks/data/xml/grid/icinga-host-template.xml

    ...

    und die TO's:

    app/modules/Cronks/data/xml/to/icinga-tactical-overview-groupstat.xml

    app/modules/Cronks/data/xml/to/icinga-tactical-overview-presets.xml

    app/modules/Cronks/data/xml/to/icinga-tactical-overview-template-charts.xml

    ...

    Um auf Ihre *.site.xml- Grids/Cronks zugreifen zu können, müssen Sie diese in app/modules/Cronks/config/cronks.xml hinterlegen.

[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.