diff options
-rw-r--r-- | ansible/host_vars/lovelace/prometheus.yml | 38 | ||||
-rw-r--r-- | ansible/playbook.yml | 1 | ||||
-rw-r--r-- | ansible/roles/prometheus-blackbox-exporter/README.md | 3 | ||||
-rw-r--r-- | ansible/roles/prometheus-blackbox-exporter/tasks/main.yaml | 7 | ||||
-rw-r--r-- | ansible/roles/prometheus/defaults/main.yml | 47 |
5 files changed, 49 insertions, 47 deletions
diff --git a/ansible/host_vars/lovelace/prometheus.yml b/ansible/host_vars/lovelace/prometheus.yml index d148bf1..1e4ec40 100644 --- a/ansible/host_vars/lovelace/prometheus.yml +++ b/ansible/host_vars/lovelace/prometheus.yml @@ -35,3 +35,41 @@ prometheus_configuration: # Scrape node exporters on all hosts static_configs: - targets: "{{ hostvars.values() | map(attribute='ansible_wg0.ipv4.address') | map('regex_replace', '^(.*)$', '\\1:9100') | list }}" + + - job_name: blackbox-ssh + metrics_path: /probe + params: + module: [ssh_banner] + + static_configs: + - targets: + - lovelace.box.pydis.wtf + - turing.box.pydis.wtf + + relabel_configs: + # Ensure that the SSH port is included explicitly + - source_labels: [__address__] + regex: (.*?)(:.*)? + replacement: ${1}:22 + target_label: __param_target + + - source_labels: [__param_target] + target_label: instance + + - target_label: __address__ + replacement: localhost:9115 + + - job_name: blackbox-http + metrics_path: /probe + params: + module: [http_2xx] + static_configs: + - targets: + - https://pydis.wtf/ + - https://cloud.native.is.fun.and.easy.pydis.wtf/ + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ diff --git a/ansible/playbook.yml b/ansible/playbook.yml index e963a31..ad8f2ad 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -14,6 +14,7 @@ hosts: lovelace roles: - prometheus + - prometheus-blackbox-exporter - name: Deploy nginx & certbot to hosts hosts: nginx diff --git a/ansible/roles/prometheus-blackbox-exporter/README.md b/ansible/roles/prometheus-blackbox-exporter/README.md new file mode 100644 index 0000000..d84e7ed --- /dev/null +++ b/ansible/roles/prometheus-blackbox-exporter/README.md @@ -0,0 +1,3 @@ +# Role "prometheus-blackbox-exporter" + +Installs `prometheus-blackbox-exporter` on target hosts. diff --git a/ansible/roles/prometheus-blackbox-exporter/tasks/main.yaml b/ansible/roles/prometheus-blackbox-exporter/tasks/main.yaml new file mode 100644 index 0000000..bba364c --- /dev/null +++ b/ansible/roles/prometheus-blackbox-exporter/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +- name: Install prometheus-blackbox-exporter + package: + name: prometheus-blackbox-exporter + state: present + tags: + - role::prometheus-blackbox-exporter diff --git a/ansible/roles/prometheus/defaults/main.yml b/ansible/roles/prometheus/defaults/main.yml deleted file mode 100644 index fc2da50..0000000 --- a/ansible/roles/prometheus/defaults/main.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -# Default Prometheus configuration sample -prometheus_configuration: - global: - scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. - evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. - # scrape_timeout is set to the global default (10s). - - # Attach these labels to any time series or alerts when communicating with - # external systems (federation, remote storage, Alertmanager). - external_labels: - monitor: 'example' - - # Alertmanager configuration - alerting: - alertmanagers: - - static_configs: - - targets: ['localhost:9093'] - - # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. - rule_files: - - "rules.yml" - - # A scrape configuration containing exactly one endpoint to scrape: - # Here it's Prometheus itself. - scrape_configs: - # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - - job_name: 'prometheus' - - # Override the global default and scrape targets from this job every 5 seconds. - scrape_interval: 5s - scrape_timeout: 5s - - # metrics_path defaults to '/metrics' - # scheme defaults to 'http'. - - static_configs: - - targets: ['localhost:9090'] - - - job_name: node - # If prometheus-node-exporter is installed, grab stats about the local - # machine by default. - static_configs: - - targets: ['localhost:9100'] - -prometheus_rules: - groups: [] |