diff options
Diffstat (limited to 'prometheus/server')
| -rw-r--r-- | prometheus/server/defaults/main.yaml | 9 | ||||
| -rw-r--r-- | prometheus/server/handlers/main.yaml | 9 | ||||
| -rw-r--r-- | prometheus/server/tasks/main.yaml | 56 | ||||
| -rw-r--r-- | prometheus/server/templates/prometheus.yml.j2 | 42 |
4 files changed, 116 insertions, 0 deletions
diff --git a/prometheus/server/defaults/main.yaml b/prometheus/server/defaults/main.yaml new file mode 100644 index 0000000..53b53c9 --- /dev/null +++ b/prometheus/server/defaults/main.yaml @@ -0,0 +1,9 @@ +--- + +prometheus_server_conf: "prometheus.yml.j2" +prometheus_server_apt_packages: + - "prometheus" + - "grafana" + +prometheus_server_grafana_plugins: + - "flant-statusmap-panel" diff --git a/prometheus/server/handlers/main.yaml b/prometheus/server/handlers/main.yaml new file mode 100644 index 0000000..248df86 --- /dev/null +++ b/prometheus/server/handlers/main.yaml @@ -0,0 +1,9 @@ +--- + +- name: restart prometheus service + systemd: name="prometheus.service" state="restarted" daemon_reload="yes" + become: yes + +- name: restart grafana service + systemd: name="grafana-server.service" state="restarted" daemon_reload="yes" + become: yes diff --git a/prometheus/server/tasks/main.yaml b/prometheus/server/tasks/main.yaml new file mode 100644 index 0000000..10d67a5 --- /dev/null +++ b/prometheus/server/tasks/main.yaml @@ -0,0 +1,56 @@ +--- + +- name: add grafana apt key + become: yes + apt_key: url="https://packages.grafana.com/gpg.key" + +- name: add grafana apt repo + become: yes + apt_repository: repo="deb https://packages.grafana.com/oss/deb stable main" + +- name: install prometheus and grafana + become: yes + apt: name="{{prometheus_server_apt_packages}}" state="latest" + +- name: configure prometheus + become: yes + template: + src: "{{prometheus_server_conf}}" + dest: "/etc/prometheus/prometheus.yml" + notify: + - restart prometheus service + - restart grafana service + +- name: ensure grafana is started + become: yes + systemd: name="grafana-server.service" enabled="yes" state="started" + +- name: install grafana prometheus data source + become: yes + grafana_datasource: + name: "Prometheus" + ds_type: "prometheus" + ds_url: "http://localhost:9090" + grafana_url: "http://localhost:3000" + is_default: yes + changed_when: false + +- name: install grafana plugins + become: yes + grafana_plugin: name="{{item}}" + loop: "{{prometheus_server_grafana_plugins}}" + +- name: copy dashboards to target + become: yes + copy: + src: "{{prometheus_server_grafana_dashboard_src}}/{{item}}" + dest: "/tmp/" + mode: "0640" + loop: "{{prometheus_server_grafana_dashboards}}" + +# - name: install grafana dashboards +# become: yes +# grafana_dashboard: +# grafana_url: "http://localhost:3000" +# path: "/tmp/{{item}}" +# loop: "{{prometheus_server_grafana_dashboards}}" diff --git a/prometheus/server/templates/prometheus.yml.j2 b/prometheus/server/templates/prometheus.yml.j2 new file mode 100644 index 0000000..cf88480 --- /dev/null +++ b/prometheus/server/templates/prometheus.yml.j2 @@ -0,0 +1,42 @@ +global: + scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. + evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. + # scrape_timeout is set to the global default (10s). + + # Attach these labels to any time series or alerts when communicating with + # external systems (federation, remote storage, Alertmanager). + external_labels: + monitor: 'example' + +# Alertmanager configuration +# alerting: +# alertmanagers: +# - static_configs: +# - targets: ['localhost:9093'] + +# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. +# rule_files: + # - "first_rules.yml" + # - "second_rules.yml" + +# A scrape configuration containing exactly one endpoint to scrape: +# Here it's Prometheus itself. +scrape_configs: + # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. + - job_name: 'prometheus' + # server stats + static_configs: + - targets: + - 'localhost:9090' + + - job_name: node + # If prometheus-node-exporter is installed, grab stats about the local machine by default. + static_configs: + - targets: + - 'localhost:9100' + + - job_name: rpi + # rpi_exporter + static_configs: + - targets: + - 'localhost:9243' |
