来自AI助手的总结
通过PromQL创建MySQL宕机告警规则

一、打开Mysql的Dashboard,点击【Edit】


二、复制相关PromQL语句
mysql_up{account=~"$account",group=~"$group"}
在此基础做相应修改
mysql_up{}
三、在Prometheus上测试即可
mysql_up{} != 0

四、告警规则所需要的expr已经完成,接下来创建PrometheusRule即可
[root@k8s-master01 ~]# vim mysql-rules.yaml
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: mysql-exporter
prometheus: k8s
role: alert-rules
name: mysql
namespace: monitoring
spec:
groups:
- name: mysql-exporter
rules:
- alert: mysqlDown
annotations:
description: MySQL实例:{{ $labels.instance }} 挂了
summary: MySQL无法连接
expr: mysql_up != 1
for: 1m
labels:
level: high
severity: critical
type: database
上面参数说明:
apiVersion: 这个字段指定了使用的 Kubernetes API 版本,monitoring.coreos.com/v1表示使用了 Prometheus Operator 中的自定义资源版本kind: 这里指定了自定义资源的类型,即PrometheusRulemetadata: 这里是一些元数据,比如标签(labels)、名称(name)、命名空间(namespace)等,用于对该资源进行标识和分类spec: 这里定义了实际的规则配置groups: 这个字段是一个规则组(RuleGroup),它可以包含一个或多个相关的规则。name: 这里定义了规则组的名称为 “mysql-exporter”。rules: 这里是规则组包含的规则列表。alert: 这是规则的名称,即 “mysqlDown”,用于标识规则。annotations: 这里定义了一些注释,包括告警的描述和摘要信息。expr: 这是一个 PromQL 表达式,用于定义告警的触发条件。在这个示例中,它检查mysql_up不等于1。for: 这是规则的持续时间,即在满足触发条件持续 1 分钟后才触发告警。labels: 这里定义了一些标签,用于对告警进行分类和标识。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






暂无评论内容