ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

alertmanager的规则和访问

alertmanager的规则和访问

web ui 访问

web ui 访问

http://192.168.1.133:9093/#/alerts

#启动

/data/server/alertmanager/alertmanager --config.file=/data/server/alertmanager/alertmanager.yml --storage.path=/data/server/alertmanager/data --web.external-url=http://192.168.1.133:9093 --log.level=debug

rule

groups: - name: test-rules rules: #对任何实例超过1分钟无法联系的情况发出警报 - alert: InstanceDown #告警规则的名称 expr: up == 0 #基于PromQL表达式告警出发条件,用于计算是否有时间序列满足改条件 for: 2m #评估等待时间,用于表示只有当触发条件持续一段时间后才发送告警。在等待期间新产生告警的状态为pending。 labels: #自定义标签,允许用户指定要附加到告警上的一组附加标签 status: warning annotations: #用于指定一组附加信息,比如用于描述告警详细信息,当中内容会在告警产生时作为参数一同发送到AlertManager summary: "{{$labels.instance}}: has been down" description: "{{$labels.instance}}: job {{$labels.job}} has been down"
groups: - name: test-rules rules: #对任何实例超过1分钟无法联系的情况发出警报 - alert: InstanceDown #告警规则的名称 expr: up == 0 #基于PromQL表达式告警出发条件,用于计算是否有时间序列满足改条件 for: 2m #评估等待时间,用于表示只有当触发条件持续一段时间后才发送告警。在等待期间新产生告警的状态为pending。 labels: #自定义标签,允许用户指定要附加到告警上的一组附加标签 status: warning annotations: #用于指定一组附加信息,比如用于描述告警详细信息,当中内容会在告警产生时作为参数一同发送到AlertManager summary: "{{$labels.instance}}: has been down" description: "{{$labels.instance}}: job {{$labels.job}} has been down" - name: node-cpu rules: - alert: NodeCpuUsage expr: (100 - (avg by (instance) (rate(node_cpu_seconds_total{job=~".*",mode="idle"}[2m])) * 100)) > 90 for: 15m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: CPU usage is above 90% (current value is: {{ $value }}" - alert: NodeMemUsage expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes )) / node_memory_MemTotal_bytes * 100 > 90 for: 15m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: MEM usage is above 90% (current value is: {{ $value }}" - alert: NodeDiskUsage expr: (1 - node_filesystem_free_bytes{fstype!="rootfs",mountpoint!="",mountpoint!~"/(run|var|sys|dev|snap).*"} / node_filesystem_size_bytes) * 100 > 90 for: 2m labels: service_name: test level: warning annotations: 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: service_name: test level: warning annotations: description: "{{$labels.instance}}: File Descriptor usage is above 80% (current value is: {{ $value }}" - alert: NodeLoad15 expr: avg by (instance) (node_load15{}) > 20 for: 2m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: Load15 is above 100 (current value is: {{ $value }}" - alert: NodeAgentStatus expr: avg by (instance) (up{}) == 0 for: 2m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: Node Agent is down (current value is: {{ $value }}" - alert: NodeProcsBlocked expr: avg by (instance) (node_procs_blocked{}) > 100 for: 2m labels: service_name: test level: warning annotations: 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!="lo"}[2m])/ 1024 / 1024)) > 100 for: 2m labels: service_name: test level: warning annotations: 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="eth0"}[2m]) / 1024 / 1024)) > 100 for: 2m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: Node Receive Rate is above 100MB/s (current value is: {{ $value }}" - alert: NodeDiskReadRate expr: avg by (instance) (floor(irate(node_disk_bytes_read{}[2m]) / 1024 / 1024)) > 50 for: 2m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: Node Disk Read Rate is above 50MB/s (current value is: {{ $value }}" - alert: NodeDiskWriteRate expr: avg by (instance) (floor(irate(node_nfsd_disk_bytes_written_total{}[2m]) / 1024 / 1024)) > 50 for: 2m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: Node Disk Write Rate is above 50MB/s (current value is: {{ $value }}" - alert: Domain expr: domain_expiry_days < 30 for: 2m labels: service_name: test level: warning annotations: description: "{{$labels.instance}}: 域名剩余时间小于三十天,请及时续费 (current value is: {{ $value }}"
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进