Make node updating dynamic in Prometheus

certbot_on_virtu
Alexandre Iooss 2019-04-18 15:01:24 +02:00
parent 7ee06b0e83
commit 528da73d8d
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
4 changed files with 59 additions and 3 deletions

View File

@ -1,9 +1,22 @@
---
# Playbook for monitoring
# Deploy Prometheus
- hosts: prometheus.adm.crans.org
vars:
# Prometheus targets.json
prometheus_targets:
- labels:
job: node
targets:
- localhost:9100
- vulcain.adm.crans.org:9100
- labels:
job: prometheus
targets:
- localhost:9090
roles:
- prometheus
# Monitor all hosts
- hosts: all
roles:
- prometheus-node

View File

@ -0,0 +1,5 @@
---
- name: Restart Prometheus
service:
name: prometheus
state: restarted

View File

@ -1,9 +1,20 @@
---
- name: Instal Prometheus
- name: Install Prometheus
apt:
update_cache: true
name: prometheus
register: apt_result
retries: 3
until: apt_result is succeeded
- name: Configure Prometheus
template:
src: prometheus/prometheus.yml.j2
dest: /etc/prometheus/prometheus.yml
notify: Restart Prometheus
# We don't need to restart Prometheus when updating nodes
- name: Configure Prometheus nodes
copy:
content: "{{ prometheus_targets | to_nice_json }}"
dest: /etc/prometheus/targets.json

View File

@ -0,0 +1,27 @@
# {{ ansible_managed }}
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
# 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'
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
rule_files:
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
- job_name: dummy
# This reload dynamically the list of targets
# You don't need to restart Prometheus when updating targets.json
file_sd_configs:
- files:
- '/etc/prometheus/targets.json'