Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
centos:web_c7:icinga:graphite [24.03.2015 18:47. ] – [icingaweb2] 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 ==== |
| Für den Einsatz des Apache Webserver wird bei der Installation des RPM-Paketes bereits eine ausreichende Konfigurationsdatei mitgeliefert. Sofern wir auf eine Regelung zum Zugriffsschutz rein auf ein vertrauenswürdigen Netzes beschränken, brauchen wir lediglich den Hostnamen und die Netzdefinition unseren Vorstellungen nach anzupassen. |
| # vim /etc/httpd/conf.d/graphite-web.conf |
| |
| <file apache /etc/httpd/conf.d/graphite-web.conf># Graphite Web Basic mod_wsgi vhost |
| |
| <VirtualHost *:80> |
| # Django : 2015-03-20 Festlegung des vHostnamens |
| ServerName graphite-web.nausch.org |
| DocumentRoot "/usr/share/graphite/webapp" |
| ErrorLog /var/log/httpd/graphite-web-error.log |
| CustomLog /var/log/httpd/graphite-web-access.log common |
| |
| # Header set Access-Control-Allow-Origin "*" |
| # Header set Access-Control-Allow-Methods "GET, OPTIONS" |
| # Header set Access-Control-Allow-Headers "origin, authorization, accept" |
| # Header set Access-Control-Allow-Credentials true |
| |
| WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi |
| WSGIImportScript /usr/share/graphite/graphite-web.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL} |
| |
| <Location "/content/"> |
| SetHandler None |
| </Location> |
| |
| Alias /media/ "/usr/lib/python2.7/site-packages/django/contrib/admin/media/" |
| <Location "/media/"> |
| SetHandler None |
| </Location> |
| |
| <Directory "/usr/share/graphite/"> |
| <IfModule mod_authz_core.c> |
| # Apache 2.4 |
| # Django : 2015-03-20 Nur Rechner aus dem eigenen Netz dürfen die Webseite aufrufen! |
| # default: Require local |
| Require ip 10.0 |
| </IfModule> |
| <IfModule !mod_authz_core.c> |
| # Apache 2.2 |
| Order Deny,Allow |
| Deny from all |
| Allow from 127.0.0.1 |
| Allow from ::1 |
| </IfModule> |
| </Directory> |
| </VirtualHost> |
| </file> |
| |
| Da wir aber genau festlegen wollen, welcher Admin seine Arbeit über das Webfrontend **Icinga Web 2** erledigen darf und muss und dadurch auch Zugriff auf die Echtzeitgraphiken bekommen soll, erweitern wir die Konfiguration nun etwas. |
| |
| === externe Authentifikation (htdigest) === |
| Im ersten Konfigurationsbeispiel gehen wir auf die Authentifizierungsart ein, bei der Usernamen und Passwörter in einer lokal gespeicherten Datei vorgehalten werden. Unter Zuhilfenahme des Programms **htdigest** legen wir erst einmal einen User an und speichern das zugehörige Passwort ab, bzw. wir greifen auf die bereits bei der Konfiguration von **[[centos:web_c7:icinga:web2?&#externe_authentifikation_htdigest|Icinga Web 2]]** angelegten Daten zurück. |
| # htdigest -c /etc/icingaweb2/.icingawebdigest "Icinga Web 2" django |
| |
| Adding password for django in realm Icinga Web 2. |
| New password: |
| Re-type new password: |
| |
| Damit der Apache-Webserver für den Zugang zum Webfrontend von **graphite** den Usernamen und ein Passwort abfrägt, ergänzen wir die Datei //**/etc/httpd/conf.d/graphite-web.conf**// wie nachfolgend aufgezeigt. |
| # vim /etc/httpd/conf.d/graphite-web.conf |
| |
| <file apache /etc/httpd/conf.d/graphite-web.conf># Graphite Web Basic mod_wsgi vhost |
| |
| <VirtualHost *:80> |
| # Django : 2015-03-20 Festlegung des vHostnamens |
| ServerName graphite-web.nausch.org |
| DocumentRoot "/usr/share/graphite/webapp" |
| ErrorLog /var/log/httpd/graphite-web-error.log |
| CustomLog /var/log/httpd/graphite-web-access.log common |
| |
| # Header set Access-Control-Allow-Origin "*" |
| # Header set Access-Control-Allow-Methods "GET, OPTIONS" |
| # Header set Access-Control-Allow-Headers "origin, authorization, accept" |
| # Header set Access-Control-Allow-Credentials true |
| |
| WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi |
| WSGIImportScript /usr/share/graphite/graphite-web.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL} |
| |
| <Location "/content/"> |
| SetHandler None |
| </Location> |
| |
| Alias /media/ "/usr/lib/python2.7/site-packages/django/contrib/admin/media/" |
| <Location "/media/"> |
| SetHandler None |
| </Location> |
| |
| <Directory "/usr/share/graphite/"> |
| # Django : 2015-03-20 |
| # Authentifizierung gegen eine Passwort-Datei |
| AuthType digest |
| AuthName "Icinga Web 2" |
| AuthDigestProvider file |
| AuthUserFile /etc/icingaweb2/.icingawebdigest |
| Require valid-user django |
| </Directory> |
| </VirtualHost> |
| </file> |
| |
| <WRAP center round important 100%> |
| **Wichtig**: \\ |
| Der **realm** aus der Passwort-Datei, in unserem Beispiel ''Icinga Web 2'' **__muss__** mit dem Parameter **AuthName** in der Apache-Konfigurationsdatei übereinstimmen! Andernfalls wir die Authentifizierung kläglich scheitern, obwohl z.B. sowohl Passwort wie auch Usernamen richtig eingegeben worden sind! |
| </WRAP> |
| |
| === Authentifikation gegen LDAP === |
| Meist haben wir nicht nur eine Web-Anwendung an der sich User zum Arbeiten anmelden müssen, sondern mehrere bis mit unter sehr vielen. In diesem Umfeld bietet es sich förmlich an, die Authentifizierungsdaten zentral an einem **LDAP**-Server((**L**ightweight **D**irectory **A**ccess **P**rotocol)) zu verwalten. |
| |
| Damit der Apache-Webserver für den Zugang zum Webfrontend von **graphite** den Usernamen und ein Passwort abfrägt und gegen unseren [[centos:ldap:start|openLDAP-Server]] prüft, ergänzen wir die //**/etc/httpd/conf.d/graphite-web.conf**// wie nachfolgend aufgezeigt. |
| # vim /etc/httpd/conf.d/graphite-web.conf |
| |
| <file apache /etc/httpd/conf.d/graphite-web.conf><VirtualHost *:80> |
| # Django : 2015-03-20 Festlegung des vHostnamens |
| ServerName graphite-web.nausch.org |
| DocumentRoot "/usr/share/graphite/webapp" |
| ErrorLog /var/log/httpd/graphite-web-error.log |
| CustomLog /var/log/httpd/graphite-web-access.log common |
| |
| # Header set Access-Control-Allow-Origin "*" |
| # Header set Access-Control-Allow-Methods "GET, OPTIONS" |
| # Header set Access-Control-Allow-Headers "origin, authorization, accept" |
| # Header set Access-Control-Allow-Credentials true |
| |
| WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi |
| WSGIImportScript /usr/share/graphite/graphite-web.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL} |
| |
| <Location "/content/"> |
| SetHandler None |
| </Location> |
| |
| Alias /media/ "/usr/lib/python2.7/site-packages/django/contrib/admin/media/" |
| <Location "/media/"> |
| SetHandler None |
| </Location> |
| |
| <Directory "/usr/share/graphite/"> |
| # Django : 2015-03-20 |
| # Authentifizierung gegen unseren openLDAP-Server |
| AuthType Basic |
| AuthName "Icinga Monitoring Server" |
| AuthBasicProvider ldap |
| AuthLDAPUrl ldap://ldap.dmz.nausch.org:636/ou=People,dc=nausch,dc=org?uid |
| AuthLDAPBindDN cn=Technischer_User,dc=nausch,dc=org |
| AuthLDAPBindPassword Kl4u5-157-d3r-gr035573(03nk7_3r)! |
| AuthLDAPBindAuthoritative on |
| Require ldap-user django |
| </Directory> |
| </VirtualHost> |
| </file> |
| |
| === TLS-Verschlüsselung === |
| <WRAP center round alert 90%> |
| **Wichtig:** |
| |
| Der Vollständigkeit halber darf natürlich nicht vergessen werden, den Transportweg gegen unberechtigtes Abgreifen der Authentifizierungsdaten abzusichern. Daher ist es **__zwingend geboten__**, den Transportweg mit Hilfe von **[[centos:web_c7:apache_2|TLS]]** abzusichern! |
| </WRAP> |
| |
| Bevor wir unsere Konfigurationsänderungen scharf schalten überprüfen wir noch unsere Apache-Konfigurationsdatei auf syntaktische Fehler. |
| # apachectl -t |
| |
| Syntax OK |
| |
| Ist alles in Ordnung spricht nichts mehr dagegen die Änderungen zu aktivieren. |
| # systemctl restart httpd.service |
| |
==== icingaweb2 ==== | ==== icingaweb2 ==== |
<file php /etc/icingaweb2/modules/graphite/config.ini>; Django : 2015-03-20 | <file php /etc/icingaweb2/modules/graphite/config.ini>; Django : 2015-03-20 |
[graphite] | [graphite] |
metric_prefix = icinga | metric_prefix = icinga2 |
base_url = https://graphite.nausch.org/render? | base_url = https://orwell.nausch.org/render? |
</file> | legacy_mode = false |
===== DB ===== | ;if legacy mode is false (2.4 and newer): |
| service_name_template = "$host.name$.services.$service.name$.$service.check_command$.perfdata" |
| host_name_template = "$host.name$.host.$host.check_command$.perfdata" |
| ;if legacy mode is true (pre 2.4): |
| ;service_name_template = "$host.name$.services.$service.name$.$service.check_command$" |
| ;host_name_template = "$host.name$.host.$host.check_command$" |
| ;this template is used for the small image, macro $target$ can used. |
| graphite_args_template = "&target=$target$&source=0&width=300&height=120&hideAxes=true&lineWidth=2&hideLegend=true&colorList=049BAF" |
| ;this template is used for the large image, macro $target$ can used. |
| graphite_large_args_template = "&target=alias(color($target$_warn,'yellow'),'warning')&target=alias(color($target$_crit,'red'),'critical')&target=$target$&source=0&width=800&height=700&colorList=049BAF&lineMode=connected"</file> |
| |
# icinga2 feature enable graphite | ===== Programmstart ===== |
| Nachdem wir die Konfigurationsschritte allesamt erfolgreich erledigt haben, ist es nun an der Zeit die Echtzeitgraphiken zu aktivieren. |
| |
Enabling feature graphite. Make sure to restart Icinga 2 for these changes to take effect. | ==== carbon-cache ==== |
| Als erstes aktivieren wir den **carbon-cache**, der die Performancedaten von **Icinga web 2** entgegen nimmt. |
| # systemctl start carbon-cache.service |
| |
# systemctl restart icinga2 | Damit der Daemon automatisch beim Hochfahren des Monitoring-Servers gestartet wird, aktivieren wir dies mit folgendem Aufruf. |
| # systemctl enable carbon-cache.service |
| |
| ln -s '/usr/lib/systemd/system/carbon-cache.service' '/etc/systemd/system/multi-user.target.wants/carbon-cache.service' |
| |
carbon-cache.service - Graphite Carbon Cache | Möchten wir den Status des Daemon abfragen, benutzen wir ebenfalls den Befehl **systemctl**. |
Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; disabled) | # systemctl status carbon-cache.service |
Active: inactive (dead) | |
| |
[root@vml000117 services]# systemctl start carbon-cache | |
[root@vml000117 services]# systemctl status carbon-cache | |
<code>carbon-cache.service - Graphite Carbon Cache | <code>carbon-cache.service - Graphite Carbon Cache |
Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; disabled) | Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; enabled) |
Active: active (running) since Fri 2015-03-20 17:46:39 CET; 1s ago | Active: active (running) since Mon 2015-03-23 21:32:14 CET; 24h ago |
Process: 29242 ExecStart=/usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start (code=exited, status=0/SUCCESS) | Main PID: 16070 (carbon-cache) |
Main PID: 29246 (carbon-cache) | |
CGroup: /system.slice/carbon-cache.service | CGroup: /system.slice/carbon-cache.service |
└─29246 /usr/bin/python /usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start | └─16070 /usr/bin/python /usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start |
| |
Mar 20 17:46:39 vml000117.dmz.nausch.org systemd[1]: Starting Graphite Carbon Cache... | Mar 23 21:32:12 vml000117.dmz.nausch.org systemd[1]: Starting Graphite Carbon Cache... |
Mar 20 17:46:39 vml000117.dmz.nausch.org systemd[1]: PID file /var/run/carbon-cache.pid not readable (yet?) after start. | |
Mar 20 17:46:39 vml000117.dmz.nausch.org systemd[1]: Started Graphite Carbon Cache. | |
</code> | </code> |
| |
# vim /etc/carbon/carbon.conf | ==== icinga2 ==== |
<code>... | Als nächstes aktivieren wir das **Icinga2** Modul **graphite**. |
| # icinga2 feature enable graphite |
| |
# Enable daily log rotation. If disabled, a kill -HUP can be used after a manual rotate | <html><pre class="code"> |
# Django : 2015-03-20 | <font style="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> |
# default: ENABLE_LOGROTATION = False | </pre></html> |
ENABLE_LOGROTATION = True | |
| |
... | Damit die Änderungen auch wirksam werden, starten wir wie gewünscht den **icinga2**-Daemon einmal durch. |
</code> | # systemctl restart icinga2 |
| |
| ==== icinga-web2 ==== |
| Die Konfiguration von **Icinga Web2** nehmen wir über das Webfrontend vor. Hierzu rufen wir die URL **https://orwell.nausch.org/icingaweb2/authentication/login** auf. |
| $ firefox https://orwell.nausch.org/icingaweb2/config/modules |
| |
| Da wir uns an unserem Monitoring-Server als berechtigter Nutzer ausweisen müssen, wird uns erst einmal das Anmeldefenster päsentiert. |
| |
| {{ :centos:web_c7:icinga:icinga_1000.png?700 |Bild: Icinga Web2 Anmeldebildschirm}} |
| |
| Nach erfolgreicher Anmeldung befinden wir uns gleich an Ort uns Stelle, an der die Konfiguration der Module erfolgt. Wir erreichen den betreffenden Menüpunkt auch manuell über das Menü auf der linken Seite: **System** ⇒ **Module**. |
| |
| {{ :centos:web_c7:icinga:icinga_1118.png?800 |Bild: Icinga Web2 Konfiguration der Module}} |
| |
| Hier klicken wir auf das Modul **graphite** und es werden Hinweise zum Modul **graphite** angezeigt. |
| |
| {{ :centos:web_c7:icinga:icinga_1119.png?800 |Bild: Icinga Web2 Konfiguration der Module}} |
| |
| Beim Modulstatus wird uns aktuell noch angezeigt, dass dieses noch nicht aktiviert, der Modulstatus noch **//disabled//** ist. Zum Aktivieren klicken wir auf den Optionspunkt **enable**. |
| |
| Die erfolgreiche Aktivierung des Moduls wir uns mit der Einblendung **Module "graphite" enabled** angezeigt. |
| |
| {{ :centos:web_c7:icinga:icinga_1120.png?800 |Bild: Icinga Web2 Konfiguration der Module}} |
| |
| ===== Aktivierung der Echtzeitgraphen am Beispiel Netzwerktraffic ===== |
| In folgendem Beispiel des Netzwerktraffics einer Netzwerkschnittstelle unseres Monitoring-Servers aktivieren wir die **graphite** Echtzeitgraphiken. |
| |
| Als erstes rufen wir in **Icinga Web2** den Service auf, der für die Überwachung der Netzwerkschnittstelle **eth0** zuständig ist. |
| |
| {{ :centos:web_c7:icinga:icinga_1121.png?direct&800 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}} |
| |
| In der Detailansicht des Servicechecks **System: Traffic eth0** finden wir bei den **Performance data** die Bezeichnungen **Label**. |
| |
| {{ :centos:web_c7:icinga:icinga_1122.png?nolink |Bild: Abschnitt Performance data des Servicechecks Traffic eth0}} |
| |
| Die beiden Labels **inUsage** und **outUsage** hinterlegen wir nun in der Konfigurationsdatei unseres Services, damit Icinga2 die zugehörigen Daten an den **carbon-cache**-Daemon übergeben kann. Dazu öffnen wir mit dem Editor **vim** die besagte Datei (in unserem Beispiel eben //**/etc/icinga2/conf.d/nausch.org/services/traffic_eth0.conf**//. |
| # vim /etc/icinga2/conf.d/nausch.org/services/traffic_eth0.conf |
| |
| <file c++ /etc/icinga2/conf.d/nausch.org/services/traffic_eth0.conf>apply Service "System : Traffic eth0" { |
| import "generic-service" |
| |
| check_command = "nrpe" |
| vars.nrpe_command = "check_traffic_eth0" |
| // Django : 2015-03-20 Die Performancedaten "inUsage" und "outUsage" an den |
| // carbon-cache-Daemon übergeben |
| vars.graphite_keys =["inUsage","outUsage"] |
| |
| assign where host.name == NodeName |
| } |
| </file> |
| |
| Zur Aktivierung der Erweiterung unseres Service-Checks führen wir nun eine Überprüfung der Konfigurationsdateien und einen Reload des icinga2-Damon durch. |
| # icinga2 daemon -C && systemctl reload icinga2 |
| |
| Nun rufen wir erneut die Seite zum Status des Service **System: Traffic eth0** auf. |
| |
| {{ :centos:web_c7:icinga:icinga_1124.png?direct&800 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}} |
| |
| Da wir den Zugriff auf die **graphite**-Graphen zugriffsbeschränkt haben, wird nun 1x pro Sitzung der Username und das zugehörige Passwort abgefragt. |
| |
| {{ :centos:web_c7:icinga:icinga_1125.png?direct&800 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}} |
| |
# systemctl restart carbon-cache | Nach erfolgreicher Anmeldung werden uns in der Übersichtsseite des Services kleine Vorschaugraphiken eingeblendet. Klicken wir auf einen der kleinen Graphen, werden uns im Browser links die //**Service Detail Informationen**// und rechts der Detailgraph angezeigt. |
| |
# yum install python-ldap | {{ :centos:web_c7:icinga:icinga_1127.png?direct&850 |Bild: Bildschirmhardcopy der Icinga Web 2 Services}} |
| |
| ====== Links ====== |
| * **⇐ [[centos:web_c7:icinga:config_1|Zurück zum Kapitel "Icinga 2 - Überwachung von Clients/Hosts bzw. Services auf Hosts"]]** |
| * **⇒ [[centos:web_c7:icinga:nagvis|Weiter zum Kapitel "Icinga Web 2 - Einbinden von NagVis zur graphischen Visualisierung - Installation und Konfiguration unter CentOS 7.x"]]** |
| * **[[centos:web_c7:start|Zurück zum Kapitel >>Webserverinstallation unter CentOS 7.x<<]]** |
| * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]** |
| * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]** |
| |
| |