grafana&prometheus 快速配置报警规则及报警接收

系列文章目录

1、使用helm快速安装 grafana&prometheus
2、利用grafana&prometheus 快速配置 k8s & 主机监控
3、grafana&prometheus 快速配置报警规则及报警接收



前言

前两回讲了如何做大屏dashborad监控,本节课给大家讲解快速将 metrics 指标 配置到告警中(超过阈值报警)。
学习完本节课,你将会快速配置你的监控项目。

报警设置选型

前文讲过 grafana&prometheus 的安装及配置,其实这两个服务内部都会有报警配置项的。
配置界面分别如下:
在这里插入图片描述
prometheus支持通过配置文件自定义分组配置,比较灵活。
在这里插入图片描述
Grafana中的报警配置是基于图表创建时的聚合参数构建的,如果有报警需要是与页面显示相关的推荐使用Grafana的报警。
但是一般模板系统的报警规则,这里推荐使用prometheus进行设置。

配置prometheus报警rule

我们已经通过helm安装完了prometheus,我现在想看下prometheus的安装配置是什么样子的。这里需要helm pull一下,我们需要看看配置规则到底设置到哪里了。

helm pull apphub/prometheus-operator
tar xvf prometheus-10.4.0.tgz
cd prometheus
vim README.md

这个README.md里面有更加细致的 values.yaml参数,现在贴到下面:

ParameterDescriptionDefault
alertmanager.configFromSecretThe name of a secret in the same kubernetes namespace which contains the Alertmanager config, setting this value will prevent the default alertmanager ConfigMap from being generated""
alertmanager.configFileNameThe configuration file name to be loaded to alertmanager. Must match the key within configuration loaded from ConfigMap/Secret.alertmanager.yml

alertmanager.configFileName 报警管理器,核心配置是维护到ConfigMap中的。

导出对应服务配置

kubectl get configMap  my-prometheus-server -o yaml > prometheus-server-config.yaml

核心内容如下:

apiVersion: v1
data:
  alerts: |
    {}
....
  prometheus.yml: |
    global:
      evaluation_interval: 1m
      scrape_interval: 1m
      scrape_timeout: 10s
    rule_files:
    - /etc/config/recording_rules.yml
    - /etc/config/alerting_rules.yml
    - /etc/config/rules
    - /etc/config/alerts
    scrape_configs:
    - job_name: prometheus
...

在rule_files中新增对应配置参数即可。

新增服务配置

我们以k8s服务监控举例,有很多成型的报警规则我们可以直接使用:
参考网址:https://awesome-prometheus-alerts.grep.to/rules#kubernetes
在这里插入图片描述
规则都是现成的我们直接用即可。
下面开始编辑我们的配置文件:
核心内容如下:
vim prometheus-server-config.yaml

apiVersion: v1
data:
  alerts: |
    {}
  kube_state_metrics.yml: |
    groups:
	- name: kube_state_metrics
	  rules:
	  ...
	  #增加从上面拷贝的内容即可注意缩进,比如下面
	  #- alert: KubernetesNodeReady
	  #    expr: kube_node_status_condition{condition="Ready",status="true"} == 0
	  #    for: 10m
	  #    labels:
	  #      severity: critical
	  #    annotations:
	  #      summary: Kubernetes Node ready (instance {{ $labels.instance }})
	  #      description: "Node {{ $labels.node }} has been unready for a long time\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
....
  prometheus.yml: |
    global:
      evaluation_interval: 1m
      scrape_interval: 1m
      scrape_timeout: 10s
    rule_files:
    - kube_state_metrics.yml
    - /etc/config/recording_rules.yml
    - /etc/config/alerting_rules.yml
    - /etc/config/rules
    - /etc/config/alerts
    scrape_configs:
    - job_name: prometheus
...

然后执行配置写入

kubectl apply -f my-prometheus-server.yaml

查看配置效果:
在这里插入图片描述

新增报警管理器(alertmanager)配置,让产生的告警发送到邮箱

上面配置完毕的规则后,恰好我的集群里有几个服务没有启动,所以果然出发了alarms消息,效果如图:
在这里插入图片描述
如果将这个报警消息通知到用户邮箱里呢?
这里就需要设置另外一个配置了。
查看当前的配置字典:

$ kubectl get configMap
NAME                         DATA   AGE
kube-root-ca.crt             1      20d
my-prometheus-alertmanager   1      10h
my-prometheus-server         6      10h
mygrafana                    1      10h
mygrafana-test               1      10h

my-prometheus-alertmanager就是我们想要的配置,同理导出然后修改即可,下面我们快速过了。

#导出配置文件
kubectl get configMap  my-prometheus-alertmanager -o yaml > my-prometheus-alertmanager.yaml

如果想走邮件发送的话,调整文件如下,其他类型自行百度。

apiVersion: v1
data:
  alertmanager.yml: |-
    global:
     smtp_smarthost: 'smtp.163.com:25'
     smtp_from: 'xxxx@163.com'
     smtp_auth_username: 'xxxx'
     smtp_auth_password: 'xxxx#Q'
     resolve_timeout: 5m
     smtp_require_tls: false
    route:
     group_by: ['alertname']
     group_interval: 5s
     repeat_interval: 5s
     receiver: 'mail'
    receivers:
    - name: 'mail'
      email_configs:
      - to: 'xxxx@163.com'
kind: ConfigMap
...

更新配置文件

kubectl apply -f my-prometheus-alertmanager.yaml

静等几分钟,打开邮箱看看是不是已经收到邮件了?
在这里插入图片描述
在这里插入图片描述

参考资料

https://www.cnblogs.com/sanduzxcvbnm/p/14759693.html
https://awesome-prometheus-alerts.grep.to/rules#kubernetes
https://blog.youkuaiyun.com/qq_40843231/article/details/121698566

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值