summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-08-27 00:37:31 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-08-27 00:37:31 +0200
commit4de0d8c0cb55803c0dfca04911df303581e145ef (patch)
tree3747db0ca51af3e92625e1b28fcdaf26e266bab7
parentadd prometheus exporter to ch-router (diff)
promethues server role support for openwrt
-rw-r--r--inventory/group_vars/chaos-at-home-ap/vars.yml5
-rw-r--r--inventory/group_vars/promzone-chaos-at-home/vars.yml1
-rw-r--r--inventory/host_vars/ch-router.yml5
-rw-r--r--inventory/hosts.ini2
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/main.yml3
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_openwrt.yml3
-rw-r--r--roles/monitoring/prometheus/server/templates/job-snippets/default.j213
-rw-r--r--roles/monitoring/prometheus/server/templates/job-snippets/openwrt.j25
-rw-r--r--roles/monitoring/prometheus/server/templates/prometheus.yml.j214
9 files changed, 37 insertions, 14 deletions
diff --git a/inventory/group_vars/chaos-at-home-ap/vars.yml b/inventory/group_vars/chaos-at-home-ap/vars.yml
index fcd13ab6..640de99f 100644
--- a/inventory/group_vars/chaos-at-home-ap/vars.yml
+++ b/inventory/group_vars/chaos-at-home-ap/vars.yml
@@ -45,3 +45,8 @@ accesspoint_wireless_ifaces_yaml: |
key: '{{ accesspoint_zones[zone].key }}'
{% endfor %}
{% endfor %}
+
+
+prometheus_scrape_endpoint: "{{ network_mgmt_zone.prefix | ipaddr(network_mgmt_zone.offsets[inventory_hostname]) | ipaddr('address') }}:9100"
+prometheus_exporters_default:
+ - openwrt
diff --git a/inventory/group_vars/promzone-chaos-at-home/vars.yml b/inventory/group_vars/promzone-chaos-at-home/vars.yml
index 078576f1..c6ae2e93 100644
--- a/inventory/group_vars/promzone-chaos-at-home/vars.yml
+++ b/inventory/group_vars/promzone-chaos-at-home/vars.yml
@@ -8,6 +8,7 @@ prometheus_exporters_default:
prometheus_server: ch-mon
prometheus_server_jobs:
- node
+ - openwrt
prometheus_zone_name: chaos@home
prometheus_zone_targets: "{{ groups['promzone-chaos-at-home'] }}"
diff --git a/inventory/host_vars/ch-router.yml b/inventory/host_vars/ch-router.yml
index 151d10a9..85d065d4 100644
--- a/inventory/host_vars/ch-router.yml
+++ b/inventory/host_vars/ch-router.yml
@@ -371,3 +371,8 @@ virsh_domxml: |
</console>
</devices>
</domain>
+
+
+prometheus_scrape_endpoint: "{{ network_zones.mgmt.prefix | ipaddr(network_zones.mgmt.offsets[inventory_hostname]) | ipaddr('address') }}:9100"
+prometheus_exporters_default:
+ - openwrt
diff --git a/inventory/hosts.ini b/inventory/hosts.ini
index 07b178f3..e38cc1a8 100644
--- a/inventory/hosts.ini
+++ b/inventory/hosts.ini
@@ -403,8 +403,10 @@ vmhost-ele-telesto-guests
[promzone-chaos-at-home-server]
ch-mon
[promzone-chaos-at-home]
+ch-router
ch-testvm-prometheus
[promzone-chaos-at-home:children]
+chaos-at-home-ap
promzone-chaos-at-home-server
[promzone-elevate-festival-server]
diff --git a/roles/monitoring/prometheus/server/defaults/main/main.yml b/roles/monitoring/prometheus/server/defaults/main/main.yml
index b109b3b1..98fc5b01 100644
--- a/roles/monitoring/prometheus/server/defaults/main/main.yml
+++ b/roles/monitoring/prometheus/server/defaults/main/main.yml
@@ -12,7 +12,8 @@ prometheus_server_jobs:
prometheus_server_rules:
prometheus: "{{ prometheus_server_rules_prometheus + ((prometheus_server_alertmanager is defined) | ternary(prometheus_server_rules_prometheus_alertmanager, [])) + prometheus_server_rules_prometheus_extra }}"
- node: "{{ prometheus_server_rules_node + prometheus_server_rules_prometheus_extra }}"
+ node: "{{ prometheus_server_rules_node + prometheus_server_rules_node_extra }}"
+ openwrt: "{{ prometheus_server_rules_openwrt + prometheus_server_rules_node_extra }}"
# prometheus_server_alertmanager:
# url: "127.0.0.1:9093"
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_openwrt.yml b/roles/monitoring/prometheus/server/defaults/main/rules_openwrt.yml
new file mode 100644
index 00000000..88d84f31
--- /dev/null
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_openwrt.yml
@@ -0,0 +1,3 @@
+---
+prometheus_server_rules_openwrt_extra: []
+prometheus_server_rules_openwrt: []
diff --git a/roles/monitoring/prometheus/server/templates/job-snippets/default.j2 b/roles/monitoring/prometheus/server/templates/job-snippets/default.j2
new file mode 100644
index 00000000..87992eeb
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/job-snippets/default.j2
@@ -0,0 +1,13 @@
+ - job_name: '{{ job }}'
+ metrics_path: /proxy
+ params:
+ module:
+ - {{ job }}
+ scheme: https
+ tls_config:
+ ca_file: /etc/ssl/prometheus/ca-crt.pem
+ cert_file: /etc/ssl/prometheus/server/scrape-crt.pem
+ key_file: /etc/ssl/prometheus/server/scrape-key.pem
+ file_sd_configs:
+ - files:
+ - "/etc/prometheus/jobs/{{ job }}/*.yml"
diff --git a/roles/monitoring/prometheus/server/templates/job-snippets/openwrt.j2 b/roles/monitoring/prometheus/server/templates/job-snippets/openwrt.j2
new file mode 100644
index 00000000..493a4fdb
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/job-snippets/openwrt.j2
@@ -0,0 +1,5 @@
+ - job_name: '{{ job }}'
+ scheme: http
+ file_sd_configs:
+ - files:
+ - "/etc/prometheus/jobs/{{ job }}/*.yml"
diff --git a/roles/monitoring/prometheus/server/templates/prometheus.yml.j2 b/roles/monitoring/prometheus/server/templates/prometheus.yml.j2
index 6db34920..dbd8bd99 100644
--- a/roles/monitoring/prometheus/server/templates/prometheus.yml.j2
+++ b/roles/monitoring/prometheus/server/templates/prometheus.yml.j2
@@ -37,19 +37,7 @@ scrape_configs:
{% endif %}
{% for job in prometheus_server_jobs %}
- - job_name: '{{ job }}'
- metrics_path: /proxy
- params:
- module:
- - {{ job }}
- scheme: https
- tls_config:
- ca_file: /etc/ssl/prometheus/ca-crt.pem
- cert_file: /etc/ssl/prometheus/server/scrape-crt.pem
- key_file: /etc/ssl/prometheus/server/scrape-key.pem
- file_sd_configs:
- - files:
- - "/etc/prometheus/jobs/{{ job }}/*.yml"
+{% include 'job-snippets/' + (lookup('first_found', {'paths': ['templates/job-snippets'], 'files': [job + '.j2', 'default.j2']}) | basename) %}{{ '' }}
{% endfor %}
{% if prometheus_server_jobs_extra is defined %}