Alertmanager告警规则编写案例(十二)

alertmanager告警规则编写案例

1.编写告警规则注意事项

首先要将一些类似的监控项规划到一个分组,在定义表达式、告警级别、告警详细内容,在告警详细内容中一定要熟练使用监控项自身的标签,这样就可以在告警内容中让管理员一眼知道什么触发了告警

2.编写磁盘告警规则

2.1.编写规则

expr指定表达式,在使用逻辑符号匹配阈值

告警内容中要熟练运用各种标签,标签都是监控项中自带的,value标签就是当前监控项的一个指标

[root@prometheus-server /data/prometheus]# vim rules/node.yml
groups:
- name: node.rules
  rules:
  - alert: NodeFilessystemUsage
    expr: 100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100) > 80
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率过高"
      description: "{
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率超过80% (当前值: {
   
   { $value }}) "

在这里插入图片描述

1.检测语法
[root@prometheus-server /data/prometheus]# promtool check config /data/prometheus/prometheus.yml 

2.加载配置
[root@prometheus-server /data/prometheus]# curl -XPOST 192.168.81.210:9090/-/reload

2.2.查看页面是否增加告警规则

点击status—rules即可看到告警规则

点击alert即可看到是否触发告警规则

在这里插入图片描述

2.3.触发告警

我们将阈值稍微调小一点即可触发告警

1.查看当前系统磁盘使用率
[root@prometheus-server /data/prometheus]# df -hT | egrep '文件|/$'
文件系统                		类型      容量 		 已用 	 可用 	已用% 	挂载点
/dev/mapper/centos-root 	  xfs    	47G  	  7.6G      40G     17% 	/

2.根据刚刚查看的磁盘使用率调整一下告警阈值,将阈值调整为10
[root@prometheus-server /data/prometheus]# vim rules/node.yml 
groups:
- name: node.rules
  rules:
  - alert: NodeFilessystemUsage
    expr: 100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100) > 10
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率过高"
      description: "{
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率超过80% (当前值: {
   
   { $value }}) "

在这里插入图片描述

2.4.查看告警邮件

三台node节点的告警已经发送,且同时发送在了一封邮件,也可以看到我们只改了阈值,下面的信息还是80%

在这里插入图片描述

3.编写内存告警规则

3.1.编写规则

[root@prometheus-server /data/prometheus]# vim rules/node.yml 
groups:
- name: node.rules
  rules:
  - alert: NodeMemoryUsage
    expr: 100 - ((node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100) > 80
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} 内存使用率过高"
      description: "{
   
   { $labels.instance }} 内存使用率超过80% (当前值: {
   
   { $value }}) "

在这里插入图片描述

1.检测语法
[root@prometheus-server /data/prometheus]# promtool check config /data/prometheus/prometheus.yml 

2.加载配置
[root@prometheus-server /data/prometheus]# curl -XPOST 192.168.81.210:9090/-/reload

3.2.查看页面是否增加告警规则

点击status—rules即可看到告警规则

点击alert即可看到是否触发告警规则

内存和磁盘的使用率都属于node监控,因此都分在node.rules分组下

在这里插入图片描述

3.3.触发告警

我们将阈值稍微调小一点即可触发告警

将阈值调整为10

groups:
- name: node.rules
  rules:
  - alert: NodeMemoryUsage
    expr: 100 - ((node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100) > 10
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} 内存使用率过高"
      description: "{
   
   { $labels.instance }} 内存使用率超过80% (当前值: {
   
   { $value }}) "

已经生效

在这里插入图片描述

3.4.查看告警邮件

已经触发告警,且都是发送的一封邮件

在这里插入图片描述

4.编写CPU告警规则

4.1.编写规则

groups:
- name: node.rules
  rules:
  - alert: NodeCpuUsage
    expr: 100 - (avg(irate(node_cpu_seconds_total{mode='idle'}[5m])) by (instance) *100) > 80
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} CPU使用率过高"
      description: "{
   
   { $labels.instance }} CPU使用率超过80% (当前值: {
   
   { $value }}) " 

在这里插入图片描述

1.检测语法
[root@prometheus-server /data/prometheus]# promtool check config /data/prometheus/prometheus.yml 

2.加载配置
[root@prometheus-server /data/prometheus]# curl -XPOST 192.168.81.210:9090/-/reload

4.2.查看页面是否增加告警规则

点击status—rules即可看到告警规则

点击alert即可看到是否触发告警规则

CPU、内存、磁盘的使用率都属于node监控,因此都分在node.rules分组下
在这里插入图片描述

4.3.触发告警

我们将阈值稍微调小一点即可触发告警,将阈值调为1

groups:
- name: node.rules
  rules:
  - alert: NodeCpuUsage
    expr: 100 - (avg(irate(node_cpu_seconds_total{mode='idle'}[5m])) by (instance) *100) > 1
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} CPU使用率过高"
      description: "{
   
   { $labels.instance }} CPU使用率超过80% (当前值: {
   
   { $value }}) "

已经生效
在这里插入图片描述

4.4.查看告警邮件

已经触发告警,且都是发送的一封邮件
在这里插入图片描述

5.将阈值调回正确

[root@prometheus-server /data/prometheus]# vim rules/node.yml 
groups:
- name: node.rules
  rules:
  - alert: NodeFilessystemUsage
    expr: 100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100) > 80
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率过高"
      description: "{
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率超过80% (当前值: {
   
   { $value }}) "

  - alert: NodeMemoryUsage
    expr: 100 - ((node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100) > 80
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} 内存使用率过高"
      description: "{
   
   { $labels.instance }} 内存使用率超过80% (当前值: {
   
   { $value }}) "

  - alert: NodeCpuUsage
    expr: 100 - (avg(irate(node_cpu_seconds_total{mode='idle'}[5m])) by (instance) *100) > 80
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} CPU使用率过高"
      description: "{
   
   { $labels.instance }} CPU使用率超过80% (当前值: {
   
   { $value }}) "

大功告成了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/113985204