Grafana ======= [Grafana](https://grafana.com) ist eine Redering-Enging für Zeitreihen. # Ausführen der Rolle - In der jeweiligen `host_vars`-Datei die Variablen in einer `grafana`-Map setzen: | Variable | Wert | Beschreibung | |----------|------|--------------| | `domain` | string | Domainname der Grafana-Instanz | - Rolle ausführen: ```Shell ansible-playbook playbooks/grafana.yml ``` - Grafana aufrufen - der Erstlogin erfolgt mit `admin:admin`. Anschließend das Passwort ändern und in unsere Zugangsdatenbank eintragen. # Grafana mit Icinga verknüpfen Mit Grafana lassen sich die Performance-Daten aus den Icinga-Checks grafisch in Icinga-Web2 darstellen: - Neue "Data Source" hinzufügen und InfluxDB als Datenquelle angeben | Option | Wert | |--------|------| | Server | `http://localhost:8086` | | Datanbank | icinga2 | - Unter `/org/apikeys` einen API-Schlüssel erzeugen - Nun die Icinga-Dashboards unter `/dashboard/import` importieren. Dazu [hier](https://github.com/Mikesch-mp/icingaweb2-module-grafana/tree/master/dashboards/influxdb) die Dateien `base-metrics.json` und `icinga2-default.json` herunter laden. - Beim Import von `icinga2-default.json` müssen die [Queries](https://github.com/Mikesch-mp/icingaweb2-module-grafana/blob/master/doc/06-create-grafana-dashboards-influxdb.md#Templating) (Hostname, Service, Command) angepasst werden - Die Darstellung des Grafen für den http-Check anpassen, da sie ansonsten keine Aussagekraft hat: - Dazu das Dashboard ''icinga2-default'' öffnen und einen beliebigen http-Check auswählen - ''Edit Panel'': - Rechts in den Panel-Optionen: ''Axes'' --> ''Left Y'': Unit auf ''Seconds'' und ''Scale'' --> ''log(base 2)'' - Unten bei der Query-Abfrage: ''Transform'' --> ''Filter by name '' --> ''size'' deaktivieren - Das [Icingaweb2-Modul](https://github.com/Mikesch-mp/icingaweb2-module-grafana|Icingaweb2-Modul) aktivieren. Automatisiert über die [Ansible-Rolle](https://git.systemausfall.org/systemausfall.org/ansible/src/branch/main/roles/icinga2) - Verzeichnis `/etc/icingaweb2/modules/grafana` anlegen und Besitzrechte analog zu den anderen Verzeichnissen vergeben - Modul in Icingaweb2 `/config/modules#!/grafana/config` konfigurieren: - host: Grafana-Domain - Default Dashboard UID: Dazu in Grafana eine Grafik öffnen und über die *Share*-Funktion die Panel-ID aus der URL kopieren - Grafana access: Indirect proxy - Authentication type: API Token - Das Redering der Graphen erfolgt mit dem [Grafana Image Renderer](https://grafana.com/grafana/plugins/grafana-image-renderer) und Chromium - [Hostalive](https://dokuwiki.tachtler.net/doku.php?id=tachtler:icinga2_-_grafana#icingaweb2add_new_grafana_graphhostalive)-Graph hinzufügen: - Dashboard name: base-metrics - Dashborad UID und Panel-ID erneut aus dem Share-Link kopieren