summaryrefslogtreecommitdiff
path: root/roles/monitoring/prometheus
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2023-08-26 04:51:11 +0200
committerChristian Pointner <equinox@spreadspace.org>2023-08-26 04:51:11 +0200
commit2553ebb2aa3a03d2859f0fdf725b465a43dce95a (patch)
tree9ad4e2434662cc0b88e2bf4536726b18736b0740 /roles/monitoring/prometheus
parentupgrade prometheus components (diff)
prometheus/exporter/snmp: switch to new config format (0.23.0+)
Diffstat (limited to 'roles/monitoring/prometheus')
-rw-r--r--roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j23
-rw-r--r--roles/monitoring/prometheus/exporter/snmp/defaults/main.yml3
-rw-r--r--roles/monitoring/prometheus/exporter/snmp/tasks/main.yml39
-rw-r--r--roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j29
4 files changed, 49 insertions, 5 deletions
diff --git a/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2
index 3ecf129a..a50a32ff 100644
--- a/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2
+++ b/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2
@@ -3,6 +3,9 @@
instance: '{{ target.instance }}'
__param_target: '{{ target.config.target }}'
__param_module: '{{ target.config.module }}'
+{% if 'auth' in target.config %}
+ __param_auth: '{{ target.config.auth }}'
+{% endif %}
{% for name, value in prometheus_target_labels.items() %}
{{ name }}: '{{ value }}'
{% endfor %}
diff --git a/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml b/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml
index a8c67a23..45cff8aa 100644
--- a/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml
+++ b/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml
@@ -5,4 +5,5 @@
# prometheus_exporter_snmp_config:
## this extends the default config
-# prometheus_exporter_snmp_config_extra:
+# prometheus_exporter_snmp_auths_extra:
+# prometheus_exporter_snmp_modules_extra:
diff --git a/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml b/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml
index 8fc93f0b..66b6f6b7 100644
--- a/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml
+++ b/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml
@@ -28,14 +28,47 @@
dest: /etc/prometheus/exporter/snmp/config.yml
notify: reload prometheus-snmp-exporter
-- name: extend the default configuration
+- name: add extra auths to default configuration
when:
- prometheus_exporter_snmp_config is not defined
- - prometheus_exporter_snmp_config_extra is defined
+ - prometheus_exporter_snmp_auths_extra is defined
blockinfile:
path: /etc/prometheus/exporter/snmp/config.yml
+ insertbefore: '^modules:'
+ marker: '# {mark} ANSIBLE MANAGED BLOCK auths-extra'
block: |
- {{ prometheus_exporter_snmp_config_extra | to_nice_yaml(indent=2) }}
+ {{ ' ' }}{{ prometheus_exporter_snmp_auths_extra | to_nice_yaml(indent=2) | indent(2) }}
+ notify: reload prometheus-snmp-exporter
+
+- name: remove extra auths from default configuration
+ when:
+ - prometheus_exporter_snmp_config is not defined
+ - prometheus_exporter_snmp_auths_extra is not defined
+ blockinfile:
+ path: /etc/prometheus/exporter/snmp/config.yml
+ marker: '# {mark} ANSIBLE MANAGED BLOCK auths-extra'
+ state: absent
+ notify: reload prometheus-snmp-exporter
+
+- name: add extra modules to default configuration
+ when:
+ - prometheus_exporter_snmp_config is not defined
+ - prometheus_exporter_snmp_modules_extra is defined
+ blockinfile:
+ path: /etc/prometheus/exporter/snmp/config.yml
+ marker: '# {mark} ANSIBLE MANAGED BLOCK modules-extra'
+ block: |
+ {{ ' ' }}{{ prometheus_exporter_snmp_modules_extra | to_nice_yaml(indent=2) | indent(2) }}
+ notify: reload prometheus-snmp-exporter
+
+- name: remove extra modules from default configuration
+ when:
+ - prometheus_exporter_snmp_config is not defined
+ - prometheus_exporter_snmp_modules_extra is not defined
+ blockinfile:
+ path: /etc/prometheus/exporter/snmp/config.yml
+ marker: '# {mark} ANSIBLE MANAGED BLOCK modules-extra'
+ state: absent
notify: reload prometheus-snmp-exporter
- name: generate systemd service unit
diff --git a/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2 b/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2
index c75b8469..0f84b705 100644
--- a/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2
+++ b/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2
@@ -1,3 +1,10 @@
# {{ ansible_managed }}
-{{ prometheus_exporter_snmp_config | combine(prometheus_exporter_snmp_config_extra | default({})) | to_nice_yaml(indent=2) }}
+{% set config_extra = dict() %}
+{% if prometheus_exporter_snmp_auths_extra is defined %}
+{% config_extra.update{'auths': prometheus_exporter_snmp_auths_extra } %}
+{% endif %}
+{% if prometheus_exporter_snmp_modules_extra is defined %}
+{% config_extra.update{'modules': prometheus_exporter_snmp_modules_extra } %}
+{% endif %}
+{{ prometheus_exporter_snmp_config | combine(config_extra) | to_nice_yaml(indent=2) }}