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"
|
||||
proxy:
|
||||
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_interval: ~
|
||||
scrapers: {}
|
||||
|
|
|
|||
|
|
@ -7,3 +7,8 @@
|
|||
service:
|
||||
name: stunnel4
|
||||
state: restarted
|
||||
|
||||
- name: restart blackbox exporter
|
||||
service:
|
||||
name: prometheus-blackbox-exporter
|
||||
state: restarted
|
||||
|
|
|
|||
|
|
@ -2,6 +2,32 @@
|
|||
apt:
|
||||
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
|
||||
when: prometheus_agent.tls.manage
|
||||
block:
|
||||
|
|
@ -20,12 +46,6 @@
|
|||
certificates:
|
||||
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
|
||||
loop: "{{ prometheus_agent.scrapers.keys()|list }}"
|
||||
delegate_to: "{{ item }}"
|
||||
|
|
|
|||
|
|
@ -18,6 +18,40 @@
|
|||
- replacement: 'node'
|
||||
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({}) %}
|
||||
- job_name: "prometheus-agent - proxy - {{ j }} : {{ inventory_hostname }}"
|
||||
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]
|
||||
|
|
@ -13,6 +13,19 @@ verifyPeer = yes
|
|||
CAfile = /etc/ssl/scraper_{{ i }}.crt
|
||||
{% 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
|
||||
{% for i in prometheus_agent.scrapers if "proxy" in prometheus_agent.scrapers[i] %}
|
||||
{% for j in prometheus_agent.scrapers[i].proxy|d({}) %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue