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 [24.03.2015 18:47. ] – [icingaweb2] 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.  
 + 
 +\\
  
 <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>
  
 ===== Installation ===== ===== Installation =====
-Zum Erstellen und Einbinden der Graphen benötigen wir drei Dinge.  +==== Vorbereitung ==== 
-  - **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 Paket **python-carbon** welches wir aus dem Repository **[[centos:epel7|Epel]]** beziehen. +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. 
-  - **Aufbereiten der Daten und Generierung der Graphiken** \\ Zum Aufbereiten der Rohdaten und zur Generierung der Statistik-Graphen bedienen wir uns des Projektes **Graphite**. Das passende RPM stellt uns das Repository **[[http://repo.mailserver.guru/7/os/x86_64/repoview/index.html|Mailserver.guru]]** zur Verfügung. Zur Installation binden wir am besten das Repository ein, wie [[centos:mailserver.guru|hier]] beschrieben. Etwaige Paketabhängigkeiten werden so automatisch aufgelöst und Paketupdates werden so, automatisch angeboten und müssen nicht extra manuell heruntergeladen werden.+ 
 +==== Informationen ===== 
 +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.nausch.org/7/os/x86_64/repoview/index.html|Mailserver.guru]]. \\ \\ 
 +  - **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.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. \\ \\  
 +  - **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.
  
-Die Installation erfolgt unter CentOS 7 wie immer mit Hilfe von **YUM**.  +==== RPM-Pakete ==== 
-   # yum install python-whisper python-carbon graphite-web MySQL-python -y+Die Installation der oben genannten Punkte **1** bis **3** erfolgt unter CentOS 7 wie immer mit Hilfe von **YUM**.  
 +   # yum install python-whisper python-carbon graphite-web MySQL-python uwsgi-plugin-carbon -y
  
 +==== Download von icingaweb2-module-graphite ====
 Beim **Icinga Web 2**-Modul **icingaweb2-module-graphite** steht aktuell noch kein RPM zur Verfügung. Wir holen uns daher das aktuelle Vorabpaket direkt von der [[https://github.com/philiphoy/icingaweb2-module-graphite|GitHub]] Projektseite. Beim **Icinga Web 2**-Modul **icingaweb2-module-graphite** steht aktuell noch kein RPM zur Verfügung. Wir holen uns daher das aktuelle Vorabpaket direkt von der [[https://github.com/philiphoy/icingaweb2-module-graphite|GitHub]] Projektseite.
    # wget https://github.com/philiphoy/icingaweb2-module-graphite/archive/master.zip    # wget https://github.com/philiphoy/icingaweb2-module-graphite/archive/master.zip
  
 +==== Auspacken von  icingaweb2-module-graphite ====
 Dieses ZIP-Archiv entpacken wir nun an Ort und Stelle. Dieses ZIP-Archiv entpacken wir nun an Ort und Stelle.
    # unzip master.zip -d /usr/share/icingaweb2/modules    # unzip master.zip -d /usr/share/icingaweb2/modules
  
 Abschließend ändern wir dann nur noch den Verzeichnis-Namen. Abschließend ändern wir dann nur noch den Verzeichnis-Namen.
-   # mv /usr/share/icingaweb2/modules/icingaweb2-module-graphite-master/ /usr/share/icingaweb2/modules/graphite+   # mv /usr/share/icingaweb2/modules/icingaweb2-module-graphite-master/ /usr/share/icingaweb2/modules/graphite/
  
 ===== RPM-Inhalte ===== ===== RPM-Inhalte =====
Zeile 30: Zeile 42:
    # rpm -qil python-carbon    # rpm -qil python-carbon
  
-<code>Name        : python-carbon                                                               +<code>Name        : python-carbon 
-Version     : 0.9.12                                                                      +Version     : 0.9.14 
-Release     : 7.el7                                                                       +Release     : 1.el7.centos 
-Architecture: noarch                                                                      +Architecture: noarch 
-Install Date: Fri 20 Mar 2015 04:30:37 PM CET                                             +Install Date: Fri 20 Nov 2015 10:14:01 PM CET 
-Group       : System Environment/Daemons                                                  +Group       : System Environment/Daemons 
-Size        : 357115                                                                      +Size        : 372739 
-License     : ASL 2.0                                                                     +License     : ASL 2.0 
-Signature   : RSA/SHA256Tue 25 Nov 2014 07:05:51 PM CET, Key ID 6a2faea2352c64e5        +Signature   : RSA/SHA1Fri 20 Nov 2015 10:10:25 PM CET, Key ID 60ecfb9e8195aea0 
-Source RPM  : python-carbon-0.9.12-7.el7.src.rpm                                          +Source RPM  : python-carbon-0.9.14-1.el7.centos.src.rpm 
-Build Date  : Mon 24 Nov 2014 08:47:30 PM CET                                             +Build Date  : Fri 20 Nov 2015 10:10:13 PM CET 
-Build Host  : buildhw-06.phx2.fedoraproject.org                                           +Build Host  : vml000200.dmz.nausch.org 
-Relocations : (not relocatable)                                                           +Relocations : (not relocatable) 
-Packager    : Fedora Project                                                              +Packager    : Django <django@nausch.org> 
-Vendor      : Fedora Project                                                              +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                   +Description : 
-Description :                                                                             +Carbon is one of the components of Graphite, and is responsible for 
-Carbon is one of the components of Graphite, and is responsible for                       +receiving metrics over the network and writing them down to disk using 
-receiving metrics over the network and writing them down to disk using                    +a storage back-end. 
-a storage back-end.                                                                       +/etc/carbon 
-/etc/carbon                                                                               +/etc/carbon/carbon.conf 
-/etc/carbon/carbon.conf                                                                   +/etc/carbon/storage-schemas.conf 
-/etc/carbon/storage-schemas.conf                                                          +/etc/logrotate.d/python-carbon 
-/etc/logrotate.d/python-carbon                                                            +/usr/bin/carbon-aggregator 
-/usr/bin/carbon-aggregator                                                                +/usr/bin/carbon-cache 
-/usr/bin/carbon-cache                                                                     +/usr/bin/carbon-client 
-/usr/bin/carbon-client                                                                    +/usr/bin/carbon-relay 
-/usr/bin/carbon-relay                                                                     +/usr/bin/validate-storage-schemas 
-/usr/bin/validate-storage-schemas                                                         +/usr/lib/python2.7/site-packages/carbon 
-/usr/lib/python2.7/site-packages/carbon                                                   +/usr/lib/python2.7/site-packages/carbon-0.9.14-py2.7.egg-info 
-/usr/lib/python2.7/site-packages/carbon-0.9.12-py2.7.egg-info                             +/usr/lib/python2.7/site-packages/carbon/__init__.py 
-/usr/lib/python2.7/site-packages/carbon/__init__.py                                       +/usr/lib/python2.7/site-packages/carbon/__init__.pyc 
-/usr/lib/python2.7/site-packages/carbon/__init__.pyc                                      +/usr/lib/python2.7/site-packages/carbon/__init__.pyo 
-/usr/lib/python2.7/site-packages/carbon/__init__.pyo                                      +/usr/lib/python2.7/site-packages/carbon/aggregator 
-/usr/lib/python2.7/site-packages/carbon/aggregator                                        +/usr/lib/python2.7/site-packages/carbon/aggregator/__init__.py 
-/usr/lib/python2.7/site-packages/carbon/aggregator/__init__.py                            +/usr/lib/python2.7/site-packages/carbon/aggregator/__init__.pyc 
-/usr/lib/python2.7/site-packages/carbon/aggregator/__init__.pyc                           +/usr/lib/python2.7/site-packages/carbon/aggregator/__init__.pyo 
-/usr/lib/python2.7/site-packages/carbon/aggregator/__init__.pyo                           +/usr/lib/python2.7/site-packages/carbon/aggregator/buffers.py 
-/usr/lib/python2.7/site-packages/carbon/aggregator/buffers.py                             +/usr/lib/python2.7/site-packages/carbon/aggregator/buffers.pyc 
-/usr/lib/python2.7/site-packages/carbon/aggregator/buffers.pyc                            +/usr/lib/python2.7/site-packages/carbon/aggregator/buffers.pyo 
-/usr/lib/python2.7/site-packages/carbon/aggregator/buffers.pyo                            +/usr/lib/python2.7/site-packages/carbon/aggregator/receiver.py 
-/usr/lib/python2.7/site-packages/carbon/aggregator/receiver.py                            +/usr/lib/python2.7/site-packages/carbon/aggregator/receiver.pyc 
-/usr/lib/python2.7/site-packages/carbon/aggregator/receiver.pyc                           +/usr/lib/python2.7/site-packages/carbon/aggregator/receiver.pyo 
-/usr/lib/python2.7/site-packages/carbon/aggregator/receiver.pyo                           +/usr/lib/python2.7/site-packages/carbon/aggregator/rules.py 
-/usr/lib/python2.7/site-packages/carbon/aggregator/rules.py                               +/usr/lib/python2.7/site-packages/carbon/aggregator/rules.pyc 
-/usr/lib/python2.7/site-packages/carbon/aggregator/rules.pyc                              +/usr/lib/python2.7/site-packages/carbon/aggregator/rules.pyo 
-/usr/lib/python2.7/site-packages/carbon/aggregator/rules.pyo                              +/usr/lib/python2.7/site-packages/carbon/amqp0-8.xml 
-/usr/lib/python2.7/site-packages/carbon/amqp0-8.xml                                       +/usr/lib/python2.7/site-packages/carbon/amqp_listener.py 
-/usr/lib/python2.7/site-packages/carbon/amqp_listener.py                                  +/usr/lib/python2.7/site-packages/carbon/amqp_listener.pyc 
-/usr/lib/python2.7/site-packages/carbon/amqp_listener.pyc                                 +/usr/lib/python2.7/site-packages/carbon/amqp_listener.pyo 
-/usr/lib/python2.7/site-packages/carbon/amqp_listener.pyo                                 +/usr/lib/python2.7/site-packages/carbon/amqp_publisher.py 
-/usr/lib/python2.7/site-packages/carbon/amqp_publisher.py                                 +/usr/lib/python2.7/site-packages/carbon/amqp_publisher.pyc 
-/usr/lib/python2.7/site-packages/carbon/amqp_publisher.pyc                                +/usr/lib/python2.7/site-packages/carbon/amqp_publisher.pyo 
-/usr/lib/python2.7/site-packages/carbon/amqp_publisher.pyo                                +/usr/lib/python2.7/site-packages/carbon/cache.py 
-/usr/lib/python2.7/site-packages/carbon/cache.py                                          +/usr/lib/python2.7/site-packages/carbon/cache.pyc 
-/usr/lib/python2.7/site-packages/carbon/cache.pyc                                         +/usr/lib/python2.7/site-packages/carbon/cache.pyo 
-/usr/lib/python2.7/site-packages/carbon/cache.pyo                                         +/usr/lib/python2.7/site-packages/carbon/client.py 
-/usr/lib/python2.7/site-packages/carbon/client.py                                         +/usr/lib/python2.7/site-packages/carbon/client.pyc 
-/usr/lib/python2.7/site-packages/carbon/client.pyc                                        +/usr/lib/python2.7/site-packages/carbon/client.pyo 
-/usr/lib/python2.7/site-packages/carbon/client.pyo                                        +/usr/lib/python2.7/site-packages/carbon/conf.py 
-/usr/lib/python2.7/site-packages/carbon/conf.py                                           +/usr/lib/python2.7/site-packages/carbon/conf.pyc 
-/usr/lib/python2.7/site-packages/carbon/conf.pyc                                          +/usr/lib/python2.7/site-packages/carbon/conf.pyo 
-/usr/lib/python2.7/site-packages/carbon/conf.pyo                                          +/usr/lib/python2.7/site-packages/carbon/events.py 
-/usr/lib/python2.7/site-packages/carbon/events.py                                         +/usr/lib/python2.7/site-packages/carbon/events.pyc 
-/usr/lib/python2.7/site-packages/carbon/events.pyc                                        +/usr/lib/python2.7/site-packages/carbon/events.pyo 
-/usr/lib/python2.7/site-packages/carbon/events.pyo                                        +/usr/lib/python2.7/site-packages/carbon/exceptions.py 
-/usr/lib/python2.7/site-packages/carbon/exceptions.py                                     +/usr/lib/python2.7/site-packages/carbon/exceptions.pyc 
-/usr/lib/python2.7/site-packages/carbon/exceptions.pyc                                    +/usr/lib/python2.7/site-packages/carbon/exceptions.pyo 
-/usr/lib/python2.7/site-packages/carbon/exceptions.pyo                                    +/usr/lib/python2.7/site-packages/carbon/hashing.py 
-/usr/lib/python2.7/site-packages/carbon/hashing.py                                        +/usr/lib/python2.7/site-packages/carbon/hashing.pyc 
-/usr/lib/python2.7/site-packages/carbon/hashing.pyc                                       +/usr/lib/python2.7/site-packages/carbon/hashing.pyo 
-/usr/lib/python2.7/site-packages/carbon/hashing.pyo                                       +/usr/lib/python2.7/site-packages/carbon/instrumentation.py 
-/usr/lib/python2.7/site-packages/carbon/instrumentation.py                                +/usr/lib/python2.7/site-packages/carbon/instrumentation.pyc 
-/usr/lib/python2.7/site-packages/carbon/instrumentation.pyc                               +/usr/lib/python2.7/site-packages/carbon/instrumentation.pyo 
-/usr/lib/python2.7/site-packages/carbon/instrumentation.pyo                               +/usr/lib/python2.7/site-packages/carbon/log.py 
-/usr/lib/python2.7/site-packages/carbon/log.py                                            +/usr/lib/python2.7/site-packages/carbon/log.pyc 
-/usr/lib/python2.7/site-packages/carbon/log.pyc                                           +/usr/lib/python2.7/site-packages/carbon/log.pyo 
-/usr/lib/python2.7/site-packages/carbon/log.pyo                                           +/usr/lib/python2.7/site-packages/carbon/management.py 
-/usr/lib/python2.7/site-packages/carbon/management.py                                     +/usr/lib/python2.7/site-packages/carbon/management.pyc 
-/usr/lib/python2.7/site-packages/carbon/management.pyc                                    +/usr/lib/python2.7/site-packages/carbon/management.pyo 
-/usr/lib/python2.7/site-packages/carbon/management.pyo                                    +/usr/lib/python2.7/site-packages/carbon/manhole.py 
-/usr/lib/python2.7/site-packages/carbon/manhole.py                                        +/usr/lib/python2.7/site-packages/carbon/manhole.pyc 
-/usr/lib/python2.7/site-packages/carbon/manhole.pyc                                       +/usr/lib/python2.7/site-packages/carbon/manhole.pyo 
-/usr/lib/python2.7/site-packages/carbon/manhole.pyo                                       +/usr/lib/python2.7/site-packages/carbon/protocols.py 
-/usr/lib/python2.7/site-packages/carbon/protocols.py                                      +/usr/lib/python2.7/site-packages/carbon/protocols.pyc 
-/usr/lib/python2.7/site-packages/carbon/protocols.pyc                                     +/usr/lib/python2.7/site-packages/carbon/protocols.pyo 
-/usr/lib/python2.7/site-packages/carbon/protocols.pyo                                     +/usr/lib/python2.7/site-packages/carbon/regexlist.py 
-/usr/lib/python2.7/site-packages/carbon/regexlist.py                                      +/usr/lib/python2.7/site-packages/carbon/regexlist.pyc 
-/usr/lib/python2.7/site-packages/carbon/regexlist.pyc                                     +/usr/lib/python2.7/site-packages/carbon/regexlist.pyo 
-/usr/lib/python2.7/site-packages/carbon/regexlist.pyo                                     +/usr/lib/python2.7/site-packages/carbon/relayrules.py 
-/usr/lib/python2.7/site-packages/carbon/relayrules.py                                     +/usr/lib/python2.7/site-packages/carbon/relayrules.pyc 
-/usr/lib/python2.7/site-packages/carbon/relayrules.pyc                                    +/usr/lib/python2.7/site-packages/carbon/relayrules.pyo
-/usr/lib/python2.7/site-packages/carbon/relayrules.pyo                                   +
 /usr/lib/python2.7/site-packages/carbon/rewrite.py /usr/lib/python2.7/site-packages/carbon/rewrite.py
 /usr/lib/python2.7/site-packages/carbon/rewrite.pyc /usr/lib/python2.7/site-packages/carbon/rewrite.pyc
Zeile 159: Zeile 170:
 /usr/lib/systemd/system/carbon-cache.service /usr/lib/systemd/system/carbon-cache.service
 /usr/lib/systemd/system/carbon-relay.service /usr/lib/systemd/system/carbon-relay.service
-/usr/share/doc/python-carbon-0.9.12 +/usr/share/doc/python-carbon-0.9.14 
-/usr/share/doc/python-carbon-0.9.12/LICENSE +/usr/share/doc/python-carbon-0.9.14/README.md 
-/usr/share/doc/python-carbon-0.9.12/README.md +/usr/share/doc/python-carbon-0.9.14/conf 
-/usr/share/doc/python-carbon-0.9.12/conf +/usr/share/doc/python-carbon-0.9.14/conf/aggregation-rules.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/aggregation-rules.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/blacklist.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/blacklist.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/carbon.amqp.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/carbon.amqp.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/carbon.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/carbon.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/relay-rules.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/relay-rules.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/rewrite-rules.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/rewrite-rules.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/storage-aggregation.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/storage-aggregation.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/storage-schemas.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/storage-schemas.conf.example +/usr/share/doc/python-carbon-0.9.14/conf/whitelist.conf.example 
-/usr/share/doc/python-carbon-0.9.12/conf/whitelist.conf.example +/usr/share/doc/python-carbon-0.9.14/examples 
-/usr/share/doc/python-carbon-0.9.12/examples +/usr/share/doc/python-carbon-0.9.14/examples/example-client.py 
-/usr/share/doc/python-carbon-0.9.12/examples/example-client.py+/usr/share/licenses/python-carbon-0.9.14 
 +/usr/share/licenses/python-carbon-0.9.14/LICENSE
 /usr/share/man/man1/carbon-aggregator.1.gz /usr/share/man/man1/carbon-aggregator.1.gz
 /usr/share/man/man1/carbon-cache.1.gz /usr/share/man/man1/carbon-cache.1.gz
Zeile 183: Zeile 195:
 /var/lib/carbon/rrd /var/lib/carbon/rrd
 /var/lib/carbon/whisper /var/lib/carbon/whisper
-/var/log/carbon +/var/log/carbon</code>
-</code>+
  
 +==== python-whisper ====
 +   # rpm -qil python-whisper
 +
 +<code>Name        : python-whisper
 +Version     : 0.9.14
 +Release     : 1.el7.centos
 +Architecture: noarch
 +Install Date: Fri 20 Nov 2015 09:46:35 PM CET
 +Group       : Development/Libraries
 +Size        : 131480
 +License     : ASL 2.0
 +Signature   : RSA/SHA1, Fri 20 Nov 2015 09:40:04 PM CET, Key ID 60ecfb9e8195aea0
 +Source RPM  : python-whisper-0.9.14-1.el7.centos.src.rpm
 +Build Date  : Fri 20 Nov 2015 09:39:52 PM CET
 +Build Host  : vml000200.dmz.nausch.org
 +Relocations : (not relocatable)
 +Packager    : Django <django@nausch.org>
 +URL         : https://github.com/graphite-project
 +Summary     : Simple database library for storing time-series data
 +Description :
 +Whisper is a fixed-size database, similar in design and purpose to RRD
 +(round-robin-database). It provides fast, reliable storage of numeric
 +data over time. Whisper allows for higher resolution (seconds per point)
 +of recent data to degrade into lower resolutions for long-term retention
 +of historical data.
 +/usr/bin/rrd2whisper
 +/usr/bin/whisper-create
 +/usr/bin/whisper-diff
 +/usr/bin/whisper-dump
 +/usr/bin/whisper-fetch
 +/usr/bin/whisper-fill
 +/usr/bin/whisper-info
 +/usr/bin/whisper-merge
 +/usr/bin/whisper-resize
 +/usr/bin/whisper-set-aggregation-method
 +/usr/bin/whisper-update
 +/usr/lib/python2.7/site-packages/whisper-0.9.14-py2.7.egg-info
 +/usr/lib/python2.7/site-packages/whisper.py
 +/usr/lib/python2.7/site-packages/whisper.pyc
 +/usr/lib/python2.7/site-packages/whisper.pyo
 +/usr/share/doc/python-whisper-0.9.14
 +/usr/share/doc/python-whisper-0.9.14/README.md
 +/usr/share/licenses/python-whisper-0.9.14
 +/usr/share/licenses/python-whisper-0.9.14/LICENSE
 +/usr/share/man/man1/rrd2whisper.1.gz
 +/usr/share/man/man1/whisper-create.1.gz
 +/usr/share/man/man1/whisper-dump.1.gz
 +/usr/share/man/man1/whisper-fetch.1.gz
 +/usr/share/man/man1/whisper-fill.1.gz
 +/usr/share/man/man1/whisper-info.1.gz
 +/usr/share/man/man1/whisper-merge.1.gz
 +/usr/share/man/man1/whisper-resize.1.gz
 +/usr/share/man/man1/whisper-set-aggregation-method.1.gz
 +/usr/share/man/man1/whisper-update.1.gz</code>
 ==== graphite-web ==== ==== graphite-web ====
    # rpm -qil graphite-web    # rpm -qil graphite-web
  
 <code>Name        : graphite-web <code>Name        : graphite-web
-Version     : 0.9.12+Version     : 0.9.14
 Release     : 1.el7.centos Release     : 1.el7.centos
 Architecture: noarch Architecture: noarch
-Install Date: Fri 20 Mar 2015 04:30:33 PM CET+Install Date: Fri 20 Nov 2015 09:46:40 PM CET
 Group       : Applications/Internet Group       : Applications/Internet
-Size        : 9298581+Size        : 9170954
 License     : ASL 2.0 License     : ASL 2.0
-Signature   : RSA/SHA1, Fri 20 Mar 2015 03:13:41 PM CET, Key ID 60ecfb9e8195aea0 +Signature   : RSA/SHA1, Fri 20 Nov 2015 09:26:59 PM CET, Key ID 60ecfb9e8195aea0 
-Source RPM  : graphite-web-0.9.12-1.el7.centos.src.rpm +Source RPM  : graphite-web-0.9.14-1.el7.centos.src.rpm 
-Build Date  : Fri 20 Mar 2015 03:13:26 PM CET+Build Date  : Fri 20 Nov 2015 09:26:34 PM CET
 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 322: Zeile 387:
 /usr/lib/python2.7/site-packages/graphite/events/views.pyc /usr/lib/python2.7/site-packages/graphite/events/views.pyc
 /usr/lib/python2.7/site-packages/graphite/events/views.pyo /usr/lib/python2.7/site-packages/graphite/events/views.pyo
-/usr/lib/python2.7/site-packages/graphite/graphlot 
-/usr/lib/python2.7/site-packages/graphite/graphlot/__init__.py 
-/usr/lib/python2.7/site-packages/graphite/graphlot/__init__.pyc 
-/usr/lib/python2.7/site-packages/graphite/graphlot/__init__.pyo 
-/usr/lib/python2.7/site-packages/graphite/graphlot/urls.py 
-/usr/lib/python2.7/site-packages/graphite/graphlot/urls.pyc 
-/usr/lib/python2.7/site-packages/graphite/graphlot/urls.pyo 
-/usr/lib/python2.7/site-packages/graphite/graphlot/views.py 
-/usr/lib/python2.7/site-packages/graphite/graphlot/views.pyc 
-/usr/lib/python2.7/site-packages/graphite/graphlot/views.pyo 
 /usr/lib/python2.7/site-packages/graphite/local_settings.py /usr/lib/python2.7/site-packages/graphite/local_settings.py
 /usr/lib/python2.7/site-packages/graphite/local_settings.py.example /usr/lib/python2.7/site-packages/graphite/local_settings.py.example
Zeile 407: Zeile 462:
 /usr/lib/python2.7/site-packages/graphite/templates/event.html /usr/lib/python2.7/site-packages/graphite/templates/event.html
 /usr/lib/python2.7/site-packages/graphite/templates/events.html /usr/lib/python2.7/site-packages/graphite/templates/events.html
-/usr/lib/python2.7/site-packages/graphite/templates/graphlot.html 
 /usr/lib/python2.7/site-packages/graphite/templates/login.html /usr/lib/python2.7/site-packages/graphite/templates/login.html
 /usr/lib/python2.7/site-packages/graphite/templates/version.html /usr/lib/python2.7/site-packages/graphite/templates/version.html
 +/usr/lib/python2.7/site-packages/graphite/url_shortener
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/__init__.py
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/__init__.pyc
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/__init__.pyo
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/baseconv.py
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/baseconv.pyc
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/baseconv.pyo
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/models.py
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/models.pyc
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/models.pyo
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/views.py
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/views.pyc
 +/usr/lib/python2.7/site-packages/graphite/url_shortener/views.pyo
 /usr/lib/python2.7/site-packages/graphite/urls.py /usr/lib/python2.7/site-packages/graphite/urls.py
 /usr/lib/python2.7/site-packages/graphite/urls.pyc /usr/lib/python2.7/site-packages/graphite/urls.pyc
Zeile 439: Zeile 506:
 /usr/lib/python2.7/site-packages/graphite/whitelist/views.pyc /usr/lib/python2.7/site-packages/graphite/whitelist/views.pyc
 /usr/lib/python2.7/site-packages/graphite/whitelist/views.pyo /usr/lib/python2.7/site-packages/graphite/whitelist/views.pyo
-/usr/lib/python2.7/site-packages/graphite_web-0.9.12-py2.7.egg-info +/usr/lib/python2.7/site-packages/graphite_web-0.9.14-py2.7.egg-info 
-/usr/share/doc/graphite-web-0.9.12 +/usr/share/doc/graphite-web-0.9.14 
-/usr/share/doc/graphite-web-0.9.12/LICENSE +/usr/share/doc/graphite-web-0.9.14/README.fedora 
-/usr/share/doc/graphite-web-0.9.12/README.fedora +/usr/share/doc/graphite-web-0.9.14/dashboard.conf.example 
-/usr/share/doc/graphite-web-0.9.12/dashboard.conf.example +/usr/share/doc/graphite-web-0.9.14/example-client.py 
-/usr/share/doc/graphite-web-0.9.12/example-client.py +/usr/share/doc/graphite-web-0.9.14/example-graphite-vhost.conf 
-/usr/share/doc/graphite-web-0.9.12/example-graphite-vhost.conf +/usr/share/doc/graphite-web-0.9.14/graphTemplates.conf.example 
-/usr/share/doc/graphite-web-0.9.12/graphTemplates.conf.example +/usr/share/doc/graphite-web-0.9.14/graphite.wsgi.example
-/usr/share/doc/graphite-web-0.9.12/graphite.wsgi.example+
 /usr/share/graphite /usr/share/graphite
 /usr/share/graphite/graphite-web.wsgi /usr/share/graphite/graphite-web.wsgi
Zeile 489: Zeile 555:
 /usr/share/graphite/webapp/content/css/default/top_mid.gif /usr/share/graphite/webapp/content/css/default/top_mid.gif
 /usr/share/graphite/webapp/content/css/default/top_right.gif /usr/share/graphite/webapp/content/css/default/top_right.gif
-/usr/share/graphite/webapp/content/css/jquery.autocomplete.css 
 /usr/share/graphite/webapp/content/css/table.css /usr/share/graphite/webapp/content/css/table.css
 /usr/share/graphite/webapp/content/html /usr/share/graphite/webapp/content/html
Zeile 496: Zeile 561:
 /usr/share/graphite/webapp/content/html/timeHelp.html /usr/share/graphite/webapp/content/html/timeHelp.html
 /usr/share/graphite/webapp/content/img /usr/share/graphite/webapp/content/img
-/usr/share/graphite/webapp/content/img/I.gif 
-/usr/share/graphite/webapp/content/img/L.gif 
-/usr/share/graphite/webapp/content/img/Lminus.gif 
-/usr/share/graphite/webapp/content/img/Lplus.gif 
-/usr/share/graphite/webapp/content/img/T.gif 
-/usr/share/graphite/webapp/content/img/Tminus.gif 
-/usr/share/graphite/webapp/content/img/Tplus.gif 
-/usr/share/graphite/webapp/content/img/arrow1.gif 
 /usr/share/graphite/webapp/content/img/blank.gif /usr/share/graphite/webapp/content/img/blank.gif
-/usr/share/graphite/webapp/content/img/calBt.gif+/usr/share/graphite/webapp/content/img/calendar.png
 /usr/share/graphite/webapp/content/img/carbon-fiber.png /usr/share/graphite/webapp/content/img/carbon-fiber.png
 +/usr/share/graphite/webapp/content/img/clock.png
 /usr/share/graphite/webapp/content/img/clock_16.png /usr/share/graphite/webapp/content/img/clock_16.png
-/usr/share/graphite/webapp/content/img/delete.gif 
-/usr/share/graphite/webapp/content/img/error.png 
-/usr/share/graphite/webapp/content/img/folder.png 
 /usr/share/graphite/webapp/content/img/graphite.png /usr/share/graphite/webapp/content/img/graphite.png
 /usr/share/graphite/webapp/content/img/graphite_short.png /usr/share/graphite/webapp/content/img/graphite_short.png
-/usr/share/graphite/webapp/content/img/indicator.png 
 /usr/share/graphite/webapp/content/img/leaf.gif /usr/share/graphite/webapp/content/img/leaf.gif
-/usr/share/graphite/webapp/content/img/line_chart.png 
 /usr/share/graphite/webapp/content/img/mini-bottom2.gif /usr/share/graphite/webapp/content/img/mini-bottom2.gif
 /usr/share/graphite/webapp/content/img/mini-top2.gif /usr/share/graphite/webapp/content/img/mini-top2.gif
-/usr/share/graphite/webapp/content/img/save.gif +/usr/share/graphite/webapp/content/img/overview.png 
-/usr/share/graphite/webapp/content/img/searching.gif +/usr/share/graphite/webapp/content/img/refresh.png 
-/usr/share/graphite/webapp/content/img/updateGraph.gif+/usr/share/graphite/webapp/content/img/save.png 
 +/usr/share/graphite/webapp/content/img/share.png 
 +/usr/share/graphite/webapp/content/img/trash.png 
 +/usr/share/graphite/webapp/content/img/upload.png
 /usr/share/graphite/webapp/content/js /usr/share/graphite/webapp/content/js
 /usr/share/graphite/webapp/content/js/ace /usr/share/graphite/webapp/content/js/ace
Zeile 1026: Zeile 1082:
 /usr/share/graphite/webapp/content/js/ext/ux /usr/share/graphite/webapp/content/js/ext/ux
 /usr/share/graphite/webapp/content/js/ext/ux/DataViewTransition.js /usr/share/graphite/webapp/content/js/ext/ux/DataViewTransition.js
-/usr/share/graphite/webapp/content/js/jquery.autocomplete.js 
-/usr/share/graphite/webapp/content/js/jquery.flot.crosshair.js 
-/usr/share/graphite/webapp/content/js/jquery.flot.js 
-/usr/share/graphite/webapp/content/js/jquery.flot.selection.js 
-/usr/share/graphite/webapp/content/js/jquery.graphite.js 
-/usr/share/graphite/webapp/content/js/jquery.js 
 /usr/share/graphite/webapp/content/js/scriptaculous /usr/share/graphite/webapp/content/js/scriptaculous
 /usr/share/graphite/webapp/content/js/scriptaculous/builder.js /usr/share/graphite/webapp/content/js/scriptaculous/builder.js
Zeile 1044: Zeile 1094:
 /usr/share/graphite/webapp/content/js/window/window.js /usr/share/graphite/webapp/content/js/window/window.js
 /usr/share/graphite/webapp/content/js/window/window_effects.js /usr/share/graphite/webapp/content/js/window/window_effects.js
 +/usr/share/licenses/graphite-web-0.9.14
 +/usr/share/licenses/graphite-web-0.9.14/LICENSE
 /var/lib/graphite-web /var/lib/graphite-web
-/var/log/graphite-web +/var/log/graphite-web</code>
-</code>+
  
 ===== 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
  
-<file python /etc/carbon/carbon.conf>[cache]                                                                                                                                                                           +<file python /etc/carbon/carbon.conf>[cache] 
-# Configure carbon directories.                                                                                                                                                   +# Configure carbon directories. 
-                                                                                                                                                                                +
-# OS environment variables can be used to tell carbon where graphite is                                                                                                           +# OS environment variables can be used to tell carbon where graphite is 
-# installed, where to read configuration from and where to write data.                                                                                                            +# installed, where to read configuration from and where to write data. 
-                                                                                                                                                                                +
-#   GRAPHITE_ROOT        - Root directory of the graphite installation.                                                                                                           +#   GRAPHITE_ROOT        - Root directory of the graphite installation. 
-#                          Defaults to ../                                                                                                                                       +#                          Defaults to ../
 #   GRAPHITE_CONF_DIR    - Configuration directory (where this file lives). #   GRAPHITE_CONF_DIR    - Configuration directory (where this file lives).
 #                          Defaults to $GRAPHITE_ROOT/conf/ #                          Defaults to $GRAPHITE_ROOT/conf/
-#   GRAPHITE_STORAGE_DIR - Storage directory for whipser/rrd/log/pid files.+#   GRAPHITE_STORAGE_DIR - Storage directory for whisper/rrd/log/pid files.
 #                          Defaults to $GRAPHITE_ROOT/storage/ #                          Defaults to $GRAPHITE_ROOT/storage/
 # #
Zeile 1092: Zeile 1144:
 PID_DIR        = /var/run/ PID_DIR        = /var/run/
  
-# Enable daily log rotation. If disabled, a kill -HUP can be used after a manual rotate +# Enable daily log rotation. If disabled, carbon will automatically re-open 
-# Django : 2015-03-20 +# the file if it's rotated out of place (e.g. by logrotate daemon) 
-# default: ENABLE_LOGROTATION = False+# Django : 2015-11-20 
 +# default: ENABLE_LOGROTATION = False 
 ENABLE_LOGROTATION = True ENABLE_LOGROTATION = True
  
Zeile 1120: Zeile 1173:
 # stop/shutdown is initiated.  This helps when MAX_UPDATES_PER_SECOND is # stop/shutdown is initiated.  This helps when MAX_UPDATES_PER_SECOND is
 # relatively low and carbon has cached a lot of updates; it enables the carbon # relatively low and carbon has cached a lot of updates; it enables the carbon
-# daemon to shutdown more quickly. +# daemon to shutdown more quickly.
 # MAX_UPDATES_PER_SECOND_ON_SHUTDOWN = 1000 # MAX_UPDATES_PER_SECOND_ON_SHUTDOWN = 1000
  
 # Softly limits the number of whisper files that get created each minute. # Softly limits the number of whisper files that get created each minute.
-# Setting this value low (like at 50) is a good way to ensure your graphite+# Setting this value low (e.g. 50) is a good way to ensure that your carbon
 # system will not be adversely impacted when a bunch of new metrics are # system will not be adversely impacted when a bunch of new metrics are
-# sent to it. The trade off is that it will take much longer for those metrics' +# sent to it. The trade off is that any metrics received in excess of this 
-database files to all get created and thus longer until the data becomes usable. +value will be silently dropped, and the whisper file will not be created 
-# Setting this value high (like "inf" for infinity) will cause graphite to create +until such point as a subsequent metric is received and fits within the 
-the files quickly but at the risk of slowing I/O down considerably for a while.+defined rate limit. Setting this value high (like "inf" for infinity) will 
 +cause carbon to create the files quickly but at the risk of increased I/O.
 MAX_CREATES_PER_MINUTE = 50 MAX_CREATES_PER_MINUTE = 50
  
 +# Set the interface and port for the line (plain text) listener.  Setting the
 +# interface to 0.0.0.0 listens on all interfaces.  Port can be set to 0 to
 +# disable this listener if it is not required.
 LINE_RECEIVER_INTERFACE = 0.0.0.0 LINE_RECEIVER_INTERFACE = 0.0.0.0
 LINE_RECEIVER_PORT = 2003 LINE_RECEIVER_PORT = 2003
 +
 +# Set the TCP backlog for the listen socket created by the line receiver. You
 +# shouldn't change this unless you know what you're doing.
 +# LINE_RECEIVER_BACKLOG = 1024
  
 # Set this to True to enable the UDP listener. By default this is off # Set this to True to enable the UDP listener. By default this is off
Zeile 1142: Zeile 1203:
 UDP_RECEIVER_PORT = 2003 UDP_RECEIVER_PORT = 2003
  
 +# Set the interface and port for the pickle listener.  Setting the interface to
 +# 0.0.0.0 listens on all interfaces.  Port can be set to 0 to disable this
 +# listener if it is not required.
 PICKLE_RECEIVER_INTERFACE = 0.0.0.0 PICKLE_RECEIVER_INTERFACE = 0.0.0.0
 PICKLE_RECEIVER_PORT = 2004 PICKLE_RECEIVER_PORT = 2004
 +
 +# Set the TCP backlog for the listen socket created by the pickle receiver. You
 +# shouldn't change this unless you know what you're doing.
 +# PICKLE_RECEIVER_BACKLOG = 1024
  
 # Set to false to disable logging of successful connections # Set to false to disable logging of successful connections
Zeile 1155: Zeile 1223:
 CACHE_QUERY_INTERFACE = 0.0.0.0 CACHE_QUERY_INTERFACE = 0.0.0.0
 CACHE_QUERY_PORT = 7002 CACHE_QUERY_PORT = 7002
 +
 +# Set the TCP backlog for the listen socket created by the cache query
 +# listener. You shouldn't change this unless you know what you're doing.
 +# CACHE_QUERY_BACKLOG = 1024
  
 # Set this to False to drop datapoints received after the cache # Set this to False to drop datapoints received after the cache
Zeile 1306: Zeile 1378:
 # datapoint to more than one machine. # datapoint to more than one machine.
 REPLICATION_FACTOR = 1 REPLICATION_FACTOR = 1
 +
 +# For REPLICATION_FACTOR >=2, set DIVERSE_REPLICAS to True to guarantee replicas
 +# across distributed hosts. With this setting disabled, it's possible that replicas
 +# may be sent to different caches on the same host. This has been the default 
 +# behavior since introduction of 'consistent-hashing' relay method.
 +# Note that enabling this on an existing pre-0.9.14 cluster will require rebalancing
 +# your metrics across the cluster nodes using a tool like Carbonate.
 +#DIVERSE_REPLICAS = False
  
 # This is a list of carbon daemons we will send any relayed or # This is a list of carbon daemons we will send any relayed or
Zeile 1329: Zeile 1409:
 MAX_DATAPOINTS_PER_MESSAGE = 500 MAX_DATAPOINTS_PER_MESSAGE = 500
 MAX_QUEUE_SIZE = 10000 MAX_QUEUE_SIZE = 10000
 +
 +# This is the percentage that the queue must be empty before it will accept
 +# more messages.  For a larger site, if the queue is very large it makes sense
 +# to tune this to allow for incoming stats.  So if you have an average
 +# flow of 100k stats/minute, and a MAX_QUEUE_SIZE of 3,000,000, it makes sense
 +# to allow stats to start flowing when you've cleared the queue to 95% since
 +# you should have space to accommodate the next minute's worth of stats
 +# even before the relay incrementally clears more of the queue
 +QUEUE_LOW_WATERMARK_PCT = 0.8
  
 # Set this to False to drop datapoints when any send queue (sending datapoints # Set this to False to drop datapoints when any send queue (sending datapoints
 # to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the # to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the
 # default) then sockets over which metrics are received will temporarily stop accepting # default) then sockets over which metrics are received will temporarily stop accepting
-# data until the send queues fall below 80% MAX_QUEUE_SIZE.+# data until the send queues fall below QUEUE_LOW_WATERMARK_PCT * MAX_QUEUE_SIZE.
 USE_FLOW_CONTROL = True USE_FLOW_CONTROL = True
  
Zeile 1360: Zeile 1449:
 # If set true, metric received will be forwarded to DESTINATIONS in addition to # If set true, metric received will be forwarded to DESTINATIONS in addition to
 # the output of the aggregation rules. If set false the carbon-aggregator will # the output of the aggregation rules. If set false the carbon-aggregator will
-# only ever send the output of aggregation. +# only ever send the output of aggregation. Default value is set to false and will not forward 
-FORWARD_ALL = True+FORWARD_ALL = False 
 + 
 +# Filenames of the configuration files to use for this instance of aggregator. 
 +# Filenames are relative to CONF_DIR. 
 +
 +# AGGREGATION_RULES = aggregation-rules.conf 
 +# REWRITE_RULES = rewrite-rules.conf
  
 # This is a list of carbon daemons we will send any relayed or # This is a list of carbon daemons we will send any relayed or
Zeile 1369: Zeile 1464:
 # #
 # DESTINATIONS = 127.0.0.1:2004:a, 127.0.0.1:2104:b # DESTINATIONS = 127.0.0.1:2004:a, 127.0.0.1:2104:b
-+#
 # The format is comma-delimited IP:PORT:INSTANCE where the :INSTANCE part is # The format is comma-delimited IP:PORT:INSTANCE where the :INSTANCE part is
 # optional and refers to the "None" instance if omitted. # optional and refers to the "None" instance if omitted.
Zeile 1420: Zeile 1515:
 # seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation # seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
 # CARBON_METRIC_PREFIX = carbon # CARBON_METRIC_PREFIX = carbon
-# CARBON_METRIC_INTERVAL = 60+# 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> </file>
  
 ==== SQL-Datenbank ==== ==== SQL-Datenbank ====
-Zum Speichern der Graphiken, Dashboards und userspezifische Einstellungen nutzen wir unsere MariaDB auf unserem Monitoring Host. Die Installation und Grundkonfiguration der Datenbank ist in diesem  [[centos:mariadb|Kapitel]] ausführlich beschrieben.+Zum Speichern der Konfigurationsdaten zu den Graphiken und Dashboards sowie der userspezifischen Einstellungen nutzen wir unsere MariaDB auf unserem Monitoring Host. Die Installation und Grundkonfiguration der Datenbank ist in diesem  [[centos:mariadb|Kapitel]] ausführlich beschrieben.
  
 Im **RPM** von **graphite-web** werden bei der Installation die notwendigen Datenbanktabellen-Definitionen mitgeliefert. Damit wir diese anlegen können benötigen wir noch drei Dinge, nämlich Im **RPM** von **graphite-web** werden bei der Installation die notwendigen Datenbanktabellen-Definitionen mitgeliefert. Damit wir diese anlegen können benötigen wir noch drei Dinge, nämlich
Zeile 1454: Zeile 1576:
   - **Datenbankverbindung beenden** \\ Unsere Konfiguration unseres neuen Datenbanknutzers ist hiermit beendet und wir können die Verbindung zur Datenbank wieder schließen. \\ \\ <code>MariaDB> exit</code><code>Bye</code>   - **Datenbankverbindung beenden** \\ Unsere Konfiguration unseres neuen Datenbanknutzers ist hiermit beendet und wir können die Verbindung zur Datenbank wieder schließen. \\ \\ <code>MariaDB> exit</code><code>Bye</code>
  
-\\ +Zum Schluß testen wir noch, ob sich der User **graphite_user** erfolgreich an unserer MariaDB anmelden kann
-Da die Vorbereitungen nun abgeschlossen sind, können wir nun daran machen in unserer Datenbank **graphite** mit Leben zu erfüllen. Das Anlegen der Tabellen anzulegen erfolgt mit folgendem Befehl+   # mysql -h localhost -D graphite -u graphite_user -p 
-   # /usr/lib/python*/site-packages/graphite/manage.py syncdb+<code>Enter password: 
 +Reading table information for completion of table and column names 
 +You can turn off this feature to get a quicker startup with -A
  
-<code>/usr/lib/python2.7/site-packages/graphite/settings.py:231: UserWarning: SECRET_KEY is set to an unsafe defaultThis should be set in local_settings.py for better security +Welcome to the MariaDB monitor Commands end with ; or \g
-  warn('SECRET_KEY is set to an unsafe default. This should be set in local_settings.py for better security') +Your MariaDB connection id is 208832 
-Creating tables ..+Server version: 5.5.44-MariaDB MariaDB Server
-Creating table account_profile +
-Creating table account_variable +
-Creating table account_view +
-Creating table account_window +
-Creating table account_mygraph +
-Creating table dashboard_dashboard_owners +
-Creating table dashboard_dashboard +
-Creating table events_event +
-Creating table auth_permission +
-Creating table auth_group_permissions +
-Creating table auth_group +
-Creating table auth_user_groups +
-Creating table auth_user_user_permissions +
-Creating table auth_user +
-Creating table django_session +
-Creating table django_admin_log +
-Creating table django_content_type +
-Creating table tagging_tag +
-Creating table tagging_taggeditem+
  
-You just installed Django's auth systemwhich means you don't have any superusers defined+Copyright (c) 20002015, Oracle, MariaDB Corporation Ab and others
-Would you like to create one now? (yes/no): yes + 
-Username (leave blank to use 'root'): django +Type 'help;or '\h' for helpType '\c' to clear the current input statement
-Email address: django@nausch.org + 
-Password:  +MariaDB [graphite]> quit 
-Password (again):  +Bye</code>
-Superuser created successfully+
-Installing custom SQL ... +
-Installing indexes ... +
-Installed 0 object(s) from 0 fixture(s) +
-</code>+
  
 ==== graphite-web ==== ==== graphite-web ====
Zeile 1732: Zeile 1832:
  
 </file> </file>
 +
 +==== Whisper DB ====
 +Da die Vorbereitungen nun abgeschlossen sind, können wir nun daran machen in unserer Whisper-Datenbank **graphite** mit Leben zu erfüllen. Das Anlegen der Tabellen anzulegen erfolgt mit folgendem Befehl.
 +   # /usr/lib/python*/site-packages/graphite/manage.py syncdb
 +
 +<code>Creating tables ...
 +Creating table account_profile
 +Creating table account_variable
 +Creating table account_view
 +Creating table account_window
 +Creating table account_mygraph
 +Creating table dashboard_dashboard_owners
 +Creating table dashboard_dashboard
 +Creating table events_event
 +Creating table auth_permission
 +Creating table auth_group_permissions
 +Creating table auth_group
 +Creating table auth_user_groups
 +Creating table auth_user_user_permissions
 +Creating table auth_user
 +Creating table django_session
 +Creating table django_admin_log
 +Creating table django_content_type
 +Creating table tagging_tag
 +Creating table tagging_taggeditem
 +
 +You just installed Django's auth system, which means you don't have any superusers defined.
 +Would you like to create one now? (yes/no): yes
 +Username (leave blank to use 'root'): django
 +Email address: django@nausch.org
 +Password: 
 +Password (again): 
 +Superuser created successfully.
 +Installing custom SQL ...
 +Installing indexes ...
 +Installed 0 object(s) from 0 fixture(s)
 +</code>
 +
 +==== Apache vHost ====
 +Für den Einsatz des Apache Webserver wird bei der Installation des RPM-Paketes bereits eine ausreichende Konfigurationsdatei mitgeliefert. Sofern wir auf eine Regelung zum Zugriffsschutz rein auf ein vertrauenswürdigen Netzes beschränken, brauchen wir lediglich den Hostnamen und die Netzdefinition unseren Vorstellungen nach anzupassen.
 +   # vim /etc/httpd/conf.d/graphite-web.conf
 +
 +<file apache /etc/httpd/conf.d/graphite-web.conf># Graphite Web Basic mod_wsgi vhost
 +
 +<VirtualHost *:80>
 +    # Django : 2015-03-20 Festlegung des vHostnamens
 +    ServerName graphite-web.nausch.org
 +    DocumentRoot "/usr/share/graphite/webapp"
 +    ErrorLog /var/log/httpd/graphite-web-error.log
 +    CustomLog /var/log/httpd/graphite-web-access.log common
 +
 +    # Header set Access-Control-Allow-Origin "*"
 +    # Header set Access-Control-Allow-Methods "GET, OPTIONS"
 +    # Header set Access-Control-Allow-Headers "origin, authorization, accept"
 +    # Header set Access-Control-Allow-Credentials true
 +
 +    WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi
 +    WSGIImportScript /usr/share/graphite/graphite-web.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL}
 +
 +    <Location "/content/">
 +        SetHandler None
 +    </Location>
 +
 +    Alias /media/ "/usr/lib/python2.7/site-packages/django/contrib/admin/media/"
 +    <Location "/media/">
 +        SetHandler None
 +    </Location>
 +
 +   <Directory "/usr/share/graphite/">
 +       <IfModule mod_authz_core.c>
 +           # Apache 2.4
 +           # Django : 2015-03-20 Nur Rechner aus dem eigenen Netz dürfen die Webseite aufrufen!
 +           # default: Require local
 +           Require ip 10.0
 +       </IfModule>
 +       <IfModule !mod_authz_core.c>
 +           # Apache 2.2
 +           Order Deny,Allow
 +           Deny from all
 +           Allow from 127.0.0.1
 +           Allow from ::1
 +       </IfModule>
 +   </Directory>
 +</VirtualHost>
 +</file>
 +
 +Da wir aber genau festlegen wollen, welcher Admin seine Arbeit über das Webfrontend **Icinga Web 2** erledigen darf und muss und dadurch auch Zugriff auf die Echtzeitgraphiken bekommen soll, erweitern wir die Konfiguration nun etwas.
 +
 +=== externe Authentifikation (htdigest) ===
 +Im ersten Konfigurationsbeispiel gehen wir auf die Authentifizierungsart ein, bei der Usernamen und Passwörter in einer lokal gespeicherten Datei vorgehalten werden. Unter Zuhilfenahme des Programms **htdigest** legen wir erst einmal einen User an und speichern das zugehörige Passwort ab, bzw. wir greifen auf die bereits bei der Konfiguration von **[[centos:web_c7:icinga:web2?&#externe_authentifikation_htdigest|Icinga Web 2]]** angelegten Daten zurück.
 +   # htdigest -c /etc/icingaweb2/.icingawebdigest "Icinga Web 2" django
 +
 +   Adding password for django in realm Icinga Web 2.
 +   New password: 
 +   Re-type new password:
 +
 +Damit der Apache-Webserver für den Zugang zum Webfrontend von **graphite** den Usernamen und ein Passwort abfrägt, ergänzen wir die Datei //**/etc/httpd/conf.d/graphite-web.conf**// wie nachfolgend aufgezeigt.
 +   # vim /etc/httpd/conf.d/graphite-web.conf
 +
 +<file apache /etc/httpd/conf.d/graphite-web.conf># Graphite Web Basic mod_wsgi vhost
 +
 +<VirtualHost *:80>
 +    # Django : 2015-03-20 Festlegung des vHostnamens
 +    ServerName graphite-web.nausch.org
 +    DocumentRoot "/usr/share/graphite/webapp"
 +    ErrorLog /var/log/httpd/graphite-web-error.log
 +    CustomLog /var/log/httpd/graphite-web-access.log common
 +
 +    # Header set Access-Control-Allow-Origin "*"
 +    # Header set Access-Control-Allow-Methods "GET, OPTIONS"
 +    # Header set Access-Control-Allow-Headers "origin, authorization, accept"
 +    # Header set Access-Control-Allow-Credentials true
 +
 +    WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi
 +    WSGIImportScript /usr/share/graphite/graphite-web.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL}
 +
 +    <Location "/content/">
 +        SetHandler None
 +    </Location>
 +
 +    Alias /media/ "/usr/lib/python2.7/site-packages/django/contrib/admin/media/"
 +    <Location "/media/">
 +        SetHandler None
 +    </Location>
 +
 +   <Directory "/usr/share/graphite/">
 +       # Django : 2015-03-20
 +       # Authentifizierung gegen eine Passwort-Datei
 +       AuthType digest
 +       AuthName "Icinga Web 2"
 +       AuthDigestProvider file
 +       AuthUserFile /etc/icingaweb2/.icingawebdigest
 +       Require valid-user django
 +   </Directory>
 +</VirtualHost>
 +</file>
 +
 +<WRAP center round important 100%>
 +**Wichtig**: \\
 +Der **realm** aus der Passwort-Datei, in unserem Beispiel ''Icinga Web 2'' **__muss__** mit dem Parameter **AuthName** in der Apache-Konfigurationsdatei übereinstimmen! Andernfalls wir die Authentifizierung kläglich scheitern, obwohl  z.B. sowohl Passwort wie auch Usernamen richtig eingegeben worden sind!
 +</WRAP>
 +
 +=== Authentifikation gegen LDAP ===
 +Meist haben wir nicht nur eine Web-Anwendung an der sich User zum Arbeiten anmelden müssen, sondern mehrere bis mit unter sehr vielen. In diesem Umfeld bietet es sich förmlich an, die Authentifizierungsdaten zentral an einem **LDAP**-Server((**L**ightweight **D**irectory **A**ccess **P**rotocol)) zu verwalten.
 +
 +Damit der Apache-Webserver für den Zugang zum Webfrontend von **graphite** den Usernamen und ein Passwort abfrägt und gegen unseren [[centos:ldap:start|openLDAP-Server]] prüft, ergänzen wir die //**/etc/httpd/conf.d/graphite-web.conf**// wie nachfolgend aufgezeigt.
 +   # vim /etc/httpd/conf.d/graphite-web.conf
 +
 +<file apache /etc/httpd/conf.d/graphite-web.conf><VirtualHost *:80>
 +    # Django : 2015-03-20 Festlegung des vHostnamens
 +    ServerName graphite-web.nausch.org
 +    DocumentRoot "/usr/share/graphite/webapp"
 +    ErrorLog /var/log/httpd/graphite-web-error.log
 +    CustomLog /var/log/httpd/graphite-web-access.log common
 +
 +    # Header set Access-Control-Allow-Origin "*"
 +    # Header set Access-Control-Allow-Methods "GET, OPTIONS"
 +    # Header set Access-Control-Allow-Headers "origin, authorization, accept"
 +    # Header set Access-Control-Allow-Credentials true
 +
 +    WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi
 +    WSGIImportScript /usr/share/graphite/graphite-web.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL}
 +
 +    <Location "/content/">
 +        SetHandler None
 +    </Location>
 +
 +    Alias /media/ "/usr/lib/python2.7/site-packages/django/contrib/admin/media/"
 +    <Location "/media/">
 +        SetHandler None
 +    </Location>
 +
 +   <Directory "/usr/share/graphite/">
 +       # Django : 2015-03-20
 +       # Authentifizierung gegen unseren openLDAP-Server
 +       AuthType Basic
 +       AuthName "Icinga Monitoring Server"
 +       AuthBasicProvider ldap
 +       AuthLDAPUrl ldap://ldap.dmz.nausch.org:636/ou=People,dc=nausch,dc=org?uid
 +       AuthLDAPBindDN cn=Technischer_User,dc=nausch,dc=org
 +       AuthLDAPBindPassword Kl4u5-157-d3r-gr035573(03nk7_3r)!
 +       AuthLDAPBindAuthoritative on
 +       Require ldap-user django
 +   </Directory>
 +</VirtualHost>
 +</file>
 +
 +=== TLS-Verschlüsselung ===
 +<WRAP center round alert 90%>
 +**Wichtig:**
 +
 +Der Vollständigkeit halber darf natürlich nicht vergessen werden, den Transportweg gegen unberechtigtes Abgreifen der Authentifizierungsdaten abzusichern. Daher ist es **__zwingend geboten__**, den Transportweg mit Hilfe von **[[centos:web_c7:apache_2|TLS]]** abzusichern!
 +</WRAP>
 +
 +Bevor wir unsere Konfigurationsänderungen scharf schalten überprüfen wir noch unsere Apache-Konfigurationsdatei auf syntaktische Fehler.
 +   # apachectl -t
 +
 +   Syntax OK
 +
 +Ist alles in Ordnung spricht nichts mehr dagegen die Änderungen zu aktivieren.
 +   # systemctl restart httpd.service
  
 ==== icingaweb2 ==== ==== icingaweb2 ====
Zeile 1739: Zeile 2040:
 <file php /etc/icingaweb2/modules/graphite/config.ini>; Django : 2015-03-20 <file php /etc/icingaweb2/modules/graphite/config.ini>; Django : 2015-03-20
 [graphite] [graphite]
-metric_prefix = icinga +metric_prefix = icinga2 
-base_url = https://graphite.nausch.org/render? +base_url = https://orwell.nausch.org/render? 
-</file> +legacy_mode = false 
-===== DB =====+;if legacy mode is false (2.4 and newer): 
 +service_name_template "$host.name$.services.$service.name$.$service.check_command$.perfdata" 
 +host_name_template "$host.name$.host.$host.check_command$.perfdata" 
 +;if legacy mode is true (pre 2.4): 
 +;service_name_template "$host.name$.services.$service.name$.$service.check_command$" 
 +;host_name_template "$host.name$.host.$host.check_command$" 
 +;this template is used for the small image, macro $target$ can used. 
 +graphite_args_template "&target=$target$&source=0&width=300&height=120&hideAxes=true&lineWidth=2&hideLegend=true&colorList=049BAF" 
 +;this template is used for the large image, macro $target$ can used. 
 +graphite_large_args_template = "&target=alias(color($target$_warn,'yellow'),'warning')&target=alias(color($target$_crit,'red'),'critical')&target=$target$&source=0&width=800&height=700&colorList=049BAF&lineMode=connected"</file>
  
-   # icinga2 feature enable graphite+===== Programmstart ===== 
 +Nachdem wir die Konfigurationsschritte allesamt erfolgreich erledigt haben, ist es nun an der Zeit die Echtzeitgraphiken zu aktivieren.
  
-   Enabling feature graphite. Make sure to restart Icinga 2 for these changes to take effect.+==== carbon-cache ==== 
 +Als erstes aktivieren wir den **carbon-cache**, der die Performancedaten von **Icinga web 2** entgegen nimmt. 
 +   # systemctl start carbon-cache.service
  
-   # systemctl restart icinga2+Damit der Daemon automatisch beim Hochfahren des Monitoring-Servers gestartet wird, aktivieren wir dies mit folgendem Aufruf. 
 +   # systemctl enable carbon-cache.service
  
 +   ln -s '/usr/lib/systemd/system/carbon-cache.service' '/etc/systemd/system/multi-user.target.wants/carbon-cache.service'
  
-carbon-cache.service - Graphite Carbon Cache +Möchten wir den Status des Daemon abfragen, benutzen wir ebenfalls den Befehl **systemctl**
-   Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; disabled) +   # systemctl status carbon-cache.service 
-   Active: inactive (dead) +
- +
-[root@vml000117 services]# systemctl start carbon-cache +
-[root@vml000117 services]# systemctl status carbon-cache+
 <code>carbon-cache.service - Graphite Carbon Cache <code>carbon-cache.service - Graphite Carbon Cache
-   Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; disabled+   Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; enabled
-   Active: active (running) since Fri 2015-03-20 17:46:39 CET; 1s ago +   Active: active (running) since Mon 2015-03-23 21:32:14 CET; 24h ago 
-  Process: 29242 ExecStart=/usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start (code=exited, status=0/SUCCESS) + Main PID: 16070 (carbon-cache)
- Main PID: 29246 (carbon-cache)+
    CGroup: /system.slice/carbon-cache.service    CGroup: /system.slice/carbon-cache.service
-           └─29246 /usr/bin/python /usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start+           └─16070 /usr/bin/python /usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start
  
-Mar 20 17:46:39 vml000117.dmz.nausch.org systemd[1]: Starting Graphite Carbon Cache..+Mar 23 21:32:12 vml000117.dmz.nausch.org systemd[1]: Starting Graphite Carbon Cache...
-Mar 20 17:46:39 vml000117.dmz.nausch.org systemd[1]: PID file /var/run/carbon-cache.pid not readable (yet?) after start. +
-Mar 20 17:46:39 vml000117.dmz.nausch.org systemd[1]: Started Graphite Carbon Cache.+
 </code> </code>
  
-   # vim /etc/carbon/carbon.conf +==== icinga2 ==== 
-<code>...+Als nächstes aktivieren wir das **Icinga2** Modul **graphite**
 +   # icinga2 feature enable graphite
  
-# Enable daily log rotation. If disabled, a kill -HUP can be used after a manual rotate +<html><pre class="code"> 
-# Django 2015-03-20 +<font style="colorrgb(0, 0, 0)">Enabling feature </font><font style="colorrgb(255, 54, 255)"><b>graphite</b> </font><font style="color: rgb(0, 0, 0)">Make sure to restart Icinga 2 for these changes to take effect.</font> 
-# defaultENABLE_LOGROTATION False +</pre></html>
-ENABLE_LOGROTATION = True+
  
-... +Damit die Änderungen auch wirksam werden, starten wir wie gewünscht den **icinga2**-Daemon einmal durch. 
-</code>+   # systemctl restart icinga2 
 + 
 +==== icinga-web2 ==== 
 +Die Konfiguration von **Icinga Web2** nehmen wir über das Webfrontend vorHierzu rufen wir die URL **https://orwell.nausch.org/icingaweb2/authentication/login** auf. 
 +   $ firefox https://orwell.nausch.org/icingaweb2/config/modules 
 + 
 +Da wir uns an unserem Monitoring-Server als berechtigter Nutzer ausweisen müssen, wird uns erst einmal das Anmeldefenster päsentiert. 
 + 
 +{{ :centos:web_c7:icinga:icinga_1000.png?700 |Bild: Icinga Web2 Anmeldebildschirm}} 
 + 
 +Nach erfolgreicher Anmeldung befinden wir uns gleich an Ort uns Stelle, an der die Konfiguration der Module erfolgt. Wir erreichen den betreffenden Menüpunkt auch manuell über das Menü auf der linken Seite: **System** ⇒ **Module**. 
 + 
 +{{ :centos:web_c7:icinga:icinga_1118.png?800 |Bild: Icinga Web2 Konfiguration der Module}} 
 + 
 +Hier klicken wir auf das Modul **graphite** und es werden Hinweise zum Modul **graphite** angezeigt. 
 + 
 +{{ :centos:web_c7:icinga:icinga_1119.png?800 |Bild: Icinga Web2 Konfiguration der Module}} 
 + 
 +Beim Modulstatus wird uns aktuell noch angezeigt, dass dieses noch nicht aktiviert, der Modulstatus noch **//disabled//** ist. Zum Aktivieren klicken wir auf den Optionspunkt **enable**. 
 + 
 +Die erfolgreiche Aktivierung des Moduls wir uns mit der Einblendung **Module "graphite" enabled** angezeigt. 
 + 
 +{{ :centos:web_c7:icinga:icinga_1120.png?800 |Bild: Icinga Web2 Konfiguration der Module}} 
 + 
 +===== Aktivierung der Echtzeitgraphen am Beispiel Netzwerktraffic ===== 
 +In folgendem Beispiel des Netzwerktraffics einer Netzwerkschnittstelle unseres Monitoring-Servers aktivieren wir die **graphite** Echtzeitgraphiken. 
 + 
 +Als erstes rufen wir in **Icinga Web2** den Service auf, der für die Überwachung der Netzwerkschnittstelle **eth0** zuständig ist.  
 + 
 +{{ :centos:web_c7:icinga:icinga_1121.png?direct&800 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}} 
 + 
 +In der Detailansicht des Servicechecks **System: Traffic eth0** finden wir bei den **Performance data** die Bezeichnungen **Label**. 
 + 
 +{{ :centos:web_c7:icinga:icinga_1122.png?nolink |Bild: Abschnitt Performance data des Servicechecks Traffic eth0}} 
 + 
 +Die beiden Labels **inUsage** und **outUsage** hinterlegen wir nun in der Konfigurationsdatei unseres Services, damit Icinga2 die zugehörigen Daten an den **carbon-cache**-Daemon übergeben kann. Dazu öffnen wir mit dem Editor **vim** die besagte Datei (in unserem Beispiel eben //**/etc/icinga2/conf.d/nausch.org/services/traffic_eth0.conf**//
 +   # vim /etc/icinga2/conf.d/nausch.org/services/traffic_eth0.conf 
 + 
 +<file c++ /etc/icinga2/conf.d/nausch.org/services/traffic_eth0.conf>apply Service "System : Traffic eth0" { 
 +  import "generic-service" 
 + 
 +  check_command = "nrpe" 
 +  vars.nrpe_command = "check_traffic_eth0" 
 +  // Django : 2015-03-20 Die Performancedaten "inUsage" und "outUsage" an den 
 +  //                     carbon-cache-Daemon übergeben 
 +  vars.graphite_keys =["inUsage","outUsage"
 + 
 +  assign where host.name == NodeName 
 +
 +</file> 
 + 
 +Zur Aktivierung der Erweiterung unseres Service-Checks führen wir nun eine Überprüfung der Konfigurationsdateien und einen Reload des icinga2-Damon durch. 
 +   # icinga2 daemon -C && systemctl reload icinga2 
 + 
 +Nun rufen wir erneut die Seite zum Status des Service **System: Traffic eth0** auf. 
 + 
 +{{ :centos:web_c7:icinga:icinga_1124.png?direct&800 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}} 
 + 
 +Da wir den Zugriff auf die **graphite**-Graphen zugriffsbeschränkt haben, wird nun 1x pro Sitzung der Username und das zugehörige Passwort abgefragt. 
 + 
 +{{ :centos:web_c7:icinga:icinga_1125.png?direct&800 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}}
  
-   # systemctl restart carbon-cache+Nach erfolgreicher Anmeldung werden uns in der Übersichtsseite des Services kleine Vorschaugraphiken eingeblendet. Klicken wir auf einen der kleinen Graphen, werden uns im Browser links die //**Service Detail Informationen**// und rechts der Detailgraph angezeigt.
  
-   # yum install python-ldap+{{ :centos:web_c7:icinga:icinga_1127.png?direct&850 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}}
  
 +====== Links ======
 +  * **⇐ [[centos:web_c7:icinga:config_1|Zurück zum Kapitel "Icinga 2 - Überwachung von Clients/Hosts bzw. Services auf Hosts"]]**
 +  * **⇒ [[centos:web_c7:icinga:nagvis|Weiter zum Kapitel "Icinga Web 2 - Einbinden von NagVis zur graphischen Visualisierung - Installation und Konfiguration unter CentOS 7.x"]]**
 +  * **[[centos:web_c7:start|Zurück zum Kapitel >>Webserverinstallation unter CentOS 7.x<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
  
  • centos/web_c7/icinga/graphite.1427222875.txt.gz
  • Zuletzt geändert: 24.03.2015 18:47.
  • von django