From 2c33fcc9cf7c023dc704510069284a2104f57f92 Mon Sep 17 00:00:00 2001 From: nd Date: Sat, 30 May 2020 22:14:44 +0200 Subject: [PATCH] added (working) proxy support --- templates/node-scraper.j2 | 22 ++++++++++++++++++++++ templates/stunnel-client.conf.j2 | 19 ++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/templates/node-scraper.j2 b/templates/node-scraper.j2 index b3d614e..c208586 100644 --- a/templates/node-scraper.j2 +++ b/templates/node-scraper.j2 @@ -17,3 +17,25 @@ target_label: instance - replacement: 'node' target_label: job + +{% for j in prometheus_agent.scrapers[item].proxy|d({}) %} +- job_name: "prometheus-agent - proxy - {{ j }} : {{ inventory_hostname }}" + scheme: https +{% for i in ['scrape_timeout', 'scrape_interval'] if prometheus_agent[i] %} + {{ i }}: {{ prometheus_agent[i] }} +{% endfor %} + static_configs: + - targets: + - {{ inventory_hostname }}:{{ prometheus_agent.scrapers[item].proxy[j] }} + labels: {{ merged_prometheus_labels|to_json }} + tls_config: + ca_file: /etc/prometheus/targetcerts/{{ inventory_hostname }}.crt + cert_file: /etc/ssl/prometheus_scraper.crt + key_file: /etc/ssl/private/prometheus_scraper.key + relabel_configs: + - source_labels: [__address__] + regex: '([^:]+):\d+' + target_label: instance + - replacement: '{{ prometheus_agent.agents.proxy.mappings[j].job }}' + target_label: job +{% endfor %} diff --git a/templates/stunnel-client.conf.j2 b/templates/stunnel-client.conf.j2 index 2d11fee..fdc6ebf 100644 --- a/templates/stunnel-client.conf.j2 +++ b/templates/stunnel-client.conf.j2 @@ -1,7 +1,8 @@ sslVersionMin = TLSv1.2 {% for i in prometheus_agent.scrapers if "nodeexporter" in prometheus_agent.scrapers[i]%} -[scraper {{ i }}] +; nodeexporter +[scraper {{ i }} nodeexporter] client = no requireCert = yes accept = {{ prometheus_agent.scrapers[i].nodeexporter }} @@ -10,5 +11,21 @@ cert = /etc/ssl/prometheus_agent.crt key = /etc/ssl/private/prometheus_agent.key verifyPeer = yes CAfile = /etc/ssl/scraper_{{ i }}.crt +{% endfor %} + +; proxy +{% for i in prometheus_agent.scrapers if "proxy" in prometheus_agent.scrapers[i] %} +{% for j in prometheus_agent.scrapers[i].proxy|d({}) %} +; {{ j }} +[scraper {{ i }} proxy {{ j }}] +client = no +requireCert = yes +accept = {{ prometheus_agent.scrapers[i].proxy[j] }} +connect = {{ prometheus_agent.agents.proxy.mappings[j].address|replace('[', '')|replace(']', '') }} +cert = /etc/ssl/prometheus_agent.crt +key = /etc/ssl/private/prometheus_agent.key +verifyPeer = yes +CAfile = /etc/ssl/scraper_{{ i }}.crt {% endfor %} +{% endfor %}