系列文章目录

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


文章目录

  • 系列文章目录
  • 前言
  • 报警设置选型
  • 配置prometheus报警rule
    • 导出对应服务配置
  • 新增服务配置
  • 新增报警管理器(alertmanager)配置,让产生的告警发送到邮箱
  • 参考资料

前言

前两回讲了如何做大屏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参数,现在贴到下面:

Parameter Description Default
alertmanager.configFromSecret The 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.configFileName The 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: 1mscrape_interval: 1mscrape_timeout: 10srule_files:- /etc/config/recording_rules.yml- /etc/config/alerting_rules.yml- /etc/config/rules- /etc/config/alertsscrape_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_metricsrules:...#增加从上面拷贝的内容即可注意缩进,比如下面#- 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: 1mscrape_interval: 1mscrape_timeout: 10srule_files:- kube_state_metrics.yml- /etc/config/recording_rules.yml- /etc/config/alerting_rules.yml- /etc/config/rules- /etc/config/alertsscrape_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: 5msmtp_require_tls: falseroute:group_by: ['alertname']group_interval: 5srepeat_interval: 5sreceiver: '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.csdn.net/qq_40843231/article/details/121698566

grafanaprometheus 快速配置报警规则及报警接收相关推荐

  1. 报警系统QuickAlarm之报警规则的设定与加载

    前面一篇是报警执行器的定义与加载已经完成,但与之对应的报警规则有是如何定义和加载的呢? 此外,既然命名为规则,那么就需要有对应的解析器,以根据报警规则和报警类型等相关输入条件,来选择对应的报警执行器, ...

  2. prometheus 报警规则

    prometheus 报警规则 Prometheus 报警我们一遍都会配合Alertmanager来使用. 从Prometheus server端接收到alerts后,会基于PromQL的告警规则 分 ...

  3. Prometheus 报警规则配置

    提供下我整理的node-exporter的记录规则和报警规则. node-exporter-record-rules.yml groups:- name: node-exporter-recordru ...

  4. 阿里云ecs配置报警规则

    1. 云监控控制台 地址: https://cloudmonitor.console.aliyun.com/ 点击主机监控 如果插件状态不是运行中, 可以勾选主机,批量安装或升级插件 2. 添加报警联 ...

  5. RDS用户如何优化报警规则

    问题背景 云监控为RDS用户提供了默认报警功能,每创建1个RDS实例,云监控会自动生成4到5条RDS的云监控报警规则.这样存在以下几个问题: 用户无法选择是否需要自动创建报警规则,也无法选择对哪些指标 ...

  6. 怎么看服务器报警信息,云监控查看报警规则详情

    云监控查看报警规则详情 内容精选 换一换 FunctionGraph函数实现了与云监控服务的对接,用户无需任何配置,即可查询函数监控信息.可以查看租户所有函数及单个函数的监控信息.租户监控信息在总览界 ...

  7. Zabbix配置网络流量监控报警

    一.SNMP简单概述 1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议&qu ...

  8. 【实操】创建云监控报警规则

    大家好,本期为大家介绍如何使用云监控报警服务.报警服务提供监控数据的报警功能,我们通过设置报警规则来定义报警系统如何检查监控数据,并在监控数据满足报警条件时发送报警通知.对我们的重要监控指标设置报警规 ...

  9. Alertmanager 报警规则

    报警规则 现在我们只是把 AlertManager 容器运行起来了,也和 Prometheus 进行了关联,但是现在我们并不知道要做什么报警,因为没有任何地方告诉我们要报警,所以我们还需要配置一些报警 ...

最新文章

  1. 基于SSM实现健康食品零售网站
  2. 【转载】闲话操作系统(二)
  3. 常用深度学习模型介绍(1)
  4. Surf Gym - 100819S
  5. html div 自动聚焦,让DIV也能够获取焦点
  6. FB面经Prepare: Email User
  7. scanf 输入十六进制_在C语言中使用scanf()输入一个十六进制值
  8. JavaScript 中的垃圾回收和内存泄露如何处理?| 技术头条
  9. 浅析HEVC/H.265编码器中的熵编码
  10. 2017最新版《土地利用现状分类》GBT 21010-2017‰
  11. 〖数学算法〗开平方的七种算法
  12. 2022-04- 聂卫平围棋道场-小汪小喵学围棋
  13. python用正则写银行系统_python使用正则表达式(Regular Expression)方法超详细
  14. 直播回顾|论道原生:云原生时代的中间件
  15. Double 保留至小数点后两位
  16. 【财富空间】一个人彻底的改变 一定始于内心的改变
  17. 行测做的慢,如何提升做题速度?怎么提升正确率?
  18. 举例说明如何使用【聚合数据】的API接口
  19. NCH Switch Plus for Mac(音频转换器)
  20. 2022危险化学品生产单位安全生产管理人员考试模拟100题及答案

热门文章

  1. 学考计算机使用说明,《大学计算机》上机考试系统操作指南
  2. Java8万人 每年增长25%_看人口增长趋势!1998年到2018年中国历年人口总数、净增人口对比...
  3. java实现图片随机验证码
  4. 余江php,余江通报9起违纪案例,其中这个局竟然有8起
  5. 使用kon-boot的U盘启动盘绕过系统登录密码
  6. 信号--Signal
  7. 充电复习之ES 扩展词库及热更新词库,扩展同义词词库,及热扩展词库
  8. 【概念理解】typedef-Lnode-*Linklist
  9. SSCOM串口助手对于接收到的中文编码字符串的兼容性测试
  10. 奈奎斯特与香农定理等系列概念(易混淆)