Prometheus(十一)Grafana告警

news2024/11/18 13:48:01

主要概念和特点

关键概念或特征含义
Data sources for Alerting 告警的数据源配置从哪里查询到告警信息数据
Provisioning for Alerting 告警的配置使用文件等方式配置警报资源,已经管理警报资源
Scheduler 调度器评估告警规则,将其视为定期对数据源运行查询的组件
Alertmanager 告警管理器赶礼警报实例的路由和分组
Alert rule 告警规则告警规则由一个或多个查询和表达式、条件、评估频率以及满足条件的持续时间组成。一个告警规则可以产生多个告警实例。
Alert instance触发警报规则时会创建一个警报实例。警报规则可以创建一个或多个警报实例。当一个警报规则导致创建多个实例时,这称为多维警报。
Alert group默认情况下,Alertmanager 使用根通知策略的标签对警报实例进行分组。这控制发送到联系点的重复数据删除和警报实例组。
Contact point 联系点定义触发警报规则时如何通知您的联系人。比如邮件、钉钉企业微信等
Message templating消息模板创建可重复使用的自定义模板并在联系点中使用它们。
Notification policy 通知策略定义了一组关于告警分组和路由到联系点的位置、时间和方式
Labels and label matchers 标签和标签选择器标签唯一标识警报规则。它们将警报规则链接到通知策略和静音,确定应处理它们的策略以及应静音的警报规则。
Silences 静默设置在接下的某个时间段(比如 2:20到3:30)停止来自一个或多个警报实例的通知,这个是单次设定的。使用标签匹配器使警报实例静音。
Mute timings 静音计时指定您不希望生成或发送新通知的时间间隔。例如在固定每周的某个时间段进行维护系统的时候,或者升级的时候,不希望接收到告警通知。必须链接到现有的通知政策。

在这里插入图片描述

告警规则

告警规则类型

Mimir, Loki and Cortex rules

要创建 Mimir、Loki 或 Cortex 警报,您必须具有兼容的 Prometheus 数据源。您可以通过测试数据源并检查是否支持 ruler API 的详细信息来检查您的数据源是否兼容。

告警实例

Grafana 托管警报支持多维警报。每个警报规则可以创建多个警报实例。如果您在单个表达式中观察多个系列,这将非常强大。

考虑以下 PromQL 表达式:

sum by(cpu) (
  rate(node_cpu_seconds_total{mode!="idle"}[1m])
)

在这里插入图片描述

组织告警规则

警报可以使用 Grafana 管理规则的文件夹和 Mimir 或 Loki 规则和组名称的命名空间来组织。

Namespace
在创建 Grafana 管理的规则时,该文件夹可用于执行访问控制并授予或拒绝对特定文件夹内所有规则的访问。

Groups
一个组内的所有规则都以相同的时间间隔进行评估。

组内的警报规则和记录规则将始终按顺序进行评估,这意味着不会同时按出现顺序评估任何规则。

消息模板

通过联系点发送的通知是使用消息传递模板构建的。Grafana 的默认模板基于Go 模板系统,其中一些字段被评估为文本,而其他字段被评估为 HTML(这会影响转义)。default_template.go中定义的默认模板是自定义模板的有用参考。

由于大多数联系点字段都可以模板化,因此您可以创建可重复使用的自定义模板并在多个联系点中使用它们。默认模板在default_template.go中定义,可以作为自定义模板的有用参考或起点。

使用模板

以下示例显示如何使用默认模板在 Slack 中呈现警报消息。消息标题包含正在触发或已解决的警报计数。消息正文列出了警报及其状态。

在这里插入图片描述

以下示例显示了在其中一个联系点字段中使用自定义模板。

在这里插入图片描述

嵌套模板

您可以将模板嵌入到其他模板中。

例如,您可以使用define关键字定义模板片段:

{{ define "mytemplate" }}
  {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved.
{{ end }}

template然后,您可以使用关键字在此片段中嵌入自定义模板。例如:

Alert summary:
{{ template "mytemplate" . }}

您可以使用以下任何内置模板选项来嵌入自定义模板。

名称含义
default.title显示高级状态信息
default.message提供触发和已解决的格式化摘要
teams.default.message类似 default.message ,为 Microsoft Teams 格式化

消息模板中的 HTML

警报消息模板中的 HTML 已转义。不支持在生成的通知中呈现 HTML

创建 Grafana 托管警报规则

中英文对照表

英文中文
is above高于
is below低于
outside range超出范围
is within range在范围内
has no value没有值
classic condition经典条件
resample重新采样
reduce减少
math数学
Alert evaluation behavior警报评估行为
Evaluate评估
Evaluation interval applies to every rule within a group. It can overwrite the interval of an existing alert rule.评估间隔适用于组中的每个规则。它可以覆盖现有警报规则的间隔。
Evaluate every评估间隔(就是多长时间监控一下是否符合告警信息)
Preview alerts预览警报
Add details for your alert添加警报的详细信息
Write a summary and add labels to help you better manage your alerts编写摘要并添加标签,以帮助您更好地管理警报
Folder文件夹
Summary and annotations摘要和注释
Grafana handles the notifications for alerts by assigning labels to alerts. These labels connect alerts to contact points and silence alert instances that have matching labelsGrafana通过为警报分配标签来处理警报通知。这些标签将警报连接到联系人,并使具有匹配标签的警报实例静音
Notifications通知
chart图表

在这里插入图片描述
在这里插入图片描述

选择数据源
在这里插入图片描述

基本流程

在第 1 步中设置查询和告警条件
1 Set a query and alert condition
在这里插入图片描述
在第 2 步中, 指定警报评估间隔

针对简单的Prometheus 中已经存在的 Metric

直接查询到需要用到的 Metric 并添加
在这里插入图片描述

如果需要,选择 lable 进行过滤
在这里插入图片描述

配置完成后可以点击 Run querise 进行测试查询
在这里插入图片描述

添加表达,以便判断上面的查询结果达到什么条件触发告警

选择 Classic condition
1 last() 表示取出 最新的值
2 A 表示
3 IS BELOW 低于
4 1
总体意思是:A 查询到的最新的值低于 1 ,就表示符合条件。
因为此示例中查询到的结果: 1 表示 UP,0 表示 DOWN
在这里插入图片描述

从以上定义的两个查询或表达式中选择一个作为触发告警的条件
在这里插入图片描述

在第 2 步 添加警报评估时间段
下图表示每 1 分钟检查一次看告警条件是否被触发。
告警条件被触发后持续了 5 分钟就发送告警通知。

如果没有数据轰炸所有的值为null 的告警状态: No Data
如果执行错误或者超时的告警状态为:Alerting 告警
在这里插入图片描述

在第 3 步 添加告警信息
包含告警名称,存放在那个文件夹、分配到哪个组
告警标题
告警信息
在这里插入图片描述
最后点击右上角的 Save
在这里插入图片描述

针对 Prometheus 中没有的监控指标

有的监控指标 Prometheus 中没有,需要我们自己编写的情况,比如磁盘的使用率。这种情况下,需要使用更复杂的方式设置,需要添加多个 Metric,并使用函数把它们组合起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/112903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu虚拟机修改静态ip

我的是:ubuntu 20.04,所以 第一步 sudo vi /etc/netplan/01-network-manager-all.yaml第二步 gateway4已经弃用了,换成下面的: network:version: 2renderer: NetworkManagerethernets:ens33:addresses: [192.168.125.132/24]r…

内核比较: 2.6 内核中改进了内存管理

随着 Linux 内核的发展和成熟,更多的用户期待着 Linux 可以运行非常大的系统来处理科学分析应用程序或者海量数据库。这些企业级的应用程序通常需要大量的内存才能好好运行。2.4 Linux 内核有识别相当大数量的内存的功能,但是 2.5 内核发生了很多改变&am…

docker高级篇第三章-dockerfile案例之制作自己的centos镜像

在上一篇文章中《Dockerfile介绍及常用保留指令》,我们介绍了Dockerfile是什么以及Dockerfile常用的保留字段。熟悉了这些之后,有没有想自己动手写一个Dockerfile呢?本文咱们就实战自己Dockerfile。 案例需求: 我们以远程仓库的centos为模板,制作出代用vim\ifconfig\jav…

Qt实现表格树控件-自绘树节点虚线

一、开心一刻 一程序员第一次上女朋友家她妈板着脸问 :你想娶我女儿,有多少存款? 程序员低了下头:五百! 她妈更鄙视了:才五百块,买个厕所都不够! 程序员忙说:不是人民币&…

Android混淆技术综述

1. 引入 大量的恶意软件都使用了混淆技术来逃检测。查了下Android混淆技术,看了如下两篇资料: Understanding Android Obfuscation Techniques: A Large-Scale Investigation in the Wildhttps://github.com/ClaudiuGeorgiu/Obfuscapk 对Android的混淆…

logging日志管理

1.日志作用 不管是在项目开发还是测试过程中,项目运行一旦出现问题日志信息就非常重要了。日志是定位问题的重要手段,就像侦探人员要根据现场留下的线索来推断案情。 2.日志级别 脚本运行会有很多的情况,比如调试信息、报错异常信息等。日…

渣土车空车未盖盖识别系统 OpenCv

渣土车空车未盖盖识别系统通过OpenCvyolo网络模型实时检测路过的渣土车情况,发现空车未盖盖立即进行抓拍回传。OpenCV基于C实现,同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Python API,结合了OpenCV CAPI和Python语言…

Android开发中的线程池使用

一、前言 既然Android中已经有了线程的概念,那么为什么需要使用线程池呢?我们从两个方面给出使用线程池的原因。 首先线程的新建和销毁都是存在性能上的消耗的,如果一个时间段有大量的网络请求,那么就需要多个线程的创建与销毁&am…

NSGA and NSGA-II

目录1 NSGA1.1 传统多目标优化方法1.2 多目标转为单目标的缺点1.3 权重向量距离说明1.4 NSGA方法1.4.1 流程1.4.2 关键步骤1.5 注意2 NSGA-II2.1 NSGA的缺点2.2 NSGA-II在NSGA上的变动2.3 NSGA-II流程1 NSGA 1.1 传统多目标优化方法 使用权重向量,将多目标问题转化…

Java入门练习题及其答案第一弹

Java入门练习题及其答案第一弹 文章目录Java入门练习题及其答案第一弹素数打印乘法口诀表最大公约数水仙花数二进制中1的个数二进制奇偶数位素数打印 只能被1和自己整除 import java.util.Scanner;public static void main(String[] args) {Scanner scanner new Scanner(Sys…

UI自动化测试-第一个测试脚本

前提 我们在进行UI自动化测试时,一般采用javaselenium或者pythonselenium的方式。由于python比较简单,上手快,因此建议大家采用pythonselenium的方式来进行UI自动化。 1、安装pycharm PyCharm是一种Python IDE(Integrated Deve…

【OpenCV-Python】教程:7-5 理解SVM

OpenCV Python SVM 学习 【目标】 直观理解 SVM 【理论】 线性可分 下图有两种类型的数据,红色和蓝色。在kNN中,对于一个测试数据,我们用来测量它与所有训练样本的距离,并取距离最小的一个。测量所有的距离需要大量的时间&am…

计算距离春节还有多长时间

你知道距离春节,还剩下多少时间吗? 或许你已经在默默心算了。 可是,如果我想要精确一点的结果,比如精确到多少分钟、多少秒呢? 要怎么计算呢? 这里可以使用Python进行计算。 首先,需要导入…

Opencv项目实战:18 人体姿态检测

目录 0、项目介绍 1、效果展示 2、项目搭建 3、项目代码讲解与介绍 Basics.py PoseModule.py Example.py 人体姿态图​编辑 4、项目资源 5、项目总结 0、项目介绍 mediapipe中有人体姿态检测的功能,今天我们就将实现最最基础的人体姿态估计项目,它…

【C++】深拷贝和浅拷贝

目录 浅拷贝 深拷贝 字符串的构造 例有两个类的深拷贝: 浅拷贝 在类中,若我们不写拷贝构造函数,则程序会提供一个默认的拷贝构造函数,该函数为浅拷贝。 //默认拷贝构造 ---浅拷贝--值复制 类名(const 类名& 形参名) {成…

【实时数仓】DWS层之商品主题计算、地区主题表(FlinkSQL)

文章目录一 DWS层-商品主题计算1 把JSON字符串数据流转换为统一数据对象的数据流(1)转换订单宽表流数据(2)转换支付宽表流数据2 把统一的数据结构流合并为一个流(1)代码(2)测试3 设定…

216. 组合总和 III

216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输…

3.2 Static Terrestrial Laser Scanners 静态地基激光扫描仪

本章节介绍的静态地基激光扫描系统指的是那些在一个固定位置的位置上对周边场景地物特征进行扫描的设备。该类型设备的扫描测量机制是,通过激光测距仪进行斜距测量,与此同时通过水平和竖直两个方向上同步运动的角度编码器来记录角度变化值(如…

编译原理——正规式、NFA构造DFA

一、DFA和NFA的区别 NFA:非确定有限自动机 DFA:确定有限自动机 NFA在同一状态,可以有多条出边,DFA在同一状态,只能有一条出边; NFA的初态可以具有多个,DFA的初态是唯一的; 比如这个…

数据结构入门——栈和队列详解

栈和队列详解1 栈1.1 栈的概念及结构1.2 栈的实现1.3 支持动态增长的栈1.3.1 结构声明1.3.2 栈的初始化和销毁1.3.3 入栈和出栈操作1.3.4 栈的判空和元素个数2 队列2.1 队列的概念及结构2.2 队列的实现2.3 链表实现队列2.3.1 结构声明2.3.2 队列的初始化和销毁2.3.3 队列入队和…