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 Framwork: 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 Authentifizierung- 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 Status Informationen. 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 standard Einstellungen 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. Variablen Namen sind case-sensitive

  3. Ihre benutzdefinierten 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 Datein 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 and 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

Nachdem ändern von Konfigurationsdateien, leeren Sie bitte den Cache!

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

oder

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

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