{{ ansible_managed | comment }} 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: ['{{ lan_address }}:9093'] scheme: https tls_config: ca_file: '/etc/prometheus/ca.crt' cert_file: '/etc/prometheus/prometheus-{{ lan_address }}.crt' key_file: '/etc/prometheus/prometheus-{{ lan_address }}.key' # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: - "alerts/*.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=` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['{{ lan_address }}:9090'] scheme: https tls_config: ca_file: '/etc/prometheus/ca.crt' cert_file: '/etc/prometheus/prometheus-{{ lan_address }}.crt' key_file: '/etc/prometheus/prometheus-{{ lan_address }}.key' - job_name: node file_sd_configs: - files: - '/etc/prometheus/targets/node-targets.json' relabel_configs: # Use hostnames instead of ip for the instance label - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance regex: '.*\|(.*)' replacement: '$1' - source_labels: [__param_target] target_label: __address__ regex: '(.*)\|.*' replacement: '$1:9100' scheme: https tls_config: ca_file: '/etc/prometheus/ca.crt' cert_file: '/etc/prometheus/prometheus-{{ lan_address }}.crt' key_file: '/etc/prometheus/prometheus-{{ lan_address }}.key' {% for target_type in ('http-up', 'http-down') %} - job_name: blackbox {{ target_type }} metrics_path: /probe params: module: [http_2xx] file_sd_configs: - files: - '/etc/prometheus/targets/blackbox-{{ target_type }}-targets.json' relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: {{ lan_address }}:9115 scheme: https tls_config: ca_file: '/etc/prometheus/ca.crt' cert_file: '/etc/prometheus/prometheus-{{ lan_address }}.crt' key_file: '/etc/prometheus/prometheus-{{ lan_address }}.key' {% endfor %} - job_name: blackbox internal tls metrics_path: /probe params: module: [internal_tls_connect] file_sd_configs: - files: - '/etc/prometheus/targets/blackbox-tls-internal-targets.json' relabel_configs: - source_labels: [__address__] target_label: __tmp_address - source_labels: [__tmp_address] target_label: __param_target regex: '(.*)\|.*\|.*' replacement: '$1' - source_labels: [__tmp_address] target_label: cname regex: '.*\|(.*)\|.*' replacement: '$1' - source_labels: [__tmp_address] target_label: instance regex: '.*\|.*\|(.*)' replacement: '$1' - target_label: __address__ replacement: 172.20.1.1:9115 scheme: https tls_config: ca_file: '/etc/prometheus/ca.crt' cert_file: '/etc/prometheus/prometheus-172.20.1.1.crt' key_file: '/etc/prometheus/prometheus-172.20.1.1.key'