tachtler:icinga2_-_graphite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
tachtler:icinga2_-_graphite [2015/12/05 17:25] – [/etc/icingaweb2/modules/graphite/config.ini] klaus | tachtler:icinga2_-_graphite [2017/07/28 14:34] – [/etc/carbon/storage-schemas.conf] klaus | ||
---|---|---|---|
Zeile 1811: | Zeile 1811: | ||
Nachfolgende Konfigurationsdatei | Nachfolgende Konfigurationsdatei | ||
- | * ''/ | + | * ''/ |
beinhaltete die Konfigurationen, | beinhaltete die Konfigurationen, | ||
Zeile 1831: | Zeile 1831: | ||
pattern = ^carbon\. | pattern = ^carbon\. | ||
retentions = 60:90d | retentions = 60:90d | ||
- | |||
- | [default_1min_for_1day] | ||
- | pattern = .* | ||
- | retentions = 60s:1d | ||
# Tachtler | # Tachtler | ||
Zeile 1843: | Zeile 1839: | ||
pattern = ^icinga2\. | pattern = ^icinga2\. | ||
retentions = 1m: | retentions = 1m: | ||
+ | |||
+ | [default_1min_for_1day] | ||
+ | pattern = .* | ||
+ | retentions = 60s:1d | ||
</ | </ | ||
Zeile 1853: | Zeile 1853: | ||
Die Daten können aus der [[https:// | Die Daten können aus der [[https:// | ||
+ | |||
+ | :!: **WICHTIG** - **Die Reihenfolge ist entscheidend, | ||
===== Konfiguration: | ===== Konfiguration: | ||
Zeile 1955: | Zeile 1957: | ||
# Logging | # Logging | ||
- | # | + | # Tachtler |
- | # | + | # default: |
- | # | + | LOG_RENDERING_PERFORMANCE = True |
+ | # Tachtler | ||
+ | # default: | ||
+ | LOG_CACHE_PERFORMANCE = True | ||
+ | # Tachtler | ||
+ | # default: # | ||
+ | LOG_METRIC_ACCESS = True | ||
# Enable full debug page display on exceptions (Internal Server Error pages) | # Enable full debug page display on exceptions (Internal Server Error pages) | ||
Zeile 2163: | Zeile 2171: | ||
Angabe der Zeitzone für die Anzeige. Siehe auch nachfolgenden externen Link: [[http:// | Angabe der Zeitzone für die Anzeige. Siehe auch nachfolgenden externen Link: [[http:// | ||
+ | * <code bash># Logging | ||
+ | # Tachtler | ||
+ | # default: # | ||
+ | LOG_RENDERING_PERFORMANCE = True | ||
+ | # Tachtler | ||
+ | # default: # | ||
+ | LOG_CACHE_PERFORMANCE = True | ||
+ | # Tachtler | ||
+ | # default: # | ||
+ | LOG_METRIC_ACCESS = True | ||
+ | </ | ||
+ | |||
+ | Explizites einschalten der LOG-Schreibung, | ||
+ | |||
+ | (**Jeweils nur relevanter Ausschnitt**)) | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | [Thu Dec 17 10: | ||
+ | ... | ||
+ | [Thu Dec 17 10: | ||
+ | ... | ||
+ | [Thu Dec 17 11: | ||
+ | ... | ||
+ | </ | ||
+ | |||
* <code bash> | * <code bash> | ||
' | ' | ||
Zeile 2247: | Zeile 2281: | ||
CustomLog logs/ | CustomLog logs/ | ||
CustomLog logs/ | CustomLog logs/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Dazu kann aber auch der Inhalt einer möglichen Konfigurationsdatei | ||
+ | * ''/ | ||
+ | in die Konfigurationsdatei | ||
+ | * ''/ | ||
+ | wie nachfolgend dargestellt entsprechend **__integriert__** und **__angepasst__** werden: | ||
+ | |||
+ | Nachfolgend ein Beispiel wie der **'' | ||
+ | <code apache> | ||
+ | # | ||
+ | # icinga.tachtler.net (icingaweb2) | ||
+ | # | ||
+ | < | ||
+ | ServerAdmin webmaster@tachtler.net | ||
+ | ServerName icinga.tachtler.net | ||
+ | ServerAlias www.icinga.tachtler.net | ||
+ | ServerPath / | ||
+ | |||
+ | RewriteEngine on | ||
+ | RewriteCond %{REQUEST_URI} ^/$ | ||
+ | RewriteRule (.*) / | ||
+ | |||
+ | Alias /icingaweb2 "/ | ||
+ | |||
+ | # Header set Access-Control-Allow-Origin " | ||
+ | # Header set Access-Control-Allow-Methods "GET, OPTIONS" | ||
+ | # Header set Access-Control-Allow-Headers " | ||
+ | # Header set Access-Control-Allow-Credentials true | ||
+ | |||
+ | WSGIScriptAlias / / | ||
+ | WSGIImportScript / | ||
+ | |||
+ | Alias /graphite/ "/ | ||
+ | Alias / | ||
+ | |||
+ | < | ||
+ | SetHandler None | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | SetHandler None | ||
+ | </ | ||
+ | |||
+ | DocumentRoot "/ | ||
+ | < | ||
+ | Options -Indexes +SymLinksIfOwnerMatch | ||
+ | # AllowOverride AuthConfig | ||
+ | AllowOverride None | ||
+ | # Tachtler - LDAP | ||
+ | AuthType Basic | ||
+ | AuthName " | ||
+ | AuthBasicProvider ldap | ||
+ | AuthLDAPURL " | ||
+ | AuthLDAPBindDN " | ||
+ | AuthLDAPBindPassword " | ||
+ | < | ||
+ | # Tachtler (enable for LDAP access) | ||
+ | Require ldap-user klaus | ||
+ | </ | ||
+ | </ | ||
+ | | ||
+ | < | ||
+ | Options -Indexes +SymLinksIfOwnerMatch | ||
+ | # AllowOverride AuthConfig | ||
+ | AllowOverride None | ||
+ | # Tachtler - LDAP | ||
+ | AuthType Basic | ||
+ | AuthName " | ||
+ | AuthBasicProvider ldap | ||
+ | AuthLDAPURL " | ||
+ | AuthLDAPBindDN " | ||
+ | AuthLDAPBindPassword " | ||
+ | < | ||
+ | # Tachtler (enable for LDAP access) | ||
+ | Require ldap-user klaus | ||
+ | </ | ||
+ | |||
+ | SetEnv ICINGAWEB_CONFIGDIR "/ | ||
+ | |||
+ | < | ||
+ | RewriteEngine on | ||
+ | RewriteBase /icingaweb2 | ||
+ | RewriteCond %{REQUEST_FILENAME} -s [OR] | ||
+ | RewriteCond %{REQUEST_FILENAME} -l [OR] | ||
+ | RewriteCond %{REQUEST_FILENAME} -d | ||
+ | RewriteRule ^.*$ - [NC,L] | ||
+ | RewriteRule ^.*$ index.php [NC,L] | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | DirectoryIndex error_norewrite.html | ||
+ | ErrorDocument 404 / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | DirectoryIndex index.php | ||
+ | |||
+ | ErrorLog logs/ | ||
+ | SetEnvIf X-Forwarded-For " | ||
+ | CustomLog logs/ | ||
+ | CustomLog logs/ | ||
</ | </ | ||
</ | </ | ||
Zeile 2329: | Zeile 2466: | ||
</ | </ | ||
- | Der Inhalt der Konfigurationsdatei sollte dann wie folgt aussehenen: | + | Der Inhalt der Konfigurationsdatei sollte dann wie folgt aussehen: |
<code c> | <code c> | ||
[graphite] | [graphite] | ||
Zeile 2373: | Zeile 2510: | ||
</ | </ | ||
- | ===== icinga2: | + | ===== icinga2: graphite ===== |
- | Bevor der Neustart von [[https:// | + | Bevor der Neustart von [[https:// |
- | * '' | + | |
* '' | * '' | ||
mit nachfolgendem Befehl zu aktivieren: | mit nachfolgendem Befehl zu aktivieren: | ||
< | < | ||
- | # icinga2 feature enable | + | # icinga2 feature enable graphite |
- | Enabling feature perfdata. Make sure to restart Icinga 2 for these changes to take effect. | + | |
Enabling feature graphite. Make sure to restart Icinga 2 for these changes to take effect. | Enabling feature graphite. Make sure to restart Icinga 2 for these changes to take effect. | ||
</ | </ | ||
Zeile 2460: | Zeile 2595: | ||
[[http:// | [[http:// | ||
+ | |||
+ | ===== carbon-cache: | ||
+ | |||
+ | Zur Verbesserung der Performance, | ||
+ | |||
+ | Nachfolgende Schritte zeigen, wie dies eingerichtet werden kann. | ||
+ | |||
+ | ==== carbon-cache: | ||
+ | |||
+ | Der [[http:// | ||
+ | < | ||
+ | # systemctl stop carbon-cache | ||
+ | </ | ||
+ | |||
+ | ==== carbon-cache: | ||
+ | |||
+ | Nachdem der [[http:// | ||
+ | < | ||
+ | # mkdir -p / | ||
+ | </ | ||
+ | |||
+ | :!: **HINWEIS** - Das so **neu entstandene Verzeichnis**, | ||
+ | |||
+ | Anschließend kann der Inhalt des bisherigen Verzeichnisses und des zukünftigen **Mount**-Points der **RAM-Disk** in das neue Verzeichnis verschoben werden, was mit nachfolgendem Befehl durchgeführt werden kann: | ||
+ | < | ||
+ | # mv / | ||
+ | </ | ||
+ | |||
+ | :!: **HINWEIS** - Anschließend sollte nun das **bishergige Verzeichnis** - **leer** sein! | ||
+ | |||
+ | ==== carbon-cache: | ||
+ | |||
+ | Nachfolgende Veränderung der Konfigurationsdatei | ||
+ | * **''/ | ||
+ | zeigt, welche Ergänzungen hier durchgeführt werden müssen, um eine **RAM-Disk** anzulegen. Die **RAM-Disk** soll auch nch nach einem **Neustart des Servers** wieder Verfügbar sein. | ||
+ | |||
+ | (**Nur relevanter Ausschnitt**): | ||
+ | < | ||
+ | ... | ||
+ | tmpfs / | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Die vorhergehende Zeile bewirkt, dass | ||
+ | * das Verzeichnis ''/ | ||
+ | * das " | ||
+ | * es gelten die '' | ||
+ | * Größe der **RAM-Disk**, | ||
+ | * Die **Datei**rechte sollen **750** lauten | ||
+ | * Der **Benutzer** hat die **ID des Benutzers: '' | ||
+ | * Die **Gruppe** hat die **ID der Gruppe: '' | ||
+ | * Weitere mount/sync Angaben '' | ||
+ | |||
+ | Abschließend kann nun, durch nachfolgenden Befehl, die **RAM-Disk** tatsächlich " | ||
+ | < | ||
+ | # mount -a | ||
+ | </ | ||
+ | |||
+ | Nachfolgende **RAM-Disk** - ''/ | ||
+ | < | ||
+ | # df -h | grep / | ||
+ | tmpfs | ||
+ | </ | ||
+ | |||
+ | ==== carbon-cache: | ||
+ | |||
+ | Damit beim **Neustart** oder **Herunterfahren** des Servers die Daten aus der **RAM-Disk** nicht verloren gehen, soll beim **Starten und Stoppen** des [[http:// | ||
+ | * Start - einlesen der Daten von der Festplatte in die **RAM-Disk** | ||
+ | * Stoppen - schreiben der Daten aus der **RAM-Disk** auf die Festplatte | ||
+ | durchgeführt werden. | ||
+ | |||
+ | Dazu kann der **systemd**-Dienst des [[http:// | ||
+ | |||
+ | Zuerst sollte eine Kopie des **ursprünglichen '' | ||
+ | < | ||
+ | # cp -a / | ||
+ | </ | ||
+ | |||
+ | Anschließend kann die so entstandene neue '' | ||
+ | |||
+ | (**Komplette Konfigurationsdatei**) | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=Graphite Carbon Cache | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | Type=forking | ||
+ | StandardOutput=syslog | ||
+ | StandardError=syslog | ||
+ | ExecStartPre=/ | ||
+ | ExecStart=/ | ||
+ | ExecReload=/ | ||
+ | ExecStopPost=/ | ||
+ | PIDFile=/ | ||
+ | TimeoutStartSec=2min 30s | ||
+ | TimeoutStopSec=2min 30s | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | **Neu** sind hier die vier nachfolgenden Zeilen: | ||
+ | |||
+ | Die **erste Zeile** bewirkt, dass die Daten von der Festplatte in die **RAM-Disk** eingelesen werden, **bevor** der [[http:// | ||
+ | < | ||
+ | ExecStartPre=/ | ||
+ | </ | ||
+ | |||
+ | Die **zweite Zeile** bewirkt, dass die Daten von der **RAM-Disk** auf die Festplatte geschrieben werden, **nachdem** der [[http:// | ||
+ | < | ||
+ | ExecStopPost=/ | ||
+ | </ | ||
+ | |||
+ | Die **dritte Zeile** bewirkt, dass ein Möglicher **Timeout** beim starten des Daemon/ | ||
+ | < | ||
+ | TimeoutStartSec=2min 30s | ||
+ | </ | ||
+ | |||
+ | Die **vierte Zeile** bewirkt, dass ein Möglicher **Timeout** beim beenden des Daemon/ | ||
+ | < | ||
+ | TimeoutStopSec=2min 30s | ||
+ | </ | ||
+ | |||
+ | Nachfolgender Befehl, gibt die Änderungen dem '' | ||
+ | < | ||
+ | # systemctl daemon-reexec | ||
+ | </ | ||
+ | |||
+ | Nachfolgender Befehl, gibt die Änderungen dem '' | ||
+ | < | ||
+ | # systemctl daemon-reload | ||
+ | </ | ||
+ | |||
+ | ==== carbon-cache: | ||
+ | |||
+ | Um nicht nur beim **Stoppen** des [[http:// | ||
+ | von der **RAM-Disk** auf die Festplatte zu schreiben, sondern dies auch in regelmäßigen Abständen durchzuführen, | ||
+ | |||
+ | (**Nur relevnater Ausschnitt**) | ||
+ | |||
+ | < | ||
+ | PATH=/ | ||
+ | MAILTO=root | ||
+ | |||
+ | # For details see man 4 crontabs | ||
+ | |||
+ | # Example of job definition: | ||
+ | # .---------------- minute (0 - 59) | ||
+ | # | .------------- hour (0 - 23) | ||
+ | # | | .---------- day of month (1 - 31) | ||
+ | # | | | .------- month (1 - 12) OR jan, | ||
+ | # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun, | ||
+ | # | | | | | | ||
+ | # * * * * * user-name | ||
+ | |||
+ | # Tachtler | ||
+ | # rsync from RAM-Disk: / | ||
+ | */30 * * * * root / | ||
+ | </ | ||
+ | |||
+ | :!: **HINWEIS** - Vorhergehender '' | ||
+ | |||
+ | ==== carbon-cache: | ||
+ | |||
+ | Der [[http:// | ||
+ | < | ||
+ | # systemctl start carbon-cache | ||
+ | </ | ||
tachtler/icinga2_-_graphite.txt · Zuletzt geändert: 2022/03/24 07:55 von klaus