Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
centos:web_c7:icinga:graphite [25.03.2015 07:56. ] – django | centos:web_c7:icinga:graphite [18.11.2024 19:11. ] (aktuell) – Externe Bearbeitung 127.0.0.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 ===== |
# 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/SHA256, Tue 25 Nov 2014 07:05:51 PM CET, Key ID 6a2faea2352c64e5 | Signature : RSA/SHA1, Fri 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 |
/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 |
/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 |
/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 |
/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 |
/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 |
/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 |
/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 |
/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 |
/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/ |
# | # |
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 |
| |
# 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 |
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 |
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 |
# 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 |
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 |
| |
# 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 |
# | # |
# 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. |
# 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 |
- **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 default. This 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 system, which means you don't have any superusers defined. | Copyright (c) 2000, 2015, 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 help. Type '\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 ==== |
| |
</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 ==== |
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 |
| |
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> |
| |
<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 ===== |
| |
====== Links ====== | ====== Links ====== |
* **⇐ [[centos:web_c7:icinga:config_1|Zurück zum Kapitel "Weiter zum Kapitel "Icinga Web 2 - Überwachung von Hosts und Services"]]** | * **⇐ [[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<<]]** | * **[[centos:web_c7:start|Zurück zum Kapitel >>Webserverinstallation unter CentOS 7.x<<]]** |
* **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]** | * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]** |
| |
| |
~~DISCUSSION~~ | |