Prometheus监控服务器告警规则
[root@localhost prometheus]# cat rules.yml
groups:
- name: base-monitor-rules
rules:
- alert: InstanceDown
expr: up == 0
for: 2m
labels:
status: warning
annotations:
summary: “Instance {{labels.instance}}: has been down"
description: "{{labels.instance}}: job {{labels.job}} has been down"
- alert: NodeCpuUsage
expr: (100 - (avg by (instance) (rate(node_cpu_seconds_total{job=~".*",mode="idle"}[2m])) * 100)) > 99
for: 15m
labels:
level: warning
annotations:
summary: "Instance {{labels.instance}}: CPU usage is above 99%”
description: “Instance CPU usage is above 99% (current value is: {{ value }}"
- alert: NodeMemUsage
expr: avg by (instance) ((1- (node_memory_MemFree_bytes{} + node_memory_Buffers_bytes{} + node_memory_Cached_bytes{})/node_memory_MemTotal_bytes{}) * 100) > 95
for: 15m
labels:
severity: critical
annotations:
summary: "Instance {{labels.instance}}: MEM usage is above 95%”
description: “MEM usage is above 95%,(current value is: {{ value }}"
- alert: NodeDiskUsage
expr: (1 - node_filesystem_free_bytes{fstype!="rootfs",mountpoint!="",mountpoint!~"/(run|var|sys|dev).*"} / node_filesystem_size_bytes) * 100 > 80
for: 2m
labels:
level: warning
annotations:
summary: "Instance {{labels.instance}}: Disk usage is above 80%”
description: “{{$labels.instance}}: Disk usage is above 80% (current value is: {{ value }}"
- alert: NodeFDUsage
expr: avg by (instance) (node_filefd_allocated{} / node_filefd_maximum{}) * 100 > 80
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: File Descriptor usage is above 80%”
description: “{{$labels.instance}}: File Descriptor usage is above 80% (current value is: {{ value }}"
- alert: NodeLoad15
expr: avg by (instance) (node_load15{}) > 100
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: Load15 is above 100”
description: “{{$labels.instance}}: Load15 is above 100 (current value is: {{ value }}"
- alert: NodeAgentStatus
expr: avg by (instance) (up{}) == 0
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: Node Agent is down”
description: “{{$labels.instance}}: Node Agent is down (current value is: {{ value }}"
- alert: NodeProcsBlocked
expr: avg by (instance) (node_procs_blocked{}) > 100
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: Node Blocked Procs detected!”
description: “{{$labels.instance}}: Node Blocked Procs detected!(current value is: {{ value }}"
- alert: NodeTransmitRate
expr: avg by (instance) (floor(irate(node_network_transmit_bytes_total{device="ens33"}[2m]) / 1024 / 1024)) > 100
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: Node Transmit Rate is above 100MB/s”
description: “{{$labels.instance}}: Node Transmit Rate is above 100MB/s (current value is: {{ value }}"
- alert: NodeReceiveRate
expr: avg by (instance) (floor(irate(node_network_receive_bytes_total{device="ens33"}[2m]) / 1024 / 1024)) > 100
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: Node Receive Rate is above 100MB/s”
description: “{{$labels.instance}}: Node Receive Rate is above 100MB/s (current value is: {{ value }}"
- alert: NodeDiskReadRate
expr: avg by (instance) (floor(irate(node_disk_read_bytes_total{}[2m]) / 1024 / 1024)) > 200
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: Node Disk Read Rate is above 200MB/s”
description: “{{$labels.instance}}: Node Disk Read Rate is above 200MB/s (current value is: {{ value }}"
- alert: NodeDiskWriteRate
expr: avg by (instance) (floor(irate(node_disk_written_bytes_total{}[2m]) / 1024 / 1024)) > 50
for: 2m
labels:
level: warning
annotations:
summary: "{{labels.instance}}: Node Disk Write Rate is above 50MB/s”
description: “{{$labels.instance}}: Node Disk Write Rate is above 50MB/s (current value is: {{ $value }}”




