Role service-prometheus: simplify and move all files to role directory
This commit is contained in:
parent
603f6af64d
commit
7a91bbaa2f
9 changed files with 79 additions and 377 deletions
|
@ -14,13 +14,6 @@ http_lookingglass_prefix: lg
|
||||||
http_prometheus_prefix: prom
|
http_prometheus_prefix: prom
|
||||||
http_openlayers_prefix: ol
|
http_openlayers_prefix: ol
|
||||||
|
|
||||||
prometheus_conf_main: prometheus/prometheus.yml.j2
|
|
||||||
|
|
||||||
prometheus_rule_files:
|
|
||||||
alert_rules:
|
|
||||||
src: prometheus/alert.rules
|
|
||||||
dest: alert.rules
|
|
||||||
|
|
||||||
prometheus_components:
|
prometheus_components:
|
||||||
- prometheus
|
- prometheus
|
||||||
- alertmanager
|
- alertmanager
|
||||||
|
|
|
@ -1,92 +0,0 @@
|
||||||
global:
|
|
||||||
scrape_interval: 15s # By default, scrape targets every 15 seconds.
|
|
||||||
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
|
|
||||||
# scrape_timeout is set to the global default (10s).
|
|
||||||
|
|
||||||
alerting:
|
|
||||||
alertmanagers:
|
|
||||||
- scheme: https
|
|
||||||
path_prefix: /alertmanager/
|
|
||||||
static_configs:
|
|
||||||
- targets: ['{{ http_prometheus_prefix }}.{{ http_domain_external }}']
|
|
||||||
|
|
||||||
{% if prometheus_rule_files is defined %}
|
|
||||||
# Rule files specifies a list of files from which rules are read.
|
|
||||||
rule_files:
|
|
||||||
{% for (key, value) in prometheus_rule_files.items() %}
|
|
||||||
- {{ prometheus_rule_path }}/{{ value.dest }}
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
# A list of scrape configurations.
|
|
||||||
scrape_configs:
|
|
||||||
- job_name: 'prometheus'
|
|
||||||
scrape_interval: 10s
|
|
||||||
scrape_timeout: 10s
|
|
||||||
static_configs:
|
|
||||||
- targets: ['localhost:9090']
|
|
||||||
|
|
||||||
- job_name: "node"
|
|
||||||
scheme: "https"
|
|
||||||
static_configs:
|
|
||||||
{%for group in prometheus_groups %}
|
|
||||||
- targets:
|
|
||||||
{% for host in groups[group] %}
|
|
||||||
- '{{ host }}:9100'
|
|
||||||
{% endfor %}
|
|
||||||
labels:
|
|
||||||
group: '{{ group }}'
|
|
||||||
{% endfor %}
|
|
||||||
relabel_configs:
|
|
||||||
- source_labels: [__address__]
|
|
||||||
regex: '([a-z]+)\..*'
|
|
||||||
replacement: '$1'
|
|
||||||
target_label: hostname
|
|
||||||
|
|
||||||
- job_name: "fastd"
|
|
||||||
scheme: "https"
|
|
||||||
static_configs:
|
|
||||||
- targets:
|
|
||||||
{% for host in groups['ffmwu-gateways'] %}
|
|
||||||
- '{{ host }}:9281'
|
|
||||||
{% endfor %}
|
|
||||||
relabel_configs:
|
|
||||||
- source_labels: [__address__]
|
|
||||||
regex: '([a-z]+)\..*'
|
|
||||||
replacement: '$1'
|
|
||||||
target_label: hostname
|
|
||||||
|
|
||||||
{% for job in ['icmp4','icmp6'] %}
|
|
||||||
- job_name: "{{ job }}"
|
|
||||||
metrics_path: /probe
|
|
||||||
params:
|
|
||||||
module: ["{{ job }}"]
|
|
||||||
static_configs:
|
|
||||||
- targets:
|
|
||||||
{% for group in prometheus_groups %}
|
|
||||||
{% for host in groups[group] %}
|
|
||||||
{% if host != inventory_hostname %}
|
|
||||||
- "{{ host.rsplit('.')[0] }}.ffwi.org"
|
|
||||||
- "{{ host.rsplit('.')[0] }}.ffmz.org"
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}
|
|
||||||
{% for host, _ in bgp_mwu_servers.items() %}
|
|
||||||
{% if host not in ['extrasahne'] %}
|
|
||||||
- "{{ host }}.ffwi.org"
|
|
||||||
- "{{ host }}.ffmz.org"
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
relabel_configs:
|
|
||||||
- source_labels: [__address__]
|
|
||||||
target_label: __param_target
|
|
||||||
- source_labels: [__param_target]
|
|
||||||
target_label: instance
|
|
||||||
- target_label: __address__
|
|
||||||
replacement: 127.0.0.1:9115
|
|
||||||
- source_labels: [__param_target]
|
|
||||||
regex: '([a-z]+)\..*'
|
|
||||||
replacement: '$1'
|
|
||||||
target_label: hostname
|
|
||||||
|
|
||||||
{% endfor %}
|
|
|
@ -1,236 +1,14 @@
|
||||||
|
|
||||||
FFMWU prometheus
|
# Ansible role service-prometheus
|
||||||
============
|
|
||||||
|
|
||||||
|
|
||||||
## Summary
|
|
||||||
|
|
||||||
Prometheus ansible role based on **[williamyeh.prometheus](https://galaxy.ansible.com/williamyeh/prometheus/)**
|
Prometheus ansible role based on **[williamyeh.prometheus](https://galaxy.ansible.com/williamyeh/prometheus/)**
|
||||||
|
|
||||||
This Ansible role has the following features for [Prometheus](http://prometheus.io/):
|
This Ansible role has the following features for [Prometheus](http://prometheus.io/):
|
||||||
|
|
||||||
- Install specific versions of [Prometheus server](https://github.com/prometheus/prometheus), [Node exporter](https://github.com/prometheus/node_exporter), [Alertmanager](https://github.com/prometheus/alertmanager).
|
- Install specific versions of [Prometheus server](https://github.com/prometheus/prometheus), [Node exporter](https://github.com/prometheus/node_exporter), [Blackbox exporter](https://github.com/prometheus/blackbox_exporter), [Alertmanager](https://github.com/prometheus/alertmanager).
|
||||||
- Handlers for restart/reload/stop events;
|
- Handlers for restart/reload/stop events;
|
||||||
- Bare bone configuration (*real* configuration should be left to user's template files; see **Usage** section below).
|
- Bare bone configuration (*real* configuration should be left to user's template files; see **Usage** section below).
|
||||||
|
|
||||||
## Role Variables
|
|
||||||
|
|
||||||
|
|
||||||
### Mandatory variables
|
|
||||||
|
|
||||||
The components to be installed:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# Supported components:
|
|
||||||
#
|
|
||||||
# [Server components]
|
|
||||||
# - "prometheus"
|
|
||||||
# - "alertmanager"
|
|
||||||
#
|
|
||||||
# [Exporter components]
|
|
||||||
# - "node_exporter"
|
|
||||||
#
|
|
||||||
prometheus_components
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Optional variables: general settings
|
|
||||||
|
|
||||||
|
|
||||||
User-configurable defaults:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# user and group
|
|
||||||
prometheus_user: prometheus
|
|
||||||
prometheus_group: prometheus
|
|
||||||
|
|
||||||
|
|
||||||
# directory for executable files
|
|
||||||
prometheus_install_path: /opt/prometheus
|
|
||||||
|
|
||||||
# directory for configuration files
|
|
||||||
prometheus_config_path: /etc/prometheus
|
|
||||||
|
|
||||||
# directory for temporary files
|
|
||||||
prometheus_download_path: /tmp
|
|
||||||
|
|
||||||
# version of helper utility "gosu"
|
|
||||||
gosu_version: "1.10"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Optional variables: Prometheus server
|
|
||||||
|
|
||||||
User-configurable defaults:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# which version?
|
|
||||||
prometheus_version: 2.0.0
|
|
||||||
|
|
||||||
# directory for rule files
|
|
||||||
prometheus_rule_path: {{ prometheus_config_path }}/rules
|
|
||||||
|
|
||||||
# directory for file_sd files
|
|
||||||
prometheus_file_sd_config_path: {{ prometheus_config_path }}/tgroups
|
|
||||||
|
|
||||||
# directory for runtime database
|
|
||||||
prometheus_db_path: /var/lib/prometheus
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
User-installable configuration file (see [doc](http://prometheus.io/docs/operating/configuration/) for details):
|
|
||||||
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# main conf template relative to `playbook_dir`;
|
|
||||||
# to be installed to "{{ prometheus_config_path }}/prometheus.yml"
|
|
||||||
prometheus_conf_main
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
User-installable rule files (see [doc](http://prometheus.io/docs/alerting/rules/) for details):
|
|
||||||
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# rule files to be installed to "{{ prometheus_rule_path }}" directory;
|
|
||||||
# dict fields:
|
|
||||||
# - key: memo for this rule
|
|
||||||
# - value:
|
|
||||||
# - src: file relative to `playbook_dir`
|
|
||||||
# - dest: target file relative to `{{ prometheus_rule_path }}`
|
|
||||||
prometheus_rule_files
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Additional command-line arguments, if any (use `prometheus --help` to see the full list of arguments):
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
prometheus_opts
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Optional variables: Node exporter
|
|
||||||
|
|
||||||
|
|
||||||
User-configurable defaults:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# which version?
|
|
||||||
node_exporter_version: 0.15.1
|
|
||||||
```
|
|
||||||
|
|
||||||
Additional command-line arguments, if any (use `node_exporter --help` to see the full list of arguments):
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
node_exporter_opts
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Optional variables: Alertmanager
|
|
||||||
|
|
||||||
|
|
||||||
User-configurable defaults:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# which version?
|
|
||||||
alertmanager_version: 0.10.0
|
|
||||||
|
|
||||||
# directory for runtime database (currently for `silences.json`)
|
|
||||||
alertmanager_db_path: /var/lib/alertmanager
|
|
||||||
```
|
|
||||||
|
|
||||||
User-installable alertmanager conf file (see [doc](http://prometheus.io/docs/alerting/alertmanager/) for details):
|
|
||||||
See files directory alertmanager.yml
|
|
||||||
|
|
||||||
|
|
||||||
Additional command-line arguments, if any (use `alertmanager --help` to see the full list of arguments):
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
prometheus_alertmanager_opts
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Handlers
|
|
||||||
|
|
||||||
Prometheus server:
|
|
||||||
|
|
||||||
- `reload prometheus`
|
|
||||||
|
|
||||||
Alertmanager:
|
|
||||||
|
|
||||||
- `reload alertmanager`
|
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
|
|
||||||
### Step 1: add role
|
|
||||||
|
|
||||||
Add role name `service-prometheus` to your playbook file.
|
|
||||||
|
|
||||||
|
|
||||||
### Step 2: add variables
|
|
||||||
|
|
||||||
Set vars in your playbook file, if necessary.
|
|
||||||
|
|
||||||
Simple example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
---
|
|
||||||
# file: simple-playbook.yml
|
|
||||||
|
|
||||||
- hosts: all
|
|
||||||
become: True
|
|
||||||
roles:
|
|
||||||
- service-prometheus
|
|
||||||
|
|
||||||
vars:
|
|
||||||
prometheus_components: [ "prometheus", "alertmanager" ]
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Step 3: copy user's config files, if necessary
|
|
||||||
|
|
||||||
|
|
||||||
More practical example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
---
|
|
||||||
# file: complex-playbook.yml
|
|
||||||
|
|
||||||
- hosts: all
|
|
||||||
become: True
|
|
||||||
roles:
|
|
||||||
- service-prometheus
|
|
||||||
|
|
||||||
vars:
|
|
||||||
prometheus_components:
|
|
||||||
- prometheus
|
|
||||||
- node_exporter
|
|
||||||
- alertmanager
|
|
||||||
|
|
||||||
prometheus_rule_files:
|
|
||||||
this_is_rule_1_InstanceDown:
|
|
||||||
src: some/path/basic.rules
|
|
||||||
dest: basic.rules
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Step 4: browse the default Prometheus pages
|
|
||||||
|
|
||||||
Open the page in your browser:
|
|
||||||
|
|
||||||
- Prometheus - `http://HOST:9090` or `http://HOST:9090/consoles/node.html`
|
|
||||||
|
|
||||||
- Alertmanager - `http://HOST:9093`
|
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT License. See the [LICENSE file](LICENSE) for details.
|
MIT License. See the [LICENSE file](LICENSE) for details.
|
||||||
|
|
|
@ -14,14 +14,13 @@ node_exporter_version: 0.17.0
|
||||||
blackbox_exporter_version: 0.13.0
|
blackbox_exporter_version: 0.13.0
|
||||||
alertmanager_version: 0.16.0
|
alertmanager_version: 0.16.0
|
||||||
|
|
||||||
gosu_version: "1.10"
|
|
||||||
|
|
||||||
prometheus_url_external: "{{ http_prometheus_prefix }}.{{ http_domain_external }}"
|
prometheus_url_external: "{{ http_prometheus_prefix }}.{{ http_domain_external }}"
|
||||||
prometheus_url_internal: "{{ http_prometheus_prefix }}.{{ http_domain_internal }}"
|
prometheus_url_internal: "{{ http_prometheus_prefix }}.{{ http_domain_internal }}"
|
||||||
|
|
||||||
prometheus_install_path: /opt/prometheus
|
prometheus_install_path: /opt/prometheus
|
||||||
prometheus_config_path: /etc/prometheus
|
prometheus_config_path: /etc/prometheus
|
||||||
prometheus_rule_path: "{{ prometheus_config_path }}/rules"
|
prometheus_rule_path: "{{ prometheus_config_path }}/rules"
|
||||||
|
prometheus_rule_files: [ "alert.rules" ]
|
||||||
prometheus_file_sd_config_path: "{{ prometheus_config_path }}/tgroups"
|
prometheus_file_sd_config_path: "{{ prometheus_config_path }}/tgroups"
|
||||||
prometheus_db_path: /var/lib/prometheus
|
prometheus_db_path: /var/lib/prometheus
|
||||||
alertmanager_db_path: /var/lib/alertmanager
|
alertmanager_db_path: /var/lib/alertmanager
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
# Install "gosu" utility.
|
|
||||||
#
|
|
||||||
# @see https://github.com/tianon/gosu
|
|
||||||
#
|
|
||||||
|
|
||||||
- name: set internal variables for convenience
|
|
||||||
set_fact:
|
|
||||||
gosu_bin_url: "https://github.com/tianon/gosu/releases/download/{{ gosu_version }}/gosu-amd64"
|
|
||||||
|
|
||||||
- name: download gosu executable
|
|
||||||
get_url:
|
|
||||||
url: "{{ gosu_bin_url }}"
|
|
||||||
dest: "/usr/local/bin/gosu"
|
|
||||||
|
|
||||||
- name: add executable permission
|
|
||||||
file:
|
|
||||||
path: "/usr/local/bin/gosu"
|
|
||||||
state: file
|
|
||||||
mode: "a+x"
|
|
|
@ -25,9 +25,6 @@
|
||||||
- "{{ prometheus_install_path }}"
|
- "{{ prometheus_install_path }}"
|
||||||
- "{{ prometheus_config_path }}"
|
- "{{ prometheus_config_path }}"
|
||||||
|
|
||||||
- name: install helper utility "gosu"
|
|
||||||
include_tasks: install-gosu.yml
|
|
||||||
|
|
||||||
- name: install and configure prometheus service
|
- name: install and configure prometheus service
|
||||||
include_tasks: prometheus.yml
|
include_tasks: prometheus.yml
|
||||||
when: '"prometheus" in prometheus_components'
|
when: '"prometheus" in prometheus_components'
|
||||||
|
|
|
@ -53,30 +53,20 @@
|
||||||
- reload systemd
|
- reload systemd
|
||||||
- restart prometheus
|
- restart prometheus
|
||||||
|
|
||||||
- name: copy rule files from playbook's, if any
|
- name: copy rule files
|
||||||
copy:
|
copy:
|
||||||
src: "{{ playbook_dir }}/{{ item.value.src }}"
|
src: "{{ item }}"
|
||||||
dest: "{{ prometheus_rule_path }}/{{ item.value.dest }}"
|
dest: "{{ prometheus_rule_path }}/{{ item }}"
|
||||||
validate: "{{ prometheus_daemon_dir }}/promtool check rules %s"
|
validate: "{{ prometheus_daemon_dir }}/promtool check rules %s"
|
||||||
loop: '{{ prometheus_rule_files | default({}) | dict2items }}'
|
loop: "{{ prometheus_rule_files | default([]) }}"
|
||||||
notify:
|
notify:
|
||||||
- restart prometheus
|
- restart prometheus
|
||||||
|
|
||||||
- name: copy prometheus main config file from role's default, if necessary
|
- name: copy prometheus main config
|
||||||
template:
|
template:
|
||||||
src: "prometheus.yml.j2"
|
src: "prometheus.yml.j2"
|
||||||
dest: "{{ prometheus_config_path }}/prometheus.yml"
|
dest: "{{ prometheus_config_path }}/prometheus.yml"
|
||||||
validate: "{{ prometheus_daemon_dir }}/promtool check config %s"
|
validate: "{{ prometheus_daemon_dir }}/promtool check config %s"
|
||||||
when: prometheus_conf_main is not defined
|
|
||||||
notify:
|
|
||||||
- restart prometheus
|
|
||||||
|
|
||||||
- name: copy prometheus main config file from playbook's, if any
|
|
||||||
template:
|
|
||||||
src: "{{ playbook_dir }}/{{ prometheus_conf_main }}"
|
|
||||||
dest: "{{ prometheus_config_path }}/prometheus.yml"
|
|
||||||
validate: "{{ prometheus_daemon_dir }}/promtool check config %s"
|
|
||||||
when: prometheus_conf_main is defined
|
|
||||||
notify:
|
notify:
|
||||||
- restart prometheus
|
- restart prometheus
|
||||||
|
|
||||||
|
|
|
@ -3,22 +3,23 @@ global:
|
||||||
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
|
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
|
||||||
# scrape_timeout is set to the global default (10s).
|
# scrape_timeout is set to the global default (10s).
|
||||||
|
|
||||||
# The labels to add to any time series or alerts when communicating with
|
alerting:
|
||||||
# external systems (federation, remote storage, Alertmanager).
|
alertmanagers:
|
||||||
external_labels:
|
- scheme: https
|
||||||
monitor: 'master'
|
path_prefix: /alertmanager/
|
||||||
|
static_configs:
|
||||||
|
- targets: ['{{ http_prometheus_prefix }}.{{ http_domain_external }}']
|
||||||
|
|
||||||
{% if prometheus_rule_files is defined %}
|
{% if prometheus_rule_files is defined %}
|
||||||
# Rule files specifies a list of files from which rules are read.
|
# Rule files specifies a list of files from which rules are read.
|
||||||
rule_files:
|
rule_files:
|
||||||
{% for (key, value) in prometheus_rule_files.items() %}
|
{% for item in prometheus_rule_files %}
|
||||||
- {{ prometheus_rule_path }}/{{ value.dest }}
|
- {{ prometheus_rule_path }}/{{ item }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
# A list of scrape configurations.
|
# A list of scrape configurations.
|
||||||
scrape_configs:
|
scrape_configs:
|
||||||
|
|
||||||
- job_name: 'prometheus'
|
- job_name: 'prometheus'
|
||||||
scrape_interval: 10s
|
scrape_interval: 10s
|
||||||
scrape_timeout: 10s
|
scrape_timeout: 10s
|
||||||
|
@ -26,11 +27,66 @@ scrape_configs:
|
||||||
- targets: ['localhost:9090']
|
- targets: ['localhost:9090']
|
||||||
|
|
||||||
- job_name: "node"
|
- job_name: "node"
|
||||||
file_sd_configs:
|
scheme: "https"
|
||||||
- files:
|
static_configs:
|
||||||
- '{{ prometheus_file_sd_config_path }}/*.json'
|
{%for group in prometheus_groups %}
|
||||||
- '{{ prometheus_file_sd_config_path }}/*.yml'
|
- targets:
|
||||||
- '{{ prometheus_file_sd_config_path }}/*.yaml'
|
{% for host in groups[group] %}
|
||||||
#static_configs:
|
- '{{ host }}:9100'
|
||||||
#- targets:
|
{% endfor %}
|
||||||
# - "localhost:9100"
|
labels:
|
||||||
|
group: '{{ group }}'
|
||||||
|
{% endfor %}
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: [__address__]
|
||||||
|
regex: '([a-z]+)\..*'
|
||||||
|
replacement: '$1'
|
||||||
|
target_label: hostname
|
||||||
|
|
||||||
|
- job_name: "fastd"
|
||||||
|
scheme: "https"
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
{% for host in groups['ffmwu-gateways'] %}
|
||||||
|
- '{{ host }}:9281'
|
||||||
|
{% endfor %}
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: [__address__]
|
||||||
|
regex: '([a-z]+)\..*'
|
||||||
|
replacement: '$1'
|
||||||
|
target_label: hostname
|
||||||
|
|
||||||
|
{% for job in ['icmp4','icmp6'] %}
|
||||||
|
- job_name: "{{ job }}"
|
||||||
|
metrics_path: /probe
|
||||||
|
params:
|
||||||
|
module: ["{{ job }}"]
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
{% for group in prometheus_groups %}
|
||||||
|
{% for host in groups[group] %}
|
||||||
|
{% if host != inventory_hostname %}
|
||||||
|
- "{{ host.rsplit('.')[0] }}.ffwi.org"
|
||||||
|
- "{{ host.rsplit('.')[0] }}.ffmz.org"
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
{% for host, _ in bgp_mwu_servers.items() %}
|
||||||
|
{% if host not in ['extrasahne'] %}
|
||||||
|
- "{{ host }}.ffwi.org"
|
||||||
|
- "{{ host }}.ffmz.org"
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: [__address__]
|
||||||
|
target_label: __param_target
|
||||||
|
- source_labels: [__param_target]
|
||||||
|
target_label: instance
|
||||||
|
- target_label: __address__
|
||||||
|
replacement: 127.0.0.1:9115
|
||||||
|
- source_labels: [__param_target]
|
||||||
|
regex: '([a-z]+)\..*'
|
||||||
|
replacement: '$1'
|
||||||
|
target_label: hostname
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
Loading…
Reference in a new issue