added support for the blackbox exporter
This commit is contained in:
parent
7997ebfb59
commit
f772558e31
6 changed files with 113 additions and 7 deletions
|
|
@ -199,6 +199,30 @@ prometheus_agent:
|
||||||
'web.listen-address': "[::1]:9100"
|
'web.listen-address': "[::1]:9100"
|
||||||
proxy:
|
proxy:
|
||||||
mappings: {}
|
mappings: {}
|
||||||
|
blackbox:
|
||||||
|
enable: False
|
||||||
|
args:
|
||||||
|
"web.listen-address": "[::1]:9115"
|
||||||
|
"config.file": "/etc/prometheus/blackbox.yml"
|
||||||
|
config:
|
||||||
|
modules:
|
||||||
|
http_2xx:
|
||||||
|
prober: http
|
||||||
|
http:
|
||||||
|
http_post_2xx:
|
||||||
|
prober: http
|
||||||
|
http:
|
||||||
|
method: POST
|
||||||
|
tcp_connect:
|
||||||
|
prober: tcp
|
||||||
|
ssh_banner:
|
||||||
|
prober: tcp
|
||||||
|
tcp:
|
||||||
|
query_response:
|
||||||
|
- expect: "^SSH-2.0-"
|
||||||
|
icmp:
|
||||||
|
prober: icmp
|
||||||
|
jobs: {}
|
||||||
scrape_timeout: ~
|
scrape_timeout: ~
|
||||||
scrape_interval: ~
|
scrape_interval: ~
|
||||||
scrapers: {}
|
scrapers: {}
|
||||||
|
|
|
||||||
|
|
@ -7,3 +7,8 @@
|
||||||
service:
|
service:
|
||||||
name: stunnel4
|
name: stunnel4
|
||||||
state: restarted
|
state: restarted
|
||||||
|
|
||||||
|
- name: restart blackbox exporter
|
||||||
|
service:
|
||||||
|
name: prometheus-blackbox-exporter
|
||||||
|
state: restarted
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,32 @@
|
||||||
apt:
|
apt:
|
||||||
pkg: prometheus-node-exporter
|
pkg: prometheus-node-exporter
|
||||||
|
|
||||||
|
- name: copy node-exporter config
|
||||||
|
notify: restart node-exporter
|
||||||
|
template:
|
||||||
|
src: node-exporter.j2
|
||||||
|
dest: /etc/default/prometheus-node-exporter
|
||||||
|
|
||||||
|
- name: handle blackbox exporter
|
||||||
|
when: prometheus_agent.agents.blackbox.enable
|
||||||
|
block:
|
||||||
|
- name: install blackbox exporter
|
||||||
|
apt:
|
||||||
|
pkg: prometheus-blackbox-exporter
|
||||||
|
- name: wrtie blackbox exporter service config
|
||||||
|
notify: restart blackbox exporter
|
||||||
|
template:
|
||||||
|
src: prometheus-blackbox.j2
|
||||||
|
dest: /etc/default/prometheus-blackbox-exporter
|
||||||
|
- name: wrtie blackbox exporter config
|
||||||
|
notify: restart blackbox exporter
|
||||||
|
copy:
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
dest: /etc/prometheus/blackbox.yml
|
||||||
|
content: "{{ prometheus_agent.agents.blackbox.config|to_nice_yaml(indent=2) }}"
|
||||||
|
|
||||||
- name: manage tls
|
- name: manage tls
|
||||||
when: prometheus_agent.tls.manage
|
when: prometheus_agent.tls.manage
|
||||||
block:
|
block:
|
||||||
|
|
@ -20,12 +46,6 @@
|
||||||
certificates:
|
certificates:
|
||||||
certs: "{{ {}|combine(prometheus_certs, inventory_certs, recursive=True) }}"
|
certs: "{{ {}|combine(prometheus_certs, inventory_certs, recursive=True) }}"
|
||||||
|
|
||||||
- name: copy node-exporter config
|
|
||||||
template:
|
|
||||||
src: node-exporter.j2
|
|
||||||
dest: /etc/default/prometheus-node-exporter
|
|
||||||
notify: restart node-exporter
|
|
||||||
|
|
||||||
- name: slurp up all scraper certs
|
- name: slurp up all scraper certs
|
||||||
loop: "{{ prometheus_agent.scrapers.keys()|list }}"
|
loop: "{{ prometheus_agent.scrapers.keys()|list }}"
|
||||||
delegate_to: "{{ item }}"
|
delegate_to: "{{ item }}"
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,40 @@
|
||||||
- replacement: 'node'
|
- replacement: 'node'
|
||||||
target_label: job
|
target_label: job
|
||||||
|
|
||||||
|
{% if prometheus_agent.scrapers[item].blackbox and prometheus_agent.agents.blackbox.enable %}
|
||||||
|
{% for j in prometheus_agent.agents.blackbox.jobs %}
|
||||||
|
{% set job=prometheus_agent.agents.blackbox.jobs[j] %}
|
||||||
|
- job_name: "prometheus-agent - blackbox - {{ j }} : {{ inventory_hostname }}"
|
||||||
|
scheme: https
|
||||||
|
{% for i in ['scrape_timeout', 'scrape_interval'] if (prometheus_agent|combine(job))[i] %}
|
||||||
|
{{ i }}: {{ (prometheus_agent|combine(job))[i] }}
|
||||||
|
{% endfor %}
|
||||||
|
params:
|
||||||
|
module: [{{ job.module }}]
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
{% for t in job.targets %}
|
||||||
|
- {{ t }}
|
||||||
|
{% endfor %}
|
||||||
|
labels: {{ merged_prometheus_labels|combine(job.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__]
|
||||||
|
target_label: __param_target
|
||||||
|
- source_labels: [__param_target]
|
||||||
|
target_label: instance
|
||||||
|
- replacement: 'blackbox'
|
||||||
|
target_label: job
|
||||||
|
- replacement: '{{ job.module }}'
|
||||||
|
target_label: module
|
||||||
|
- target_label: __address__
|
||||||
|
replacement: {{ inventory_hostname }}:{{ prometheus_agent.scrapers[item].blackbox }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% for j in prometheus_agent.scrapers[item].proxy|d({}) %}
|
{% for j in prometheus_agent.scrapers[item].proxy|d({}) %}
|
||||||
- job_name: "prometheus-agent - proxy - {{ j }} : {{ inventory_hostname }}"
|
- job_name: "prometheus-agent - proxy - {{ j }} : {{ inventory_hostname }}"
|
||||||
scheme: https
|
scheme: https
|
||||||
|
|
|
||||||
10
templates/prometheus-blackbox.j2
Normal file
10
templates/prometheus-blackbox.j2
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
ARGS="{% for i in prometheus_agent.agents.blackbox.args %} --{{ i }}{% if prometheus_agent.agents.blackbox.args[i] and prometheus_agent.agents.blackbox.args[i] != {} %}='{{ prometheus_agent.agents.blackbox.args[i] }}'{% endif %} {% endfor %}"
|
||||||
|
|
||||||
|
# Usage of prometheus-blackbox-exporter:
|
||||||
|
# --config.file="blackbox.yml"
|
||||||
|
# Blackbox exporter configuration file.
|
||||||
|
# --web.listen-address=":9115"
|
||||||
|
# The address to listen on for HTTP requests.
|
||||||
|
# --timeout-offset=0.5 Offset to subtract from timeout in seconds.
|
||||||
|
# --log.level=info Only log messages with the given severity or above.
|
||||||
|
# One of: [debug, info, warn, error]
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
sslVersionMin = TLSv1.2
|
sslVersionMin = TLSv1.2
|
||||||
|
|
||||||
{% for i in prometheus_agent.scrapers if "nodeexporter" in prometheus_agent.scrapers[i]%}
|
{% for i in prometheus_agent.scrapers if "nodeexporter" in prometheus_agent.scrapers[i] %}
|
||||||
; nodeexporter
|
; nodeexporter
|
||||||
[scraper {{ i }} nodeexporter]
|
[scraper {{ i }} nodeexporter]
|
||||||
client = no
|
client = no
|
||||||
|
|
@ -13,6 +13,19 @@ verifyPeer = yes
|
||||||
CAfile = /etc/ssl/scraper_{{ i }}.crt
|
CAfile = /etc/ssl/scraper_{{ i }}.crt
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
{% for i in prometheus_agent.scrapers if "blackbox" in prometheus_agent.scrapers[i] and prometheus_agent.agents.blackbox.enable%}
|
||||||
|
; blackbox
|
||||||
|
[scraper {{ i }} blackbox]
|
||||||
|
client = no
|
||||||
|
requireCert = yes
|
||||||
|
accept = {{ prometheus_agent.scrapers[i].blackbox }}
|
||||||
|
connect = {{ prometheus_agent.agents.blackbox.args['web.listen-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 %}
|
||||||
|
|
||||||
; proxy
|
; proxy
|
||||||
{% for i in prometheus_agent.scrapers if "proxy" in prometheus_agent.scrapers[i] %}
|
{% for i in prometheus_agent.scrapers if "proxy" in prometheus_agent.scrapers[i] %}
|
||||||
{% for j in prometheus_agent.scrapers[i].proxy|d({}) %}
|
{% for j in prometheus_agent.scrapers[i].proxy|d({}) %}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue