summaryrefslogtreecommitdiff
path: root/roles/monitoring/prometheus/server
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-08-29 22:41:57 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-08-29 22:41:57 +0200
commit2ad12c3b7e7f6f2159bec33105448e6114ffdfec (patch)
treed6ad7adfe20578effebf2b7e575e4a5d4615186b /roles/monitoring/prometheus/server
parentmove all group_vars to subdir (diff)
prometheus: move blackbox job config to new setup
Diffstat (limited to 'roles/monitoring/prometheus/server')
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/main.yml3
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_blackbox-https.yml3
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ping.yml3
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ssh.yml3
-rw-r--r--roles/monitoring/prometheus/server/filter_plugins/prometheus.py5
-rw-r--r--roles/monitoring/prometheus/server/templates/job-snippets/blackbox-https.j214
-rw-r--r--roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ping.j214
-rw-r--r--roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ssh.j214
-rw-r--r--roles/monitoring/prometheus/server/templates/targets/blackbox-https.yml.j24
-rw-r--r--roles/monitoring/prometheus/server/templates/targets/blackbox-ping.yml.j24
-rw-r--r--roles/monitoring/prometheus/server/templates/targets/blackbox-ssh.yml.j24
11 files changed, 69 insertions, 2 deletions
diff --git a/roles/monitoring/prometheus/server/defaults/main/main.yml b/roles/monitoring/prometheus/server/defaults/main/main.yml
index f6679fa7..95b9da6d 100644
--- a/roles/monitoring/prometheus/server/defaults/main/main.yml
+++ b/roles/monitoring/prometheus/server/defaults/main/main.yml
@@ -16,6 +16,9 @@ prometheus_server_rules:
node: "{{ prometheus_server_rules_node + prometheus_server_rules_node_extra }}"
openwrt: "{{ prometheus_server_rules_openwrt + prometheus_server_rules_node_extra }}"
nut: "{{ prometheus_server_rules_nut + prometheus_server_rules_nut_extra }}"
+ "blackbox-ping": "{{ prometheus_server_rules_blackbox_ping + prometheus_server_rules_blackbox_ping_extra }}"
+ "blackbox-https": "{{ prometheus_server_rules_blackbox_https + prometheus_server_rules_blackbox_https_extra }}"
+ "blackbox-ssh": "{{ prometheus_server_rules_blackbox_ssh + prometheus_server_rules_blackbox_ssh_extra }}"
# prometheus_server_alertmanager:
# url: "127.0.0.1:9093"
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-https.yml b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-https.yml
new file mode 100644
index 00000000..bb806075
--- /dev/null
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-https.yml
@@ -0,0 +1,3 @@
+---
+prometheus_server_rules_blackbox_https_extra: []
+prometheus_server_rules_blackbox_https: []
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ping.yml b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ping.yml
new file mode 100644
index 00000000..56c122f5
--- /dev/null
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ping.yml
@@ -0,0 +1,3 @@
+---
+prometheus_server_rules_blackbox_ping_extra: []
+prometheus_server_rules_blackbox_ping: []
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ssh.yml b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ssh.yml
new file mode 100644
index 00000000..727d2292
--- /dev/null
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ssh.yml
@@ -0,0 +1,3 @@
+---
+prometheus_server_rules_blackbox_ssh_extra: []
+prometheus_server_rules_blackbox_ssh: []
diff --git a/roles/monitoring/prometheus/server/filter_plugins/prometheus.py b/roles/monitoring/prometheus/server/filter_plugins/prometheus.py
index 6e18481c..5a8722c2 100644
--- a/roles/monitoring/prometheus/server/filter_plugins/prometheus.py
+++ b/roles/monitoring/prometheus/server/filter_plugins/prometheus.py
@@ -23,9 +23,10 @@ def prometheus_special_job_targets(hostvars, jobs, targets):
result = []
for job in jobs:
for target in targets:
- config_varname = 'prometheus_special_job_' + job
+ config_varname = 'prometheus_special_job_' + job.replace('-', '_')
if config_varname in hostvars[target]:
- result.append({'job': job, 'instance': hostvars[target][config_varname]['instance'], 'config': hostvars[target][config_varname]})
+ for config in hostvars[target][config_varname]:
+ result.append({'job': job, 'instance': config['instance'], 'config': config})
return result
except Exception as e:
raise errors.AnsibleFilterError("prometheus_special_job_targets(): %s" % str(e))
diff --git a/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-https.j2 b/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-https.j2
new file mode 100644
index 00000000..0a6d2dfa
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-https.j2
@@ -0,0 +1,14 @@
+ - job_name: '{{ job }}'
+ metrics_path: /proxy
+ params:
+ module:
+ - blackbox
+ - http_tls_2xx
+ scheme: https
+ tls_config:
+ ca_file: /etc/ssl/prometheus/ca-crt.pem
+ cert_file: /etc/ssl/prometheus/server/scrape-crt.pem
+ key_file: /etc/ssl/prometheus/server/scrape-key.pem
+ file_sd_configs:
+ - files:
+ - "/etc/prometheus/jobs/{{ job }}/*.yml"
diff --git a/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ping.j2 b/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ping.j2
new file mode 100644
index 00000000..7f4f12df
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ping.j2
@@ -0,0 +1,14 @@
+ - job_name: '{{ job }}'
+ metrics_path: /proxy
+ params:
+ module:
+ - blackbox
+ - icmp
+ scheme: https
+ tls_config:
+ ca_file: /etc/ssl/prometheus/ca-crt.pem
+ cert_file: /etc/ssl/prometheus/server/scrape-crt.pem
+ key_file: /etc/ssl/prometheus/server/scrape-key.pem
+ file_sd_configs:
+ - files:
+ - "/etc/prometheus/jobs/{{ job }}/*.yml"
diff --git a/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ssh.j2 b/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ssh.j2
new file mode 100644
index 00000000..18381e32
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ssh.j2
@@ -0,0 +1,14 @@
+ - job_name: '{{ job }}'
+ metrics_path: /proxy
+ params:
+ module:
+ - blackbox
+ - ssh_banner
+ scheme: https
+ tls_config:
+ ca_file: /etc/ssl/prometheus/ca-crt.pem
+ cert_file: /etc/ssl/prometheus/server/scrape-crt.pem
+ key_file: /etc/ssl/prometheus/server/scrape-key.pem
+ file_sd_configs:
+ - files:
+ - "/etc/prometheus/jobs/{{ job }}/*.yml"
diff --git a/roles/monitoring/prometheus/server/templates/targets/blackbox-https.yml.j2 b/roles/monitoring/prometheus/server/templates/targets/blackbox-https.yml.j2
new file mode 100644
index 00000000..e843de36
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/targets/blackbox-https.yml.j2
@@ -0,0 +1,4 @@
+- targets: [ "{{ hostvars[target.config.exporter_hostname].prometheus_scrape_endpoint }}" ]
+ labels:
+ instance: "{{ target.instance }}"
+ __param_target: {{ target.config.address }}
diff --git a/roles/monitoring/prometheus/server/templates/targets/blackbox-ping.yml.j2 b/roles/monitoring/prometheus/server/templates/targets/blackbox-ping.yml.j2
new file mode 100644
index 00000000..e843de36
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/targets/blackbox-ping.yml.j2
@@ -0,0 +1,4 @@
+- targets: [ "{{ hostvars[target.config.exporter_hostname].prometheus_scrape_endpoint }}" ]
+ labels:
+ instance: "{{ target.instance }}"
+ __param_target: {{ target.config.address }}
diff --git a/roles/monitoring/prometheus/server/templates/targets/blackbox-ssh.yml.j2 b/roles/monitoring/prometheus/server/templates/targets/blackbox-ssh.yml.j2
new file mode 100644
index 00000000..e843de36
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/targets/blackbox-ssh.yml.j2
@@ -0,0 +1,4 @@
+- targets: [ "{{ hostvars[target.config.exporter_hostname].prometheus_scrape_endpoint }}" ]
+ labels:
+ instance: "{{ target.instance }}"
+ __param_target: {{ target.config.address }}