From 2ad12c3b7e7f6f2159bec33105448e6114ffdfec Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 29 Aug 2021 22:41:57 +0200 Subject: prometheus: move blackbox job config to new setup --- roles/monitoring/prometheus/server/defaults/main/main.yml | 3 +++ .../server/defaults/main/rules_blackbox-https.yml | 3 +++ .../server/defaults/main/rules_blackbox-ping.yml | 3 +++ .../prometheus/server/defaults/main/rules_blackbox-ssh.yml | 3 +++ .../prometheus/server/filter_plugins/prometheus.py | 5 +++-- .../server/templates/job-snippets/blackbox-https.j2 | 14 ++++++++++++++ .../server/templates/job-snippets/blackbox-ping.j2 | 14 ++++++++++++++ .../server/templates/job-snippets/blackbox-ssh.j2 | 14 ++++++++++++++ .../server/templates/targets/blackbox-https.yml.j2 | 4 ++++ .../server/templates/targets/blackbox-ping.yml.j2 | 4 ++++ .../server/templates/targets/blackbox-ssh.yml.j2 | 4 ++++ 11 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 roles/monitoring/prometheus/server/defaults/main/rules_blackbox-https.yml create mode 100644 roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ping.yml create mode 100644 roles/monitoring/prometheus/server/defaults/main/rules_blackbox-ssh.yml create mode 100644 roles/monitoring/prometheus/server/templates/job-snippets/blackbox-https.j2 create mode 100644 roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ping.j2 create mode 100644 roles/monitoring/prometheus/server/templates/job-snippets/blackbox-ssh.j2 create mode 100644 roles/monitoring/prometheus/server/templates/targets/blackbox-https.yml.j2 create mode 100644 roles/monitoring/prometheus/server/templates/targets/blackbox-ping.yml.j2 create mode 100644 roles/monitoring/prometheus/server/templates/targets/blackbox-ssh.yml.j2 (limited to 'roles/monitoring/prometheus/server') 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 }} -- cgit v1.2.3