Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:web_c7:icinga:graphite [20.11.2015 22:04. ] – [python-carbon] djangocentos:web_c7:icinga:graphite [18.11.2024 19:11. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-====== Icinga Einbinden von Graphite zur graphischen Visualisierung - Installation und Konfiguration unter CentOS 7.x ======+====== Icinga2 Einbinden von Graphite zur graphischen Visualisierung - Installation und Konfiguration unter CentOS 7.x ======
 {{:centos:web_c7:icinga:graphite-logo.png?nolink&250 |Bild: Graphite Logo}}  Mit [[http://graphite.wikidot.com/|Graphite]] steht ein sehr mächtiges Werkzeug zur Verfügung, wenn es darum geht in Echtzeit skalierbare Graphen zur Verfügung zu stellen.  {{:centos:web_c7:icinga:graphite-logo.png?nolink&250 |Bild: Graphite Logo}}  Mit [[http://graphite.wikidot.com/|Graphite]] steht ein sehr mächtiges Werkzeug zur Verfügung, wenn es darum geht in Echtzeit skalierbare Graphen zur Verfügung zu stellen. 
  
Zeile 5: Zeile 5:
  
 <WRAP center round info 75%> <WRAP center round info 75%>
-Obgleich es aktuell((Stand: April 2015)) nur eine Vorabversion eines [[centos:web_c7:icinga:web2|Icinga Web 2]] Moduls gibt, lohnt es sich doch einen Blick auf die Möglichkeiten von Graphite und Icinga Web 2 zu werfen. Es wird spannend werden, welche zusätzlichen Möglichkeiten zur Visualisierung, insbesondere bei der graphischen Aufbereitung von Kurz- und Langzeitstatistiken bzw. Trends, das Entwicklerteam noch auflegen wird.+Obgleich es aktuell((Stand: November 2015)) nur eine Vorabversion eines [[centos:web_c7:icinga:web2|Icinga Web 2]] Moduls gibt, lohnt es sich doch einen Blick auf die Möglichkeiten von Graphite und Icinga Web 2 zu werfen. Es wird spannend werden, welche zusätzlichen Möglichkeiten zur Visualisierung, insbesondere bei der graphischen Aufbereitung von Kurz- und Langzeitstatistiken bzw. Trends, das Entwicklerteam noch auflegen wird.
  
 </WRAP> </WRAP>
Zeile 11: Zeile 11:
 ===== Installation ===== ===== Installation =====
 ==== Vorbereitung ==== ==== Vorbereitung ====
-Die einfachste und schnellste Variante bei der **[[centos:mailserver.guru|Installation]]** ist die aus dem Repository **[[centos:mailserver.guru|mailserver.guru]]**. Hier reicht ein einfacher Aufruf von **yum** und alles wird automatisch installiert. Etwaige Paketabhängigkeiten werden so automatisch aufgelöst und Paketupdates werden so, automatisch angeboten und müssen nicht extra manuell heruntergeladen werden.+Die einfachste und schnellste Variante bei der **[[centos:nausch.org|Installation]]** ist die aus dem Repository **[[centos:nausch.org|nausch.org]]**. Hier reicht ein einfacher Aufruf von **yum** und alles wird automatisch installiert. Etwaige Paketabhängigkeiten werden so automatisch aufgelöst und Paketupdates werden so, automatisch angeboten und müssen nicht extra manuell heruntergeladen werden.
  
 ==== Informationen ===== ==== Informationen =====
 Zum Erstellen und Einbinden der Graphen benötigen wir mehrere Programme und Daemons.  Zum Erstellen und Einbinden der Graphen benötigen wir mehrere Programme und Daemons. 
-  - **Generierung Performancedaten** \\ In Icinga Web 2 brauchen wir eine Möglichkeit, Performancedaten aus Icinga Web 2 zu erfassen und für die weitere Verarbeitung durch **Graphite** zur Verfügung zu stellen. Für diese Aufgabe benötigen wir das aktuelle Paket **python-carbon** aus dem Repository [[http://repo.mailserver.guru/7/os/x86_64/repoview/index.html|Mailserver.guru]]. \\ \\+  - **Generierung Performancedaten** \\ In Icinga Web 2 brauchen wir eine Möglichkeit, Performancedaten aus Icinga Web 2 zu erfassen und für die weitere Verarbeitung durch **Graphite** zur Verfügung zu stellen. Für diese Aufgabe benötigen wir das aktuelle Paket **python-carbon** aus dem Repository [[http://repo.nausch.org/7/os/x86_64/repoview/index.html|Mailserver.guru]]. \\ \\
   - **Datenbank(files)**    - **Datenbank(files)** 
-    - **Whisper** \\ Zum Abspeichern der Rohdaten, greifen wir auf **python-whisper** einer Datenbank-Engine für schnelle und zuverlässige Speicherung von Daten, ähnlich wie [[http://oss.oetiker.ch/rrdtool/|Thomas Oetiker's Round-Robin-Archive]] **RRD**-Tools. Auch dieses Paket beziehen wir aus dem Repository [[http://repo.mailserver.guru/7/os/x86_64/repoview/index.html|Mailserver.guru]].+    - **Whisper** \\ Zum Abspeichern der Rohdaten, greifen wir auf **python-whisper** einer Datenbank-Engine für schnelle und zuverlässige Speicherung von Daten, ähnlich wie [[http://oss.oetiker.ch/rrdtool/|Thomas Oetiker's Round-Robin-Archive]] **RRD**-Tools. Auch dieses Paket beziehen wir aus dem Repository [[http://repo.nausch.org/7/os/x86_64/repoview/index.html|Mailserver.guru]].
     - **MariaDB** \\ Zum Speichern der Konfigurationsdaten zu den Graphiken und Dashboards sowie der userspezifischen Einstellungen nutzen wir unsere MariaDB auf unserem Monitoring Host. \\ \\      - **MariaDB** \\ Zum Speichern der Konfigurationsdaten zu den Graphiken und Dashboards sowie der userspezifischen Einstellungen nutzen wir unsere MariaDB auf unserem Monitoring Host. \\ \\ 
-  - **Aufbereiten der Daten und Generierung der Graphiken** \\ Zum Aufbereiten der Rohdaten und zur Generierung der Statistik-Graphen bedienen wir uns des Projektes **[[http://graphite.readthedocs.org/en/latest/|Graphite]]**. Das passende RPM **graphite-web** stellt uns wiederum das Repository [[http://repo.mailserver.guru/7/os/x86_64/repoview/index.html|Mailserver.guru]] zur Verfügung. \\ \\ +  - **Aufbereiten der Daten und Generierung der Graphiken** \\ Zum Aufbereiten der Rohdaten und zur Generierung der Statistik-Graphen bedienen wir uns des Projektes **[[http://graphite.readthedocs.org/en/latest/|Graphite]]**. Das passende RPM **graphite-web** stellt uns wiederum das Repository [[http://repo.nausch.org/7/os/x86_64/repoview/index.html|Mailserver.guru]] zur Verfügung. \\ \\ 
   - **Icinga Web 2 Modul graphite** \\ Zum Einbinden der Echtzeitgraphiken in **Icinga Web 2** benötigen wir dann noch das Modul **icingaweb2-module-graphite**. Eine Vorabentwicklerversion laden holen wir uns direkt von der [[https://github.com/philiphoy/icingaweb2-module-graphite|GitHub]] Projektseite.   - **Icinga Web 2 Modul graphite** \\ Zum Einbinden der Echtzeitgraphiken in **Icinga Web 2** benötigen wir dann noch das Modul **icingaweb2-module-graphite**. Eine Vorabentwicklerversion laden holen wir uns direkt von der [[https://github.com/philiphoy/icingaweb2-module-graphite|GitHub]] Projektseite.
  
Zeile 55: Zeile 55:
 Build Host  : vml000200.dmz.nausch.org Build Host  : vml000200.dmz.nausch.org
 Relocations : (not relocatable) Relocations : (not relocatable)
-Packager    : Django <django@mailserver.guru>+Packager    : Django <django@nausch.org>
 URL         : https://github.com/graphite-project URL         : https://github.com/graphite-project
 Summary     : Back-end data caching and persistence daemon for Graphite Summary     : Back-end data caching and persistence daemon for Graphite
Zeile 213: Zeile 213:
 Build Host  : vml000200.dmz.nausch.org Build Host  : vml000200.dmz.nausch.org
 Relocations : (not relocatable) Relocations : (not relocatable)
-Packager    : Django <django@mailserver.guru>+Packager    : Django <django@nausch.org>
 URL         : https://github.com/graphite-project URL         : https://github.com/graphite-project
 Summary     : Simple database library for storing time-series data Summary     : Simple database library for storing time-series data
Zeile 267: Zeile 267:
 Build Host  : vml000200.dmz.nausch.org Build Host  : vml000200.dmz.nausch.org
 Relocations : (not relocatable) Relocations : (not relocatable)
-Packager    : Django <django@mailserver.guru>+Packager    : Django <django@nausch.org>
 URL         : https://github.com/graphite-project URL         : https://github.com/graphite-project
 Summary     : A Django web application for enterprise scalable realtime graphing Summary     : A Django web application for enterprise scalable realtime graphing
Zeile 1101: Zeile 1101:
 ===== Konfiguration ===== ===== Konfiguration =====
 ==== python-carbon ==== ==== python-carbon ====
 +=== carbon.conf ===
 Die Konfiguration von **python-carbon** erfolgt mit Hilfe der Konfigurationsdatei //**/etc/carbon/carbon.conf**//. Die Konfigurationsarbeit ist schnell erledigt, da wir uns auf das tägliche Logrotation beschränken können. Die Konfiguration von **python-carbon** erfolgt mit Hilfe der Konfigurationsdatei //**/etc/carbon/carbon.conf**//. Die Konfigurationsarbeit ist schnell erledigt, da wir uns auf das tägliche Logrotation beschränken können.
    # vim /etc/carbon/carbon.conf    # vim /etc/carbon/carbon.conf
Zeile 1515: Zeile 1516:
 # CARBON_METRIC_PREFIX = carbon # CARBON_METRIC_PREFIX = carbon
 # CARBON_METRIC_INTERVAL = 60</file> # CARBON_METRIC_INTERVAL = 60</file>
 +
 +=== storage-schemas.conf ===
 +Die Definition der Schematas der einzelnen //whisper-Dateien// erfolgt über die Datei //**/etc/carbon/storage-schemas.conf**//. Dort wir unter anderem die Retention der Dateien festgelegt. Unter Retension versteht man das Verdichten der Statistikdateien, ähnlich wie bei Tobias Oetiker's **[[http://oss.oetiker.ch/rrdtool/|RRDtools]]**, so sind z.B. bei der späteren Anzeige bei den Monatsgraphiken nicht mehr alle 1-Minuten Werte von Interesse, sondern berechnete Zwischenwerte.
 +
 +Ein weiterer wichtiger Punkt, ist die Reihenfolge der **Sectionen** in der Konfigurationsdatei. Der erste Bereich der zur definierten **Section** passt, gilt. Wir müssen also dafür Sorge tragen, dass unser **icinga2_default** in der Konfigurationsdatei steht bevor der Default-Eintrag **default_1min_for_1day** kommt. Würde dies nicht passen, würden später auf Grund fehlender verdichteter Daten keine Graphen für die Langzeitstatistiken generiert werden können. Wir öffnen also die Datei //**/etc/carbon/storage-schemas.conf**// kontrollieren und passend diese bei Bedarf an. 
 +   # vim /etc/carbon/storage-schemas.conf
 +<file bash /etc/carbon/storage-schemas.conf># Schema definitions for Whisper files. Entries are scanned in order,
 +# and first match wins. This file is scanned for changes every 60 seconds.
 +#
 +#  [name]
 +#  pattern = regex
 +#  retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...
 +
 +# Carbon's internal metrics. This entry should match what is specified in
 +# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
 +[carbon]
 +pattern = ^carbon\.
 +retentions = 60:90d
 +
 +[icinga2_default]
 +# intervals like PNP4Nagios uses them per default
 +pattern = ^icinga2\.
 +retentions = 1m:2d,5m:10d,30m:90d,360m:4y
 +
 +[default_1min_for_1day]
 +pattern = .*
 +retentions = 60s:1d
 +</file>
  
 ==== SQL-Datenbank ==== ==== SQL-Datenbank ====
Zeile 2131: Zeile 2160:
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-~~DISCUSSION~~ 
  
  • centos/web_c7/icinga/graphite.1448057082.txt.gz
  • Zuletzt geändert: 20.11.2015 22:04.
  • von django