Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:icinga2_-_graphite

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:icinga2_-_graphite [2015/12/05 21:10] – [/etc/httpd/conf.d/graphite-web.conf] klaustachtler:icinga2_-_graphite [2022/03/24 07:55] (aktuell) – [Konfiguration: graphite-web] klaus
Zeile 1811: Zeile 1811:
  
 Nachfolgende Konfigurationsdatei  Nachfolgende Konfigurationsdatei 
-  * ''/etc/carbon/carbon.conf''+  * ''/etc/carbon/storage-schemas.conf''
 beinhaltete die Konfigurationen, damit die Aggregation der Daten in ''carbon'' funktioniert. Hier müssen in der Konfigurationsdatei die Intervalle und Vorhaltezeiten eingetragen werden, nach denen ''carbon'' arbeiten soll. beinhaltete die Konfigurationen, damit die Aggregation der Daten in ''carbon'' funktioniert. Hier müssen in der Konfigurationsdatei die Intervalle und Vorhaltezeiten eingetragen werden, nach denen ''carbon'' arbeiten soll.
  
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 1842: Zeile 1838:
 # intervals like PNP4Nagios uses them per default # intervals like PNP4Nagios uses them per default
 pattern = ^icinga2\. pattern = ^icinga2\.
-retentions = 1m:2d,5m:10d,30m:90d,360m:4y+retentions = 1m:2d,5m:10d,15m:30d,30m:90d,360m:4y 
 + 
 +[default_1min_for_1day] 
 +pattern = .* 
 +retentions = 60s:1d
 </code> </code>
  
Zeile 1850: Zeile 1850:
 # intervals like PNP4Nagios uses them per default # intervals like PNP4Nagios uses them per default
 pattern = ^icinga2\. pattern = ^icinga2\.
-retentions = 1m:2d,5m:10d,30m:90d,360m:4y</code>+retentions = 1m:2d,5m:10d,15m:30d,30m:90d,360m:4y 
 +</code>
  
 Die Daten können aus der [[https://www.icinga.org/|Icinga]]-Dokumentation entnommen werden. Die Daten können aus der [[https://www.icinga.org/|Icinga]]-Dokumentation entnommen werden.
 +
 +:!: **WICHTIG** - **Die Reihenfolge ist entscheidend, da der erste Treffer relevant ist!**
  
 ===== Konfiguration: MariaDB ===== ===== Konfiguration: MariaDB =====
Zeile 1906: Zeile 1909:
  
 :!: **HINWEIS** - Noch bevor die Tabellen für die Datenbank eingerichtet werden können, ist die ''graphite-web'' Web-Anwendung einzurichten, da sonst die Anzeige der Daten und die Konfiguration von ''whisper'' unvollständig ist. :!: **HINWEIS** - Noch bevor die Tabellen für die Datenbank eingerichtet werden können, ist die ''graphite-web'' Web-Anwendung einzurichten, da sonst die Anzeige der Daten und die Konfiguration von ''whisper'' unvollständig ist.
 +
 +==== /etc/graphite-web/graphTemplates.conf ====
 +
 +Um für Icinga2 **ab Version 2.10.x** ein **dunkles**-Standard-Theme zur Verfügung zu stellen, muss nachfolgende mitgelieferte Konfigurationsdatei aus dem Verzeichnis
 +  * ''/usr/share/doc/graphite-web-0.9.16/graphTemplates.conf.example''
 +nach
 +  * ''/etc/graphite-web/graphTemplates.conf''
 +**__kopiert__** und **__umbenannt__** werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<code>
 +# cp -a /usr/share/doc/graphite-web-0.9.16/graphTemplates.conf.example /etc/graphite-web/graphTemplates.conf
 +</code>
  
 ==== /etc/graphite-web/local_settings.py ==== ==== /etc/graphite-web/local_settings.py ====
Zeile 1955: Zeile 1969:
  
 # Logging # Logging
-#LOG_RENDERING_PERFORMANCE = True +# Tachtler 
-#LOG_CACHE_PERFORMANCE = True +# default: #LOG_RENDERING_PERFORMANCE = True 
-#LOG_METRIC_ACCESS = True+LOG_RENDERING_PERFORMANCE = True 
 +# Tachtler 
 +# default: #LOG_CACHE_PERFORMANCE = True 
 +LOG_CACHE_PERFORMANCE = True 
 +Tachtler 
 +# default: #LOG_METRIC_ACCESS = True 
 +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 2183:
 Angabe der Zeitzone für die Anzeige. Siehe auch nachfolgenden externen Link: [[http://php.net/manual/de/timezones.php]]. Angabe der Zeitzone für die Anzeige. Siehe auch nachfolgenden externen Link: [[http://php.net/manual/de/timezones.php]].
  
 +  * <code bash># Logging
 +# Tachtler
 +# default: #LOG_RENDERING_PERFORMANCE = True
 +LOG_RENDERING_PERFORMANCE = True
 +# Tachtler
 +# default: #LOG_CACHE_PERFORMANCE = True
 +LOG_CACHE_PERFORMANCE = True
 +# Tachtler
 +# default: #LOG_METRIC_ACCESS = True
 +LOG_METRIC_ACCESS = True
 +</code>
 +
 +Explizites einschalten der LOG-Schreibung, da dies ggf **__nicht__** immer die Standardwerte sind und es sonst zu nachfolgenden Fehlermeldungen im [[http://httpd.apache.org|Apache HTTP Server]] -LOG (error_log) kommt:
 +
 +(**Jeweils nur relevanter Ausschnitt**))
 +
 +<code>
 +...
 +[Thu Dec 17 10:42:53.765820 2015] [:error] [pid 2161] No handlers could be found for logger "cache"
 +...
 +[Thu Dec 17 10:58:01.239438 2015] [:error] [pid 2613] No handlers could be found for logger "rendering"
 +...
 +[Thu Dec 17 11:05:49.683547 2015] [:error] [pid 3038] No handlers could be found for logger "metric_access"
 +...
 +</code>
 + 
   * <code bash>DATABASES = {   * <code bash>DATABASES = {
     'default': {     'default': {
Zeile 2191: Zeile 2237:
 Dazu kann der Inhalt einer möglichen Konfigurationsdatei Dazu kann der Inhalt einer möglichen Konfigurationsdatei
   * ''/etc/httpd/conf.d/graphite-web.conf''   * ''/etc/httpd/conf.d/graphite-web.conf''
-in die Konfigurationsdatei +wie nachfolgend dargestellt entsprechend **__angepasst__** werden:
-  * ''/etc/httpd/conf.d/icingaweb2.conf'' +
-wie nachfolgend dargestellt entsprechend **__integriert__** und **__angepasst__** werden:+
  
 (**Komplette Konfigurationsdatei**) (**Komplette Konfigurationsdatei**)
Zeile 2251: Zeile 2295:
 </VirtualHost> </VirtualHost>
 </code> </code>
 +
 +Dazu kann aber auch der Inhalt einer möglichen Konfigurationsdatei
 +  * ''/etc/httpd/conf.d/graphite-web.conf''
 +in die Konfigurationsdatei
 +  * ''/etc/httpd/conf.d/icingaweb2.conf''
 +wie nachfolgend dargestellt entsprechend **__integriert__** und **__angepasst__** werden:
  
 Nachfolgend ein Beispiel wie der **''graphite''** VHOST in den **''icingaweb2''** VHOST **__integriert__** werden kann: Nachfolgend ein Beispiel wie der **''graphite''** VHOST in den **''icingaweb2''** VHOST **__integriert__** werden kann:
Zeile 2472: Zeile 2522:
 </code> </code>
  
-===== icinga2: perfdata, graphite =====+===== icinga2: graphite =====
  
-Bevor der Neustart von [[https://www.icinga.org/|Icinga]] an dieser Stelle der Konfiguration durchgeführt werden soll, sind die noch aktuell inaktiven Module  +Bevor der Neustart von [[https://www.icinga.org/|Icinga]] an dieser Stelle der Konfiguration durchgeführt werden soll, ist noch aktuell nachfolgendes inaktive Modul 
-  * ''perfdata''+
   * ''graphite''   * ''graphite''
 mit nachfolgendem Befehl zu aktivieren: mit nachfolgendem Befehl zu aktivieren:
 <code> <code>
-# icinga2 feature enable perfdata graphite +# 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.
 </code> </code>
Zeile 2559: Zeile 2607:
  
 [[http://graphite.wikidot.com/|Graphite]] ist nun **aktiviert**! [[http://graphite.wikidot.com/|Graphite]] ist nun **aktiviert**!
 +
 +===== carbon-cache: RAM-Disk =====
 +
 +Zur Verbesserung der Performance, könnte der [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server das Schreiben seiner Daten auch in eine **RAM-Disk** durchführen.
 +
 +Nachfolgende Schritte zeigen, wie dies eingerichtet werden kann.
 +
 +==== carbon-cache: RAM-Disk - Server stoppen ====
 +
 +Der [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server kann mit nachfolgendem Befehle gestoppt werden:
 +<code>
 +# systemctl stop carbon-cache
 +</code>
 +
 +==== carbon-cache: RAM-Disk - Verzeichnisse ====
 +
 +Nachdem der [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server gestoppt ist, sollte ein neues Verzeichnis mit nachfolgendem Befehl angelegt werden:
 +<code>
 +# mkdir -p /var/lib/carbon/whisper.persistent
 +</code>
 +
 +:!: **HINWEIS** - Das so **neu entstandene Verzeichnis**, stellt die **dauerhafte Kopie auf der Fetsplatte dar.**
 +
 +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:
 +<code>
 +# mv /var/lib/carbon/whisper/* /var/lib/carbon/whisper.persistent/
 +</code>
 +
 +:!: **HINWEIS** - Anschließend sollte nun das **bishergige Verzeichnis** - **leer** sein!
 +
 +==== carbon-cache: RAM-Disk - anlegen ====
 +
 +Nachfolgende Veränderung der Konfigurationsdatei 
 +  * **''/etc/fstab''**
 +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**):
 +<code>
 +...
 +tmpfs /var/lib/carbon/whisper tmpfs defaults,size=512m,mode=750,uid=394,gid=391 0 0
 +...
 +</code>
 +
 +Die vorhergehende Zeile bewirkt, dass
 +  * das Verzeichnis ''/var/lib/carbon/whisper'' als **RAM-Disk** "gemountet" wird
 +  * das "Dateisystem" ist hier ''tmpfs''
 +  * es gelten die ''defaults'' und weitere Angaben wie
 +    * Größe der **RAM-Disk**, hier **512 MB**
 +    * Die **Datei**rechte sollen **750** lauten
 +    * Der **Benutzer** hat die **ID des Benutzers: ''carbon''**
 +    * Die **Gruppe** hat die **ID der Gruppe: ''carbon''**
 +    * Weitere mount/sync Angaben ''0 0''
 +
 +Abschließend kann nun, durch nachfolgenden Befehl, die **RAM-Disk** tatsächlich "gemounted" werden.:
 +<code>
 +# mount -a
 +</code>
 +
 +Nachfolgende **RAM-Disk** - ''/var/lib/carbon/whisper'' sollte nun zu sehen sein, was mit nachfolgendem Befehl überprüft werden kann:
 +<code>
 +# df -h | grep /var/lib/carbon/whisper
 +tmpfs                         512M      512M   0% /var/lib/carbon/whisper
 +</code>
 +
 +==== carbon-cache: RAM-Disk - systemd-Daemon anpassen ====
 +
 +Damit beim **Neustart** oder **Herunterfahren** des Servers die Daten aus der **RAM-Disk** nicht verloren gehen, soll beim **Starten und Stoppen** des [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Servers, die **RAM-Disk** entsprechend beim
 +  * 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://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server, wie folgt angepasst werden.
 +
 +Zuerst sollte eine Kopie des **ursprünglichen ''systemd''-Dienstes** wie folgt angefertigt werden, damit bei eventuellen Updates des [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server die nachfolgenden Änderungen **__nicht__ verloren gehen**:
 +<code>
 +# cp -a /usr/lib/systemd/system/carbon-cache.service /etc/systemd/system/carbon-cache.service
 +</code>
 +
 +Anschließend kann die so entstandene neue ''systemd''-Dienst-Datei wie folgt angepasst werden:
 +
 +(**Komplette Konfigurationsdatei**)
 +
 +<code>
 +[Unit]
 +Description=Graphite Carbon Cache
 +After=network.target
 +
 +[Service]
 +Type=forking
 +StandardOutput=syslog
 +StandardError=syslog
 +ExecStartPre=/usr/bin/rsync -ratv /var/lib/carbon/whisper.persistent/ /var/lib/carbon/whisper/
 +ExecStart=/usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start
 +ExecReload=/bin/kill -USR1 $MAINPID
 +ExecStopPost=/usr/bin/rsync -ratv /var/lib/carbon/whisper/ /var/lib/carbon/whisper.persistent/
 +PIDFile=/var/run/carbon-cache.pid
 +TimeoutStartSec=2min 30s
 +TimeoutStopSec=2min 30s
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +**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://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server **gestartet** wird.
 +<code>
 +ExecStartPre=/usr/bin/rsync -ratv /var/lib/carbon/whisper.persistent/ /var/lib/carbon/whisper/
 +</code>
 +
 +Die **zweite Zeile** bewirkt, dass die Daten von der **RAM-Disk** auf die Festplatte geschrieben werden, **nachdem** der [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server **gestoppt** wurde.
 +<code>
 +ExecStopPost=/usr/bin/rsync -ratv /var/lib/carbon/whisper/ /var/lib/carbon/whisper.persistent/
 +</code>
 +
 +Die **dritte Zeile** bewirkt, dass ein Möglicher **Timeout** beim starten des Daemon/Dienstes von **standardmäßig** - ''1min 30s'' auf z.B. hier **''2min 30s''** erhöht wird, was notwendig sein kann, wenn **viele** Daten via ''rsync'' zu kopieren sind!
 +<code>
 +TimeoutStartSec=2min 30s
 +</code>
 +
 +Die **vierte Zeile** bewirkt, dass ein Möglicher **Timeout** beim beenden des Daemon/Dienstes von **standardmäßig** - ''1min 30s'' auf z.B. hier **''2min 30s''** erhöht wird, was notwendig sein kann, wenn **viele** Daten via ''rsync'' zu kopieren sind!
 +<code>
 +TimeoutStopSec=2min 30s
 +</code>
 +
 +Nachfolgender Befehl, gibt die Änderungen dem ''systemd''-Dienst bekannt: (**Änderung der "Timeout"-Zeiten**)
 +<code>
 +# systemctl daemon-reexec
 +</code>
 +
 +Nachfolgender Befehl, gibt die Änderungen dem ''systemd''-Dienst bekannt: (**Änderung von "Exec-Start/Stop**)
 +<code>
 +# systemctl daemon-reload
 +</code>
 +
 +==== carbon-cache: RAM-Disk - cron-Job ====
 +
 +Um nicht nur beim **Stoppen** des [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server die Daten 
 +von der **RAM-Disk** auf die Festplatte zu schreiben, sondern dies auch in regelmäßigen Abständen durchzuführen, kann nachfolgender ''cron''-Job angelegt werden:
 +
 +(**Nur relevnater Ausschnitt**)
 +
 +<code>
 +PATH=/sbin:/bin:/usr/sbin:/usr/bin
 +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,feb,mar,apr ...
 +# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 +# |  |  |  |  |
 +# *  *  *  *  * user-name  command to be executed
 +
 +# Tachtler
 +# rsync from RAM-Disk: /var/lib/carbon/whisper/(all files) to HDD-Disk: /var/lib/carbon/whisper.persistant/(all files)  
 +*/30 * * * * root /usr/bin/rsync -ratv /var/lib/carbon/whisper/ /var/lib/carbon/whisper.persistent/ >/dev/null 2>&1
 +</code>
 +
 +:!: **HINWEIS** - Vorhergehender ''cron''-job synchronisiert alle **30 Minuten** die Daten aus der **RAM-Disk** auf die Festplatte.
 +
 +==== carbon-cache: RAM-Disk - Server starten ====
 +
 +Der [[http://graphite.wikidot.com/|Graphite]] **carbon-cache**-Server kann mit nachfolgendem Befehle gestartet werden:
 +<code>
 +# systemctl start carbon-cache
 +</code>
  
tachtler/icinga2_-_graphite.1449346204.txt.gz · Zuletzt geändert: 2015/12/05 21:10 von klaus