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 20:41. ] – [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 ==== ==== Apache vHost ====
Zeile 1873: Zeile 2010:
        AuthName "Icinga Monitoring Server"        AuthName "Icinga Monitoring Server"
        AuthBasicProvider ldap        AuthBasicProvider ldap
-       AuthLDAPUrl ldap://ldap.dmz.nausch.org:389/ou=People,dc=nausch,dc=org?uid+       AuthLDAPUrl ldap://ldap.dmz.nausch.org:636/ou=People,dc=nausch,dc=org?uid
        AuthLDAPBindDN cn=Technischer_User,dc=nausch,dc=org        AuthLDAPBindDN cn=Technischer_User,dc=nausch,dc=org
-       AuthLDAPBindPassword Kl4u5-157-d3r-gr035573!+       AuthLDAPBindPassword Kl4u5-157-d3r-gr035573(03nk7_3r)!
        AuthLDAPBindAuthoritative on        AuthLDAPBindAuthoritative on
        Require ldap-user django        Require ldap-user django
Zeile 1887: Zeile 2024:
  
 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! 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> </WRAP>
  
Zeile 1904: 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 
 +;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>
  
 ===== Programmstart ===== ===== Programmstart =====
Zeile 1932: Zeile 2078:
 </code> </code>
  
 +==== icinga2 ====
 +Als nächstes aktivieren wir das **Icinga2** Modul **graphite**.
 +   # icinga2 feature enable graphite
  
 +<html><pre class="code">
 +<font style="color: rgb(0, 0, 0)">Enabling feature </font><font style="color: rgb(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>
 +</pre></html>
  
 +Damit die Änderungen auch wirksam werden, starten wir wie gewünscht den **icinga2**-Daemon einmal durch.
 +   # systemctl restart icinga2
  
-===== DB =====+==== icinga-web2 ==== 
 +Die Konfiguration von **Icinga Web2** nehmen wir über das Webfrontend vor. Hierzu rufen wir die URL **https://orwell.nausch.org/icingaweb2/authentication/login** auf. 
 +   $ firefox https://orwell.nausch.org/icingaweb2/config/modules
  
-   # icinga2 feature enable graphite+Da wir uns an unserem Monitoring-Server als berechtigter Nutzer ausweisen müssen, wird uns erst einmal das Anmeldefenster päsentiert.
  
-   Enabling feature graphiteMake sure to restart Icinga 2 for these changes to take effect.+{{ :centos:web_c7:icinga:icinga_1000.png?700 |Bild: Icinga Web2 Anmeldebildschirm}}
  
-   # systemctl restart icinga2+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}}
  
-carbon-cache.service - Graphite Carbon Cache +Hier klicken wir auf das Modul **graphite** und es werden Hinweise zum Modul **graphite** angezeigt.
-   Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; disabled) +
-   Active: inactive (dead)+
  
-[root@vml000117 services]# systemctl start carbon-cache +{{ :centos:web_c7:icinga:icinga_1119.png?800 |BildIcinga Web2 Konfiguration der Module}}
-[root@vml000117 services]# systemctl status carbon-cache +
-<code>carbon-cache.service - Graphite Carbon Cache +
-   Loadedloaded (/usr/lib/systemd/system/carbon-cache.service; disabled) +
-   Activeactive (running) since Fri 2015-03-20 17:46:39 CET; 1s 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 PID29246 (carbon-cache) +
-   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+
  
-Mar 20 17:46:39 vml000117.dmz.nausch.org systemd[1]: Starting Graphite Carbon Cache... +Beim Modulstatus wird uns aktuell noch angezeigt, dass dieses noch nicht aktiviert, der Modulstatus noch **//disabled//** istZum Aktivieren klicken wir auf den Optionspunkt **enable**.
-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>+
  
-   # vim /etc/carbon/carbon.conf +Die erfolgreiche Aktivierung des Moduls wir uns mit der Einblendung **Module "graphite" enabled** angezeigt.
-<code>...+
  
-# Enable daily log rotation. If disabled, a kill -HUP can be used after a manual rotate +{{ :centos:web_c7:icinga:icinga_1120.png?800 |BildIcinga Web2 Konfiguration der Module}}
-# Django 2015-03-20 +
-# defaultENABLE_LOGROTATION = False +
-ENABLE_LOGROTATION = True+
  
-... +===== Aktivierung der Echtzeitgraphen am Beispiel Netzwerktraffic ===== 
-</code>+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.1427229692.txt.gz
  • Zuletzt geändert: 24.03.2015 20:41.
  • von django