# Статические правила алертов (одинаковые для всех серверов). # Правила, зависящие от .env (SystemdUnitDown, ContainerDown), # генерирует deploy.sh в rendered/generated-rules.yml. groups: - name: host rules: - alert: InstanceDown expr: up == 0 for: 2m labels: severity: critical annotations: summary: 'Экспортер {{ $labels.job }} недоступен' description: 'Таргет {{ $labels.instance }} (job={{ $labels.job }}) недоступен дольше 2 минут.' - alert: HighCPU expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 90 for: 5m labels: severity: warning annotations: summary: 'CPU > 90%' description: 'Загрузка CPU на {{ $labels.instance }}: {{ $value | humanize }}% дольше 5 минут.' - alert: HighRAM expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 90 for: 5m labels: severity: warning annotations: summary: 'RAM > 90%' description: 'Использование памяти на {{ $labels.instance }}: {{ $value | humanize }}% дольше 5 минут.' - alert: DiskFull expr: > (1 - node_filesystem_avail_bytes{fstype!~"tmpfs|ramfs|overlay|squashfs|iso9660"} / node_filesystem_size_bytes) * 100 > 85 for: 5m labels: severity: warning annotations: summary: 'Диск {{ $labels.mountpoint }} заполнен более чем на 85%' description: 'Раздел {{ $labels.mountpoint }} ({{ $labels.device }}) на {{ $labels.instance }}: занято {{ $value | humanize }}%.' - alert: DiskFull expr: > (1 - node_filesystem_avail_bytes{fstype!~"tmpfs|ramfs|overlay|squashfs|iso9660"} / node_filesystem_size_bytes) * 100 > 95 for: 1m labels: severity: critical annotations: summary: 'Диск {{ $labels.mountpoint }} заполнен более чем на 95%' description: 'Раздел {{ $labels.mountpoint }} ({{ $labels.device }}) на {{ $labels.instance }}: занято {{ $value | humanize }}%. Срочно освободи место.' - alert: HighTemp # только сенсоры CPU; если метрик нет вообще — проверь модули coretemp/k10temp (см. README) expr: max by (instance, chip) (node_hwmon_temp_celsius{chip=~".*coretemp.*|.*k10temp.*"}) > 80 for: 3m labels: severity: warning annotations: summary: 'Температура CPU > 80°C' description: 'Сенсор {{ $labels.chip }} на {{ $labels.instance }}: {{ $value | humanize }}°C дольше 3 минут.'