ansible-role-grafana/README.md

49 lines
2.9 KiB
Markdown
Raw Normal View History

2022-12-27 10:43:32 +01:00
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:amdin`. 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
- Unte `/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) herunter laden und entpacken. Als Pfad kann `/data/icingaweb2-modules` gewählt werden
- Modulepfad in `/etc/icingaweb2/global.ini` anpassen:
```Ini
[global]
...
module_path = "/usr/share/icingaweb2/modules:/data/icingaweb2-modules"
```
- 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) - Installation mit:
```Shell
grafana-cli plugins install grafana-image-renderer
```
- Zusätzlich muss Chromium installiert werden (automatisch durch die Rolle)
- [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