EOX GitLab Instance

Skip to content
Snippets Groups Projects
prometheus.yml.j2 8.75 KiB
Newer Older
Karl Grube's avatar
Karl Grube committed
# Sample config for Prometheus.

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:
Karl Grube's avatar
Karl Grube committed

# Alertmanager configuration
Karl Grube's avatar
Karl Grube committed
alerting:
  alertmanagers:
  - static_configs:
    - targets:
{% for host in alertmanagers %}
      - '{{host}}'
{% endfor %}
Karl Grube's avatar
Karl Grube committed
    scheme: https
    tls_config:
        # Prometheus will check that the node_exporter presents a certificate
        # signed by this ca.
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        # The cert and key are presented to node_exporter to authenticate
        # Prometheus as a client.
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
Karl Grube's avatar
Karl Grube committed
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
Karl Grube's avatar
Karl Grube committed
  - 'alerts/*.yml'
Karl Grube's avatar
Karl Grube committed

Karl Grube's avatar
Karl Grube committed
scrape_configs:
  - job_name: lxc
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    file_sd_configs:
      - files:
        - 'lxc.yml'
  - job_name: bare_metal
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
Karl Grube's avatar
Karl Grube committed
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    file_sd_configs:
Karl Grube's avatar
Karl Grube committed
      - files:
        - 'bare_metal.yml'
  - job_name: bare_metal_smartctl
    metrics_path: /smart_metrics
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    file_sd_configs:
      - files:
        - 'bare_metal.yml'
  - job_name: postfix
Karl Grube's avatar
Karl Grube committed
    metrics_path: /postfix_metrics
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    file_sd_configs:
      - files:

{% if groups['lxc_host'] is defined %}
Karl Grube's avatar
Karl Grube committed
  - job_name: lxc_host_cadvisor
    metrics_path: /cadvisor-metrics
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    static_configs:
      - targets:
{%   for host in groups['lxc_host'] %}
          - '{{host}}:9100'
{%   endfor %}

Karl Grube's avatar
Karl Grube committed
  - job_name: lxc_host_lvm
    metrics_path: /lvm-metrics
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    static_configs:
      - targets:
{%   for host in groups['lxc_host'] %}
          - '{{host}}:9100'
{%   endfor %}
{% endif %}


{% if blackbox_monitoring is defined %}
### blackbox exporter configuration ###
{%   for exporter in blackbox_exporters %}

Nicolas Baudoin's avatar
Nicolas Baudoin committed
{%     if blackbox_monitoring.icmp is defined %}
  - job_name: {{exporter}}_icmp
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets:
{%       for host in blackbox_monitoring.icmp %}
        - {{host}}
{%       endfor %}
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: {{exporter}}:9100
{%     endif %}

{%     if blackbox_monitoring.http_no_tls is defined %}
  - job_name: {{exporter}}_http_no_tls
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    metrics_path: /probe
    params:
      module: [http_no_tls]
    static_configs:
      - targets:
{%       for host in blackbox_monitoring.http_no_tls %}
        - http://{{host}}
{%       endfor %}
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: {{exporter}}:9100
{%     endif %}
{%     if blackbox_monitoring.http_2xx is defined %}
  - job_name: {{exporter}}_http_2xx
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets:
{%       for host in blackbox_monitoring.http_2xx %}
        - https://{{host}}
{%       endfor %}
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: {{exporter}}:9100
{%     endif %}
Benjamin Akhras's avatar
Benjamin Akhras committed
{%     if blackbox_monitoring.http_custom is defined %}
Karl Grube's avatar
Karl Grube committed
{%       for custom in blackbox_monitoring.http_custom %}
Benjamin Akhras's avatar
Benjamin Akhras committed
  - job_name: {{exporter}}_{{ custom.name }}_http_custom
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    metrics_path: /probe
    params:
Karl Grube's avatar
Karl Grube committed
      module: [{{ custom.name }}_http_custom]
Benjamin Akhras's avatar
Benjamin Akhras committed
    static_configs:
      - targets:
Karl Grube's avatar
Karl Grube committed
{%         for target in custom.targets %}
Benjamin Akhras's avatar
Benjamin Akhras committed
        - {{ target }}
Karl Grube's avatar
Karl Grube committed
{%         endfor %}
Benjamin Akhras's avatar
Benjamin Akhras committed
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: {{exporter}}:9100
Karl Grube's avatar
Karl Grube committed
{%         endfor %}
Benjamin Akhras's avatar
Benjamin Akhras committed
{%     endif %}
{%     if blackbox_monitoring.tls is defined %}
  - job_name: {{exporter}}_tls
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    metrics_path: /ssl_probe
    params:
      module: [tcp]
    static_configs:
      - targets:
{%       for host in blackbox_monitoring.tls %}
        - {{host}}{%if host is not search(':')%}:443{% endif %}

{%       endfor %}
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: {{exporter}}:9100
{%     endif %}
{%     if blackbox_monitoring.internal_tls is defined %}
  - job_name: {{exporter}}_internal_tls
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    metrics_path: /ssl_probe
    params:
      module: [internal_ca_tcp]
    static_configs:
      - targets:
{%       for host in blackbox_monitoring.internal_tls %}
        - {{host}}
{%       endfor %}
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: {{exporter}}:9100
{%     endif %}
{%     if blackbox_monitoring.dns is defined %}
{%       for domain in blackbox_monitoring.dns %}
  - job_name: {{exporter}}_{{domain}}_dns
    scheme: https
    tls_config:
        ca_file: '/etc/ssl/prometheus_client/root.ca.crt'
        cert_file: '/etc/ssl/prometheus_client/{{fqdn}}.crt'
        key_file: '/etc/ssl/prometheus_client/{{fqdn}}.key'
    metrics_path: /probe
    params:
      module: [dns_{{domain}}]
    static_configs:
      - targets:
{%       for host in groups['knotd'] %}
        - {{host}}
{%       endfor %}
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: {{exporter}}:9100

{%       endfor %}
{%     endif %}
Karl Grube's avatar
Karl Grube committed

Karl Grube's avatar
Karl Grube committed
{% endif %}