Files
os-build/overlays/server/etc/prometheus/arcline.rules.yml
Blake Ridgway 94ab6043e7 feat: add hardened base and per-edition image overlays
Add the files that land in the image, organised as layered rootfs trees
(base first, then the edition layer wins on conflict).

- base: hardened kernel cmdline + sysctl, default-deny nftables,
  key-only ssh, persistent journald, module blacklist, no core dumps,
  snapshot timer units, motd.
- server: Prometheus + auto-provisioned Grafana + Loki + promtail.
- workstation: dev profile and desktop sysctl relaxations (perf,
  rootless containers).
- cloud: cloud-init provisioning config.
2026-08-21 13:15:43 -05:00

44 lines
1.4 KiB
YAML

# Arcline OS — pre-built alerting rules (Prometheus)
groups:
- name: arcline-node
rules:
- alert: NodeDown
expr: up == 0
for: 2m
labels:
severity: critical
annotations:
summary: "{{ $labels.instance }} is unreachable"
- alert: HighCpuLoad
expr: node_load1 / count(node_cpu_seconds_total{mode="idle"}) > 2
for: 10m
labels:
severity: warning
annotations:
summary: "sustained load average > 2 on {{ $labels.instance }}"
- alert: DiskAlmostFull
expr: (1 - node_filesystem_avail_bytes{fstype!~"tmpfs|overlay|squashfs"} / node_filesystem_size_bytes) * 100 > 85
for: 10m
labels:
severity: warning
annotations:
summary: "filesystem {{ $labels.mountpoint }} on {{ $labels.instance }} > 85%"
- alert: RootDiskCritical
expr: (1 - node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 > 95
for: 5m
labels:
severity: critical
annotations:
summary: "root filesystem on {{ $labels.instance }} > 95%"
- alert: ServiceRestarts
expr: increase(node_systemd_unit_restart_total[15m]) > 2
for: 0m
labels:
severity: warning
annotations:
summary: "unit {{ $labels.name }} restarting repeatedly on {{ $labels.instance }}"