summaryrefslogtreecommitdiff
path: root/roles/monitoring/prometheus/exporter/node
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/prometheus/exporter/node')
-rw-r--r--roles/monitoring/prometheus/exporter/node/defaults/main.yml12
-rw-r--r--roles/monitoring/prometheus/exporter/node/handlers/main.yml6
-rw-r--r--roles/monitoring/prometheus/exporter/node/tasks/main.yml43
-rw-r--r--roles/monitoring/prometheus/exporter/node/templates/service.j210
4 files changed, 51 insertions, 20 deletions
diff --git a/roles/monitoring/prometheus/exporter/node/defaults/main.yml b/roles/monitoring/prometheus/exporter/node/defaults/main.yml
new file mode 100644
index 00000000..56227fbb
--- /dev/null
+++ b/roles/monitoring/prometheus/exporter/node/defaults/main.yml
@@ -0,0 +1,12 @@
+---
+_prometheus_exporter_node_time_collector_map_:
+ "": timex
+ systemd-timesyncd: timex
+ chrony: ntp
+ openntpd: ntp
+
+prometheus_exporter_node_timesync_collector: "{{ _prometheus_exporter_node_time_collector_map_[ntp_variant | default('')] }}"
+
+prometheus_exporter_node_disable_collectors: []
+prometheus_exporter_node_extra_collectors:
+- "{{ prometheus_exporter_node_timesync_collector }}"
diff --git a/roles/monitoring/prometheus/exporter/node/handlers/main.yml b/roles/monitoring/prometheus/exporter/node/handlers/main.yml
index 9c62baf6..3e1b2000 100644
--- a/roles/monitoring/prometheus/exporter/node/handlers/main.yml
+++ b/roles/monitoring/prometheus/exporter/node/handlers/main.yml
@@ -3,3 +3,9 @@
service:
name: prometheus-node-exporter
state: restarted
+
+- name: reload prometheus-exporter-exporter
+ service:
+ name: prometheus-exporter-exporter
+ ## TODO: implement reload once exporter_exporter supports this...
+ state: restarted
diff --git a/roles/monitoring/prometheus/exporter/node/tasks/main.yml b/roles/monitoring/prometheus/exporter/node/tasks/main.yml
index 286b6d75..c8756acf 100644
--- a/roles/monitoring/prometheus/exporter/node/tasks/main.yml
+++ b/roles/monitoring/prometheus/exporter/node/tasks/main.yml
@@ -1,29 +1,32 @@
---
- name: install apt packages
apt:
- name: prometheus-node-exporter
+ name: prom-exporter-node
state: present
- ## TODO: add other configs
-- name: listen on localhost only
- lineinfile:
- path: /etc/default/prometheus-node-exporter
- regexp: '^ARGS='
- line: 'ARGS="--web.listen-address=127.0.0.1:9100"'
+- name: create directory for textfile collector
+ file:
+ path: /var/lib/prometheus-node-exporter/textfile-collector
+ state: directory
+
+- name: generate systemd service unit
+ template:
+ src: service.j2
+ dest: /etc/systemd/system/prometheus-node-exporter.service
notify: restart prometheus-node-exporter
-- name: create nginx snippet
+- name: make sure prometheus-exporter-exporter is enabled and started
+ systemd:
+ name: prometheus-node-exporter.service
+ daemon_reload: yes
+ state: started
+ enabled: yes
+
+- name: register exporter
copy:
content: |
- location = /node {
- proxy_pass http://127.0.0.1:9100/metrics;
- }
- dest: /etc/prometheus-exporter/exporters-available/node
- # notify: reload nginx
-
-- name: enable nginx snippet
- file:
- src: /etc/prometheus-exporter/exporters-available/node
- dest: /etc/prometheus-exporter/exporters-enabled/node
- state: link
- # notify: reload nginx
+ method: http
+ http:
+ port: 9100
+ dest: /etc/prometheus/exporter/enabled/node.yml
+ notify: reload prometheus-exporter-exporter
diff --git a/roles/monitoring/prometheus/exporter/node/templates/service.j2 b/roles/monitoring/prometheus/exporter/node/templates/service.j2
new file mode 100644
index 00000000..7aa2834a
--- /dev/null
+++ b/roles/monitoring/prometheus/exporter/node/templates/service.j2
@@ -0,0 +1,10 @@
+[Unit]
+Description=Prometheus node exporter
+
+[Service]
+Restart=always
+User=prometheus-exporter
+ExecStart=/usr/bin/prometheus-node-exporter --web.listen-address="127.0.0.1:9100" --web.disable-exporter-metrics --collector.textfile.directory="/var/lib/prometheus-node-exporter/textfile-collector"{% for collector in prometheus_exporter_node_disable_collectors %} --no-collector.{{ collector }}{% endfor %}{% for collector in prometheus_exporter_node_extra_collectors %} --collector.{{ collector }}{% endfor %}{{ '' }}
+
+[Install]
+WantedBy=multi-user.target