147 lines
3.6 KiB
Django/Jinja
147 lines
3.6 KiB
Django/Jinja
# vim:ft=ansible:
|
|
---
|
|
global:
|
|
scrape_interval: 15s
|
|
evaluation_interval: 15s
|
|
|
|
scrape_configs:
|
|
# Default Prometheus job to monitor itself
|
|
- job_name: "prometheus"
|
|
static_configs:
|
|
- targets: ['localhost:9090']
|
|
|
|
# This is shipped by the Ansible role that deploys Prometheus
|
|
- job_name: "blackbox-ssh"
|
|
metrics_path: /probe
|
|
params:
|
|
module: [ssh_banner]
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios'] %}
|
|
- "{{ host }}:22"
|
|
{% endfor %}
|
|
relabel_configs:
|
|
- source_labels: [__address__]
|
|
target_label: __param_target
|
|
- source_labels: [__param_target]
|
|
target_label: instance
|
|
- target_label: __address__
|
|
replacement: blackbox:9115
|
|
- job_name: "blackbox-http"
|
|
metrics_path: /probe
|
|
params:
|
|
module: [http_2xx]
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios'] %}
|
|
{% set vars = hostvars[host] %}
|
|
{% for service in vars.services %}
|
|
{% for tag in service.tags %}
|
|
{# #}
|
|
{% if tag.slug == "nagios-checkhttps" %}
|
|
{% for port in service.ports %}
|
|
- "https://{{ service.name }}:{{ port }}"
|
|
{% endfor %}
|
|
{% endif %}
|
|
{# #}
|
|
{% if tag.slug == "nagios-checkmatrix" %}
|
|
{% for port in service.ports %}
|
|
- "https://{{ service.name }}:{{ port }}/health"
|
|
{% endfor %}
|
|
{% endif %}
|
|
{# #}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
relabel_configs:
|
|
- source_labels: [__address__]
|
|
target_label: __param_target
|
|
- source_labels: [__param_target]
|
|
target_label: instance
|
|
- target_label: __address__
|
|
replacement: blackbox:9115
|
|
- job_name: "blackbox-exporter"
|
|
static_configs:
|
|
- targets: ['blackbox:9115']
|
|
|
|
# This job manages Minecraft servers, when we have them
|
|
- job_name: "minecraft"
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios'] %}
|
|
{% set vars = hostvars[host] %}
|
|
{% for service in vars.services %}
|
|
{% for tag in service.tags %}
|
|
{# #}
|
|
{% if tag.slug == "nagios-checkminecraft" %}
|
|
{% for port in service.ports %}
|
|
- "{{ host }}:{{ port }}"
|
|
{% endfor %}
|
|
{% endif %}
|
|
{# #}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
|
# This job takes in information from Netbox on the generic "prom-metrics" tag
|
|
# It's useful for all sorts of stuff
|
|
- job_name: "generic"
|
|
scheme: "https"
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios'] %}
|
|
{% set vars = hostvars[host] %}
|
|
{% for service in vars.services %}
|
|
{% for tag in service.tags %}
|
|
{# #}
|
|
{% if tag.slug == "prom-metrics" %}
|
|
{% for port in service.ports %}
|
|
- "{{ service.name }}:{{ port }}"
|
|
{% endfor %}
|
|
{% endif %}
|
|
{# #}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
|
# This one does the same thing but for HTTP-only clients
|
|
- job_name: "generic-http"
|
|
scheme: "http"
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios'] %}
|
|
{% set vars = hostvars[host] %}
|
|
{% for service in vars.services %}
|
|
{% for tag in service.tags %}
|
|
{# #}
|
|
{% if tag.slug == "prom-metrics-http" %}
|
|
{% for port in service.ports %}
|
|
- "{{ service.name }}:{{ port }}"
|
|
{% endfor %}
|
|
{% endif %}
|
|
{# #}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
# These two jobs are included for every node in our inventory
|
|
- job_name: "node-exporter"
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios'] %}
|
|
- '{{ host }}:9100'
|
|
{% endfor %}
|
|
- job_name: "cadvisor-exporter"
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios'] %}
|
|
- '{{ host }}:9101'
|
|
{% endfor %}
|
|
|
|
# This container is used on every psql machine
|
|
- job_name: "psql-exporter"
|
|
static_configs:
|
|
- targets:
|
|
{% for host in groups['tags_nagios-checkpgsql'] %}
|
|
- '{{ host }}:9102'
|
|
{% endfor %}
|