ansible-role-grafana/README.md

53 lines
3.4 KiB
Markdown

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 | Default | 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 |
| `grafana_db_type` | `mysql` oder `postgres` | `sqlite3` | optional: Datenbanktyp |
# 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