Pakete installieren
apt-get install icinga2 graphite-web graphite-carbon libapache2-mod-wsgi-py3
Icinga2 muss so konfiguriert werden, dass es alle ermittelten Metriken an Graphite exportiert. Die Graphite Komponente die diese Daten entgegennimmt wird „Carbon“ genannt. In unserer Beispielinstallation läuft Carbon auf dem selben Host wie Icinga2 und verwendet ebenfalls den Standardport. Aus diesem Grund ist keine weiterführende Konfiguration von Icinga2 nötig, es reicht den Export einzuschalten.
Dazu genügt das Kommando
icinga2 feature enable graphite
Anschliessend muss Icinga2 neugestartet werden:
systemctl restart icinga2
Wenn die Konfiguration erfolgreich war, dann sollten nach kurzer Zeit in „/var/lib/graphite/whisper/icinga“ eine Reihe von Dateien auftauchen. Wenn dies nicht der Fall ist, dann sollte man einen Blick in die Logdatei von Icinga2 werfen (diese befindet sich in „/var/log/icinga2/icinga2.log„) Konfiguration von Graphite-web
Grafana benutzt das Webfrontend von Graphite als Schnittstelle für die von Graphite gespeicherten Metriken. Aus diesem Grund ist es erforderlich Graphite-web korrekt zu konfigurieren. Aus Performancegründen betreiben wir Graphite-web als WSGI Modul. Hierzu sind eine Reihe von Konfigurationschritten nötig:
Als erstes legen wir eine Nutzerdatenbank für Graphite-web an. Da wir nicht viele Nutzer haben werden, verwenden wir an dieser Stelle sqlite als Backend für unsere Nutzerdaten.
Zu diesem Zweck führen wir die folgenden Kommandos aus, die die Nutzerdatenbank initalisieren und sie dem Nutzer zu übereignen, unter dem das Webfrontend läuft:
graphite-manage migrate chown _graphite:_graphite /var/lib/graphite/graphite.db
Anschliessend aktivieren wir das WSGI Modul im Apache:
a2enmod wsgi
Das Webinterface soll der Einfachkeit halber in einem eigenen virtuellen Host und auf einem eigenen Port laufen. Damit Apache auch auf diesen Port hört fügen wir in die Datei „/etc/apache2/ports.conf“ die Zeile „Listen 8000“ hinzu. Das Graphite Debian Paket liefert bereits eine Konfigurationsdatei für Apache mit, die wir für unsere Zwecke, leicht angepasst, verwenden können.
cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available/graphite.conf
Damit der virtuelle Host auch den Port 8000 verwendet, müssen wir in der Datei die Zeile
<VirtualHost *:80>
durch
<VirtualHost *:8000>
ersetzen. Anschliessend aktivieren wir den neuen virtuellen Host via
a2ensite graphite
und starten Apache neu:
systemctl restart apache2
Graphite-web sollte nun unter http://YOURIP:8000/ erreichbar sein. Sollte dies nicht der Fall sein, dann könnten die Apache Logdateien unter „/var/log/apache2/“ wertvolle Informationen liefern.
install -y software-properties-common add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install grafana
Damit Grafana läuft müssen wir den Dienst noch aktivieren und starten
systemctl enable grafana-server.service systemctl start grafana-server
Grafana ist nun unter der Adresse http://YOURIP:3000/ erreichbar. Der Standardbenutzername und das Passwort ist in unserem Beispiel ‚admin‘. Dieses Passwort sollte natürlich bei nächster Gelegenheit durch ein sicheres Passwort ersetzt werden.
Anschliessend muss Grafana so konfiguriert werden das es Graphite als Datenquelle benutzt. Der Einfachkeit halber wird die Konfiguration über einen Screencast erklärt.
MODULE_VERSION="1.1.7"
ICINGAWEB_MODULEPATH="/usr/share/icingaweb2/modules"
REPO_URL="https://github.com/Mikesch-mp/icingaweb2-module-grafana"
TARGET_DIR="${ICINGAWEB_MODULEPATH}/grafana"
URL="${REPO_URL}/archive/v${MODULE_VERSION}.tar.gz"
install -d -m 0755 "${TARGET_DIR}"
wget -q -O - "$URL" | tar xfz - -C "${TARGET_DIR}" --strip-components 1
