summaryrefslogtreecommitdiff
path: root/roles/monitoring
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-09-24 14:11:35 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-09-24 14:11:35 +0200
commit4ec26b272ab6090498a9eefa4a0efb06248b1ef4 (patch)
tree1489e7143da9a98bd25d705bea51fa07df1097fe /roles/monitoring
parentalso run new textcollector scripts after reboot (diff)
prometheus: add monitoring for systemd units
Diffstat (limited to 'roles/monitoring')
-rw-r--r--roles/monitoring/prometheus/exporter/node/defaults/main.yml1
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_node.yml11
-rw-r--r--roles/monitoring/prometheus/server/templates/jobs/node.j220
3 files changed, 31 insertions, 1 deletions
diff --git a/roles/monitoring/prometheus/exporter/node/defaults/main.yml b/roles/monitoring/prometheus/exporter/node/defaults/main.yml
index 2714a7fe..491e70f6 100644
--- a/roles/monitoring/prometheus/exporter/node/defaults/main.yml
+++ b/roles/monitoring/prometheus/exporter/node/defaults/main.yml
@@ -12,6 +12,7 @@ prometheus_exporter_node_timesync_collector: "{{ _prometheus_exporter_node_time_
prometheus_exporter_node_disable_collectors: []
prometheus_exporter_node_extra_collectors:
- "{{ prometheus_exporter_node_timesync_collector }}"
+ - systemd
prometheus_exporter_node_textfile_collector_scripts:
- deleted-libraries
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_node.yml b/roles/monitoring/prometheus/server/defaults/main/rules_node.yml
index 2c7f9319..64a7d562 100644
--- a/roles/monitoring/prometheus/server/defaults/main/rules_node.yml
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_node.yml
@@ -92,6 +92,15 @@ prometheus_server_rules_node:
summary: Host CPU steal noisy neighbor (instance {{ '{{' }} $labels.instance {{ '}}' }})
description: "CPU steal is > 10%. A noisy neighbor is killing VM performances or a spot instance may be out of credit.\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+ - alert: HostSystemdNotRunning
+ expr: node_systemd_system_running == 0
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: Host systemd is not in running state (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "systemd is not in running state.\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+
- alert: HostSystemdServiceCrashed
expr: node_systemd_unit_state{state="failed"} == 1
for: 0m
@@ -99,7 +108,7 @@ prometheus_server_rules_node:
severity: warning
annotations:
summary: Host systemd service crashed (instance {{ '{{' }} $labels.instance {{ '}}' }})
- description: "systemd service crashed\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+ description: "The systemd service unit {{ '{{' }} $labels.name {{ '}}' }} is in failed state.\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
- alert: HostPhysicalComponentTooHot
expr: node_hwmon_temp_celsius > 75
diff --git a/roles/monitoring/prometheus/server/templates/jobs/node.j2 b/roles/monitoring/prometheus/server/templates/jobs/node.j2
new file mode 100644
index 00000000..ba9eab31
--- /dev/null
+++ b/roles/monitoring/prometheus/server/templates/jobs/node.j2
@@ -0,0 +1,20 @@
+ - 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/targets/{{ job }}/*.yml"
+ metric_relabel_configs:
+ - source_labels: [ "mountpoint" ]
+ regex: ".*/\\.snapshot/.*"
+ action: drop
+ - source_labels: [ "__name__", "state" ]
+ regex: "node_systemd_unit_state;(activating|deactivating|inactive)"
+ action: drop