diff --git a/monitoring.yml b/monitoring.yml index 955294f67d5fa4c6b3070a5022f4d978d7c75b59..87fcc5854e20704a6bc44dca38d9d5fe150a85a8 100644 --- a/monitoring.yml +++ b/monitoring.yml @@ -27,6 +27,9 @@ job: prometheus targets: - localhost:9090 + prometheus_snmp_targets: + - targets: + - pulsar.adm.crans.org roles: - prometheus - prometheus-alertmanager diff --git a/roles/prometheus-node/handlers/main.yml b/roles/prometheus-node/handlers/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..b4b64a4b9a321fa2183e2e002332fc2d3b828524 --- /dev/null +++ b/roles/prometheus-node/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart prometheus-node-exporter + service: + name: prometheus-node-exporter + state: restarted diff --git a/roles/prometheus-node/tasks/main.yml b/roles/prometheus-node/tasks/main.yml index 8a175e98616ede8489ff7ac1c094f85d8338e397..a41a67f17bd646897750aaf374f204839bb2cb71 100644 --- a/roles/prometheus-node/tasks/main.yml +++ b/roles/prometheus-node/tasks/main.yml @@ -7,6 +7,12 @@ retries: 3 until: apt_result is succeeded +- name: Activate prometheus-node-exporter service + systemd: + name: prometheus-node-exporter + enabled: yes + state: started + # Doesn't work on Debian Stretch - name: Make Prometheus node-exporter listen on adm only when: diff --git a/roles/prometheus/handlers/main.yml b/roles/prometheus/handlers/main.yml index 4214def5824f5941a37dc2c83c97d362c2a4526a..670847ba84abbccf2e7da7f10e21fe5327bbc15e 100644 --- a/roles/prometheus/handlers/main.yml +++ b/roles/prometheus/handlers/main.yml @@ -3,3 +3,8 @@ service: name: prometheus state: restarted + +- name: Restart prometheus-snmp-exporter + service: + name: prometheus-snmp-exporter + state: restarted diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml index 3f7054213823780b3c924c2458537cafdabab929..5fa2e817384a839ccee5d406cf24a8133f34754d 100644 --- a/roles/prometheus/tasks/main.yml +++ b/roles/prometheus/tasks/main.yml @@ -2,7 +2,9 @@ - name: Install Prometheus apt: update_cache: true - name: prometheus + name: + - prometheus + - prometheus-snmp-exporter register: apt_result retries: 3 until: apt_result is succeeded @@ -19,8 +21,30 @@ dest: /etc/prometheus/alert.rules.yml notify: Restart Prometheus +# Doesn't work on Debian Stretch +- name: Make Prometheus snmp-exporter listen on adm only + when: + - ansible_distribution_release == 'buster' + lineinfile: + path: /etc/default/prometheus-node-exporter + regexp: '^ARGS=' + line: "ARGS=\"--web.listen-address={{ ansible_fqdn }}:9116\"" + notify: Restart prometheus-snmp-exporter + # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus nodes copy: content: "{{ prometheus_targets | to_nice_json }}" dest: /etc/prometheus/targets.json + +# We don't need to restart Prometheus when updating nodes +- name: Configure Prometheus SNMP devices + copy: + content: "{{ prometheus_snmp_targets | to_nice_json }}" + dest: /etc/prometheus/targets_snmp.json + +- name: Activate prometheus service + systemd: + name: prometheus + enabled: yes + state: started diff --git a/roles/prometheus/templates/prometheus/prometheus.yml.j2 b/roles/prometheus/templates/prometheus/prometheus.yml.j2 index 76573fa9237a9185d7394df75ccaf75ea0230d7a..057114261d16433df166d7c549c8ba7fbed960e5 100644 --- a/roles/prometheus/templates/prometheus/prometheus.yml.j2 +++ b/roles/prometheus/templates/prometheus/prometheus.yml.j2 @@ -29,4 +29,17 @@ scrape_configs: file_sd_configs: - files: - '/etc/prometheus/targets.json' - + - job_name: snmp + file_sd_configs: + - files: + - '/etc/prometheus/targets_snmp.json' + metrics_path: /snmp + params: + module: [if_mib] + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ + replacement: 127.0.0.1:9116