Grafana ======= [Grafana](https://grafana.com) ist eine Redering-Enging für Zeitreihen. # Variablen Die folgenden Variablen müssen vor der Ausführung der Rolle gesetzt werden: | Variable | Wert | Bedeutung | |----------|------|--------------| | `grafana_domain` | string | Domainname der Grafana-Instanz | | `grafana_db_password` | string | Passwort des Datenbanknutzers | | `grafana_webserver` | `apache` oder `nginx` | Optional: Einrichtung des entsprechendem Webservers | # Ausführen der Rolle - Erstelle ein Playbook namen `grafana.yml` und führe die Rolle aus: ```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 Web 2 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 und den Schlüssel kopieren. - 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 - Dazu die Dashboard-Settings öffnen - links im Menü *Variables* auswählen - die entsprechende Variable anklicken - Im Feld *Select variable type* den Wert *Query* wählen und unter *Query Options* das Query von der o.g. Modul-Seite eintragen - Die Darstellung des Grafen für den http-Check anpassen, da es ansonsten keine Aussagekraft hat: - Dazu das Dashboard ''icinga2-default'' öffnen und einen beliebigen http-Check auswählen und mit *Edit Panel* bearbeiten: - 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 [Icinga-Web-2-Modul](https://github.com/Mikesch-mp/icingaweb2-module-grafana) aktivieren. Automatisiert über die [Ansible-Rolle](https://git.systemausfall.org/systemausfall.org/ansible/src/branch/main/roles/icinga2) - Modul in Icinga Web 2 `/config/modules#!/grafana/config` konfigurieren: | Option | Wert | |--------|------| | host | Grafana-Domain | | Default Dashboard UID | Dazu in Grafana eine Grafik öffnen und über die *Share*-Funktion die Panel-ID aus der URL kopieren, [siehe](https://dokuwiki.tachtler.net/lib/exe/detail.php?id=tachtler%3Aicinga2_-_grafana&media=tachtler:grafana:grafana_dashboard_icinga-default_share_uid.png) | | Grafana access | Indirect proxy | | Authentication type | API Token | - [Hostalive](https://dokuwiki.tachtler.net/doku.php?id=tachtler:icinga2_-_grafana#icingaweb2add_new_grafana_graphhostalive)-Graph in Icinga Web 2 hinzufügen: - Neuen Graphen unter `grafana/graph` anlegen - Dashboard name: base-metrics - Dashborad UID und Panel-ID erneut aus dem Share-Link einer base-metrics-Grafik kopieren