Go to file
2023-04-13 00:57:22 +02:00
.github feat: Add grafana role. 2022-12-19 14:18:31 +01:00
defaults feat! Add prometheus. 2023-04-13 00:50:07 +02:00
handlers feat: Add grafana role. 2022-12-19 14:18:31 +01:00
meta feat: Add grafana role. 2022-12-19 14:18:31 +01:00
molecule feat! Add prometheus. 2023-04-13 00:50:07 +02:00
tasks feat! Add prometheus. 2023-04-13 00:50:07 +02:00
templates feat! Add prometheus. 2023-04-13 00:50:07 +02:00
tests feat: Add grafana role. 2022-12-19 14:18:31 +01:00
vars feat! Add prometheus. 2023-04-13 00:50:07 +02:00
.gitignore feat: Add grafana role. 2022-12-19 14:18:31 +01:00
.travis.yml feat: Add grafana role. 2022-12-19 14:18:31 +01:00
.yamllint feat: Add grafana role. 2022-12-19 14:18:31 +01:00
CHANGELOG.md chore(release): 1.1.1 2023-04-03 16:15:28 +02:00
LICENSE feat: Add grafana role. 2022-12-19 14:18:31 +01:00
README.md chore: Update README. 2023-04-13 00:57:22 +02:00
TODO.md feat: Add grafana role. 2022-12-19 14:18:31 +01:00

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 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:

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.