根据客户环境调整Prometheus告警规则,并设置alertmanager告警频率,以满足客户特定需求。
目前告警规则分为两种:system级别(系统级别:基础组件告警规则)和service级别(服务级别:业务告警规则),仅支持在Prometheus页面进行查看。如需对告警规则进行增删改操作,需要进入Prometheus告警规则具体目录进行操作。
v4.7.2及之前的老版本 部署机:/home/wps/kubewps/webserver/prometheus/alert_rules
/home/wps/kubewps/webserver/prometheus/alert_rules
v5.x.x~v517-0316之间版本: 监控机:/data/kube/prometheus/webserver/prometheus/alert_rules
/data/kube/prometheus/webserver/prometheus/alert_rules
v517-0316及之后版本: 监控机:/data/kube/prometheus/config/alert_rules
/data/kube/prometheus/config/alert_rules
说明:虽然v4.x.x和v5.x.x的监控路径不一样,但针对告警规则的操作是相同的。
示例:删除节点的【主机时间未同步】告警规则 第一步:进入监控机告警规则目录 v4.x.x版本:/home/wps/kubewps/webserver/prometheus/alert_rules/system/ v5.x.x~v517-0316之间版本:/data/kube/prometheus/webserver/prometheus/alert_rules/system/ v517-0316及之后版本:/data/kube/prometheus/config/alert_rules/ v6-2022-0628及之后版本:运维平台界面修改告警规则
/home/wps/kubewps/webserver/prometheus/alert_rules/system/
/data/kube/prometheus/webserver/prometheus/alert_rules/system/
/data/kube/prometheus/config/alert_rules/
编辑node_rules.yml文件,如下所示: 找到要删除的规则,直接删除保存。
第二步:使得刚才修改的告警规则生效,有以下三种方法。 第一种方法:热重启Prometheus,平滑重启,无影响,推荐。 命令: v5.1.5版本及之前:sudo curl -XPOST http://监控机IP:9090/-/reload v5.1.5~v517-0829之间版本:sudo curl -XPOST -k https://任意节点IP:8081/prometheus/-/reload v517-0829及之后版本:sudo curl -XPOST -u prometheus:密码见共享文档 -k https://任意节点IP:8081/prometheus/-/reload 第二种方法:重启Prometheus服务,硬重启,会重新监控所有对象,有影响,不推荐。 命令:sudo supervisor restart prometheus:prometheus_00,监控机上执行。 第三种方法:等待Prometheus自动识别规则变化并自动更新,生效不及时。
sudo curl -XPOST http://监控机IP:9090/-/reload
sudo curl -XPOST -k https://任意节点IP:8081/prometheus/-/reload
sudo curl -XPOST -u prometheus:密码见共享文档 -k https://任意节点IP:8081/prometheus/-/reload
第三步:进入Prometheus--->Status--->Rules界面,查看刚才删除的告警规则是否已删除。
示例:修改redis的【Redis客户端连接过多】规则的告警阈值为800 第一步:进入监控机告警规则目录 v4.x.x版本:/home/wps/kubewps/webserver/prometheus/alert_rules/system/ v5.x.x~v517-0316之间版本:/data/kube/prometheus/webserver/prometheus/alert_rules/system/ v517-0316及之后版本:/data/kube/prometheus/config/alert_rules/
编辑redis_rules.yml文件,如下所示: 找到要修改的规则,直接修改对应阈值并保存,注意:要同时修改表达式后面的阈值以及详情里面对应的值。
第二步:重启Prometheus,参照删除操作中的推荐方法。 第三步:进入Prometheus--->Status--->Rules界面,查看刚才修改的告警规则是否修改成功。
示例:新增mysql的【MySQL slave IO进程中断】告警规则 第一步:进入监控机告警规则目录 v4.x.x版本:/home/wps/kubewps/webserver/prometheus/alert_rules/system/ v5.x.x~v517-0316之间版本:/data/kube/prometheus/webserver/prometheus/alert_rules/system/ v517-0316及之后版本:/data/kube/prometheus/config/alert_rules/
编辑mysql_rules.yml文件,在rules代码块中插入新的规则字段,注意:每个规则都由alert、expr、for、labels、annotations五个字段组成,前面已经介绍过它们的含义。每条规则都是rules下面的一个列表元素,其中alert字段要以中横杠-开头,注意缩减,参考已有规则。如下所示:
第二步:重启Prometheus,参照删除操作中的推荐方法。 第三步:进入Prometheus--->Status--->Rules界面,查看刚才新增的告警规则是否已加入。
查看告警规则有如下两种方法,如下: 第一种方法:进入Prometheus--->Status--->Rules界面查看。
第二种方法:进入Prometheus--->Alerts界面查看。 这个界面默认显示每条规则的名称,点击每个名称可展开规则的具体信息。
如果要临时测试某一条规则是否能被正常触发告警并发出告警通知,同时能恢复并发出恢复通知,那么我们需要手动修改该规则的告警阈值。 修改告警阈值分为两种情况:
示例:测试redis告警规则【Redis客户端连接过多】,将其修改成0,默认阈值为1000 第一步:修改规则告警阈值,参考前面描述的【修改操作】部分; 默认配置
修改后的测试配置
第二步:重启Prometheus并查看阈值是否修改成功,参考前面描述的【删除操作】部分中的重启Prometheus方法,以及【查看操作】部分; 查看:如下图所示,测试规则已修改
第三步:打开Prometheus--->Alerts界面,勾选【Pending】和【Firing】,等待片刻,刷新页面,可看到redis客户端连接数告警规则开始处于【Pending】状态,当持续该规则中的for时间,该规则中的expr表达式的值为True的话,该条告警规则的状态会变为Firing状态,此时Prometheus会将此告警信息发送给alertmangaer; 说明:由于redis集群有6个容器,所以这里会看到一条告警规则有6个告警信息。
变成Firing状态了
第四步:打开alertmanager页面,查看Prometheus发送过来的告警信息,然后alertmanager会按照已配置的routes来发送告警通知。
第五步:查看是否已成功发出告警通知
v5.1.4版本及以下: 由于老版本的部署平台没有存储告警信息,需要提前配置邮箱告警方式,此时就可以查看邮箱是否收到了告警信息。
v5.1.5版本及以上: 新部署平台会存储告警信息,并在页面上进行展示,此时可登录部署平台查看告警信息是否已显示。
第六步:将测试告警规则阈值调整回默认值1000,热重启Prometheus后查看值是否修改正常;
第七步:打开Prometheus--->Alerts界面,等待片刻,观察处于【Firing】状态的测试规则是否消失;
第八步:打开alertmanager页面,查看测试的告警信息是否消失;
第九步:确认是否收到告警信息的恢复通知。 v5.1.4版本及以下: 由于老版本的部署平台没有存储告警信息,需要提前配置邮箱告警方式,此时就可以查看邮箱是否收到了恢复通知。
v5.1.5版本及以上: 新部署平台会存储告警信息,并在页面上进行展示,此时可登录部署平台查看恢复信息是否已显示。
有时在测试环境或客户环境中,需要修改alertmanager告警发送频率,来应对不同需求。此时可以修改alertmanager默认的告警发送频率。 v4.x.x及之前的老版本 修改文件路径:/home/wps/kubewps/webserver/alertmanager/alertmanager.yml
/home/wps/kubewps/webserver/alertmanager/alertmanager.yml
v5.x.x~v517-0316之间版本: 修改文件路径:/data/kube/prometheus/webserver/alertmanager/alertmanager.yml
/data/kube/prometheus/webserver/alertmanager/alertmanager.yml
v517-0316及之后版本: 修改文件路径:/data/kube/alertmanager/config/alertmanager.yml
/data/kube/alertmanager/config/alertmanager.yml
说明:虽然v4.x.x和v5.x.x的alertmanager路径不一样,但操作是相同的。
字段解释:
以上字段,根据自身环境进行修改,修改完成后重启alertmanager服务,监控机执行命令: sudo supervisorctl restart alertmanager:alertmanager_00 参考前面【alertmanager使用】部分,如下图所示:
sudo supervisorctl restart alertmanager:alertmanager_00
一、目的
根据客户环境调整Prometheus告警规则,并设置alertmanager告警频率,以满足客户特定需求。
二、操作
目前告警规则分为两种:system级别(系统级别:基础组件告警规则)和service级别(服务级别:业务告警规则),仅支持在Prometheus页面进行查看。如需对告警规则进行增删改操作,需要进入Prometheus告警规则具体目录进行操作。
2.1 告警规则路径
v4.7.2及之前的老版本
部署机:
/home/wps/kubewps/webserver/prometheus/alert_rules
v5.x.x~v517-0316之间版本:
监控机:
/data/kube/prometheus/webserver/prometheus/alert_rules
v517-0316及之后版本:
监控机:
/data/kube/prometheus/config/alert_rules
2.2 增删改查
2.2.1 删除
示例:删除节点的【主机时间未同步】告警规则
第一步:进入监控机告警规则目录
v4.x.x版本:
/home/wps/kubewps/webserver/prometheus/alert_rules/system/
v5.x.x~v517-0316之间版本:
/data/kube/prometheus/webserver/prometheus/alert_rules/system/
v517-0316及之后版本:
/data/kube/prometheus/config/alert_rules/
v6-2022-0628及之后版本:运维平台界面修改告警规则
编辑node_rules.yml文件,如下所示:
找到要删除的规则,直接删除保存。
第二步:使得刚才修改的告警规则生效,有以下三种方法。
第一种方法:热重启Prometheus,平滑重启,无影响,推荐。
命令:
v5.1.5版本及之前:
sudo curl -XPOST http://监控机IP:9090/-/reload
v5.1.5~v517-0829之间版本:
sudo curl -XPOST -k https://任意节点IP:8081/prometheus/-/reload
v517-0829及之后版本:
sudo curl -XPOST -u prometheus:密码见共享文档 -k https://任意节点IP:8081/prometheus/-/reload
第二种方法:重启Prometheus服务,硬重启,会重新监控所有对象,有影响,不推荐。
命令:sudo supervisor restart prometheus:prometheus_00,监控机上执行。
第三种方法:等待Prometheus自动识别规则变化并自动更新,生效不及时。
第三步:进入Prometheus--->Status--->Rules界面,查看刚才删除的告警规则是否已删除。
2.2.2 修改
示例:修改redis的【Redis客户端连接过多】规则的告警阈值为800
第一步:进入监控机告警规则目录
v4.x.x版本:
/home/wps/kubewps/webserver/prometheus/alert_rules/system/
v5.x.x~v517-0316之间版本:
/data/kube/prometheus/webserver/prometheus/alert_rules/system/
v517-0316及之后版本:
/data/kube/prometheus/config/alert_rules/
编辑redis_rules.yml文件,如下所示:
找到要修改的规则,直接修改对应阈值并保存,注意:要同时修改表达式后面的阈值以及详情里面对应的值。
第二步:重启Prometheus,参照删除操作中的推荐方法。
第三步:进入Prometheus--->Status--->Rules界面,查看刚才修改的告警规则是否修改成功。
2.2.3 新增
示例:新增mysql的【MySQL slave IO进程中断】告警规则
第一步:进入监控机告警规则目录
v4.x.x版本:
/home/wps/kubewps/webserver/prometheus/alert_rules/system/
v5.x.x~v517-0316之间版本:
/data/kube/prometheus/webserver/prometheus/alert_rules/system/
v517-0316及之后版本:
/data/kube/prometheus/config/alert_rules/
编辑mysql_rules.yml文件,在rules代码块中插入新的规则字段,注意:每个规则都由alert、expr、for、labels、annotations五个字段组成,前面已经介绍过它们的含义。每条规则都是rules下面的一个列表元素,其中alert字段要以中横杠-开头,注意缩减,参考已有规则。如下所示:
第二步:重启Prometheus,参照删除操作中的推荐方法。
第三步:进入Prometheus--->Status--->Rules界面,查看刚才新增的告警规则是否已加入。
2.2.4 查看
查看告警规则有如下两种方法,如下:

第一种方法:进入Prometheus--->Status--->Rules界面查看。
第二种方法:进入Prometheus--->Alerts界面查看。
这个界面默认显示每条规则的名称,点击每个名称可展开规则的具体信息。
2.2.5 测试
如果要临时测试某一条规则是否能被正常触发告警并发出告警通知,同时能恢复并发出恢复通知,那么我们需要手动修改该规则的告警阈值。
修改告警阈值分为两种情况:
示例:测试redis告警规则【Redis客户端连接过多】,将其修改成0,默认阈值为1000
第一步:修改规则告警阈值,参考前面描述的【修改操作】部分;
默认配置
修改后的测试配置
第二步:重启Prometheus并查看阈值是否修改成功,参考前面描述的【删除操作】部分中的重启Prometheus方法,以及【查看操作】部分;
查看:如下图所示,测试规则已修改
第三步:打开Prometheus--->Alerts界面,勾选【Pending】和【Firing】,等待片刻,刷新页面,可看到redis客户端连接数告警规则开始处于【Pending】状态,当持续该规则中的for时间,该规则中的expr表达式的值为True的话,该条告警规则的状态会变为Firing状态,此时Prometheus会将此告警信息发送给alertmangaer;
说明:由于redis集群有6个容器,所以这里会看到一条告警规则有6个告警信息。
变成Firing状态了
第四步:打开alertmanager页面,查看Prometheus发送过来的告警信息,然后alertmanager会按照已配置的routes来发送告警通知。
第五步:查看是否已成功发出告警通知
v5.1.4版本及以下:
由于老版本的部署平台没有存储告警信息,需要提前配置邮箱告警方式,此时就可以查看邮箱是否收到了告警信息。
v5.1.5版本及以上:
新部署平台会存储告警信息,并在页面上进行展示,此时可登录部署平台查看告警信息是否已显示。
第六步:将测试告警规则阈值调整回默认值1000,热重启Prometheus后查看值是否修改正常;
第七步:打开Prometheus--->Alerts界面,等待片刻,观察处于【Firing】状态的测试规则是否消失;
第八步:打开alertmanager页面,查看测试的告警信息是否消失;
第九步:确认是否收到告警信息的恢复通知。
v5.1.4版本及以下:
由于老版本的部署平台没有存储告警信息,需要提前配置邮箱告警方式,此时就可以查看邮箱是否收到了恢复通知。
v5.1.5版本及以上:
新部署平台会存储告警信息,并在页面上进行展示,此时可登录部署平台查看恢复信息是否已显示。
2.3 alertmanager告警频率修改
有时在测试环境或客户环境中,需要修改alertmanager告警发送频率,来应对不同需求。此时可以修改alertmanager默认的告警发送频率。
v4.x.x及之前的老版本
修改文件路径:
/home/wps/kubewps/webserver/alertmanager/alertmanager.yml
v5.x.x~v517-0316之间版本:
修改文件路径:
/data/kube/prometheus/webserver/alertmanager/alertmanager.yml
v517-0316及之后版本:
修改文件路径:
/data/kube/alertmanager/config/alertmanager.yml
字段解释:
以上字段,根据自身环境进行修改,修改完成后重启alertmanager服务,监控机执行命令:
sudo supervisorctl restart alertmanager:alertmanager_00
参考前面【alertmanager使用】部分,如下图所示:
📋 章节目录
一、目的 二、操作 2.1 告警规则路径 2.2 增删改查 2.2.1 删除 2.2.2 修改 2.2.3 新增 2.2.4 查看 2.2.5 测试 2.3 alertmanager告警频率修改