From 4de0d8c0cb55803c0dfca04911df303581e145ef Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 27 Aug 2021 00:37:31 +0200 Subject: promethues server role support for openwrt --- inventory/group_vars/chaos-at-home-ap/vars.yml | 5 +++++ inventory/group_vars/promzone-chaos-at-home/vars.yml | 1 + inventory/host_vars/ch-router.yml | 5 +++++ inventory/hosts.ini | 2 ++ roles/monitoring/prometheus/server/defaults/main/main.yml | 3 ++- .../prometheus/server/defaults/main/rules_openwrt.yml | 3 +++ .../prometheus/server/templates/job-snippets/default.j2 | 13 +++++++++++++ .../prometheus/server/templates/job-snippets/openwrt.j2 | 5 +++++ .../prometheus/server/templates/prometheus.yml.j2 | 14 +------------- 9 files changed, 37 insertions(+), 14 deletions(-) create mode 100644 roles/monitoring/prometheus/server/defaults/main/rules_openwrt.yml create mode 100644 roles/monitoring/prometheus/server/templates/job-snippets/default.j2 create mode 100644 roles/monitoring/prometheus/server/templates/job-snippets/openwrt.j2 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: | + + +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 %} -- cgit v1.2.3