.github | ||
defaults | ||
handlers | ||
meta | ||
molecule | ||
tasks | ||
templates | ||
tests | ||
vars | ||
.gitignore | ||
.travis.yml | ||
.yamllint | ||
CHANGELOG.md | ||
LICENSE | ||
README.md | ||
TODO.md |
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
:
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 placedgrafana_volume_grafana
- volume for the grafana docker containergrafana_volume_influxdb
- volume for InfluxDBgrafana_volume_prometheus
- volume for Prometheus.io
InfluxDB
We define the following variables for InfluxDB:
influxdb:
username: influxdb
password: change_me
org: example.com
bucket: my_bucket
admin_token: change_me
Prometheus
We define Prometheus variables:
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 or 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
grafana:
username: changeme
password: changeme
Just in case, you can override the user/group for grafana via:
grafana_uid:
grafana_gid:
Dependencies
You need a machine with docker and docker-compose installed.
Example Playbook
- hosts: servers
roles:
- 'laurivan.grafana'
License
MIT
Author Information
This role was created in 2022 by Laur Ivan.