ansible-role-grafana/README.md
2023-04-13 00:57:22 +02:00

100 lines
2.2 KiB
Markdown

# laurivan.grafana
This role installs Grafana, InfluxDB and Prometheus via Docker.
## Requirements
None
## Role Variables
All variables are listed below (see also `defaults/main.yml`).
### Paths and Volumes
All paths are by default defined as relative to `grafana_volume_base`:
```yml
grafana_volume_base: "/mnt/data/grafana"
grafana_setup_path: "{{ grafana_volume_base }}/config"
grafana_volume_grafana: "{{ grafana_volume_base }}/grafana"
grafana_volume_influxdb: "{{ grafana_volume_base }}/influxdb"
grafana_volume_prometheus: "{{ grafana_volume_base }}/prometheus"
```
You can however define specific volumes for the individual items:
- `grafana_setup_path` - where the Docker compose files are placed
- `grafana_volume_grafana` - volume for the grafana docker container
- `grafana_volume_influxdb` - volume for InfluxDB
- `grafana_volume_prometheus` - volume for Prometheus.io
### InfluxDB
We define the following variables for InfluxDB:
```yml
influxdb:
username: influxdb
password: change_me
org: example.com
bucket: my_bucket
admin_token: change_me
```
### Prometheus
We define Prometheus variables:
```yml
prometheus_port: "9090"
grafana_prometheus_project: my-project
grafana_prometheus_job_name: prometheus
grafana_prometheus_scrape_interval: '120s'
grafana_prometheus_targets:
- "10.0.0.35:9100"
- "10.0.0.35:8080"
```
The targets are locations (ip address + port) where Prometheus polls for new data. This can be [cadvisor](https://github.com/google/cadvisor) or [node exporter](https://github.com/prometheus/node_exporter) for example.
**Note**: Prometheus should be an internal service (i.e., empty `prometheus_port`). Hence, it doesn't have any security in place.
### Grafana
We also define several variables for grafana
```yml
grafana:
username: changeme
password: changeme
```
Just in case, you can override the user/group for grafana via:
```yml
grafana_uid:
grafana_gid:
```
## Dependencies
You need a machine with docker and docker-compose installed.
## Example Playbook
```yml
- hosts: servers
roles:
- 'laurivan.grafana'
```
## License
MIT
## Author Information
This role was created in 2022 by [Laur Ivan](https://www.laurivan.com).