ansible/roles/prometheus/templates/prometheus/alert.rules.yml.j2

78 lines
2.8 KiB
Django/Jinja

# {{ ansible_managed }}
{# As this is also Jinja2 it will conflict without a raw block #}
{# Depending of Prometheus Node exporter version, rules can change depending of version #}
{% raw %}
groups:
- name: alert.rules
rules:
# Alert for any instance that is unreachable for >3 minutes.
- alert: InstanceDown
expr: up == 0
for: 3m
labels:
severity: critical
annotations:
summary: "Le serveur {{ $labels.instance }} est down"
description: "Le serveur {{ $labels.instance }} est down depuis plus de 3 minutes."
# Alert for out of memory
- alert: OutOfMemory
expr: ((node_memory_MemFree_bytes or node_memory_MemFree) + (node_memory_Cached_bytes or node_memory_Cached) + (node_memory_Buffers_bytes or node_memory_Buffers)) / (node_memory_MemTotal_bytes or node_memory_MemTotal) * 100 < 10
for: 5m
labels:
severity: warning
annotations:
summary: "Presque plus de mémoire vive sur {{ $labels.instance }}"
description: "La mémoire est en train de se remplir ({{ $value }}% restant)"
# Alert for out of disk space
- alert: OutOfDiskSpace
expr: (node_filesystem_free_bytes{fstype="ext4"} or node_filesystem_free{fstype="ext4"}) / (node_filesystem_size_bytes{fstype="ext4"} or node_filesystem_size{fstype="ext4"}) * 100 < 10
for: 5m
labels:
severity: warning
annotations:
summary: "Presque plus de stockage sur {{ $labels.instance }}"
description: "Le disque est presque rempli ({{ $value }}% restant)"
# Alert for out of inode space on disk
- alert: OutOfInodes
expr: node_filesystem_files_free{fstype="ext4"} / node_filesystem_files{fstype="ext4"} * 100 < 10
for: 5m
labels:
severity: warning
annotations:
summary: "Presque plus d'inodes disque sur {{ $labels.instance }}"
description: "Le disque est presque à courre d'inodes disponibles ({{ $value }}% restant)"
# Alert for high CPU usage
- alert: CpuLoad
expr: node_load15 / (count without (cpu, mode) (node_cpu_seconds_total{mode="system"} or node_cpu{mode="system"})) > 2
for: 5m
labels:
severity: warning
annotations:
summary: "Charge CPU élevée sur {{ $labels.instance }}"
description: "La charge CPU (moyenne de 15mn) est élevée."
# NTP (need NTP plugin in node)
# - alert: ntp_drifting
# expr: node_ntp_drift_seconds > 0.05
# for: 3m
# labels:
# severity: critical
# annotations:
# summary: "Décalage NTP trop élevé sur {{ $labels.instance }}"
# description: "Le décalage NTP est trop élevé ({{ $value }} > 0.05)"
# - alert: ntp_drifting
# expr: node_ntp_drift_seconds > 0.01
# for: 1m
# labels:
# severity: warning
# annotations:
# summary: "Décalage NTP élevé sur {{ $labels.instance }}"
# description: "Le décalage NTP est élevé ({{ $value }} > 0.01)"
{% endraw %}