Prometheus(十一)Grafana告警

主要概念和特点

关键概念或特征含义
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中定义,可以作为自定义模板的有用参考或起点。

使用消息模板

模板数据

名称类型备注
Receiverstring发送通知的联系点的名称。
Statusstring告警的状态,如果至少有一个警报正在触发,则触发,否则解决。
AlertsAlert此通知中包含的警报对象列表(请参见下文)。
GroupLabelsKeyValue这些警报按标签分组。
CommonLabelsKeyValue此通知中包含的所有警报的通用标签。
CommonAnnotationsKeyValue此通知中包含的所有警报的通用注释。
ExternalURLstring返回发送通知的Grafana的链接。如果使用外部Alertmanager,请返回链接到此Alertmanager。

Alerts 类型公开用于筛选警报的函数:
Alerts.Firing 返回已经触发的警报列表。
Alerts.Resolved 返回已解决的警报列表。

告警

名称类型备注
Statusstringfiring or resolved. (发送或解决)
LabelsKeyValue附加到警报的一组标签。
AnnotationsKeyValue附加到警报的一组批注。
StartsAttime.Time警报启动的时间
EndsAttime.Time警报结束时间。仅当警报的结束时间已知时设置。否则,设置为自上次收到警报后的可配置超时时间。
GeneratorURLstringGrafana或外部Alertmanager的反向链接。
SilenceURLstring链接到的grafana silence,其中预先填充了此警报的标签。仅适用于Grafana管理的警报。
DashboardURLstring链接到grafana仪表板(如果警报规则属于一个)。仅适用于Grafana管理的警报。
PanelURLstring链接到grafana仪表板面板(如果警报规则属于一个)。仅适用于Grafana管理的警报。
Fingerprintstring可用于识别警报的指纹
ValueStringstring包含警报中每个缩减表达式的标签和值的字符串。

KeyValue

KeyValue 是一组表示标签和注释的键/值字符串对。

下面是一个包含两个注释的示例:

{
  "summary": "alert summary 警报摘要",
  "description": "alert description 警报描述"
}

除了直接访问存储为KeyValue的数据(标签和注释)之外,还有排序、删除和转换的方法。

名称参数返回注释
SortedPairs已经排序的 一对 key & value 字符串
Remove[]stringKeyValue返回没有给定键的键/值映射的副本。
Names[]string标签名称列表
Values[]string标签值列表

嵌套模板

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

例如,您可以使用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,并使用函数把它们组合起来。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Grafana中配置Prometheus告警,需要进行以下步骤: 1. 首先,确保已经安装和配置好PrometheusGrafana,并且两者能够正常运行。 2. 在Prometheus的配置文件`prometheus.yml`中,添加告警规则。你可以根据需要定义不同的告警规则,例如通过设定阈值或使用表达式来触发告警。 3. 在Grafana中打开面板(Dashboard),点击右上角的齿轮图标,选择“Alerting”。 4. 在Alerting页面,点击“Notification channels”选项卡,然后点击“Add channel”。 5. 根据你的需求选择合适的通知方式,例如电子邮件、Slack等。填写相应的配置信息,如SMTP服务器地址、收件人邮箱地址等。 6. 在Alerting页面的“Notification channels”选项卡中,选择刚刚添加的通知方式,并点击“Save”保存。 7. 返回到Dashboard,选择需要配置告警的图表,并点击右上角的齿轮图标,选择“Edit”。 8. 在编辑面板中,点击“Alert”选项卡,并点击“Create alert”。 9. 在“Alert”页面,配置告警规则,如选择触发条件、设置严重性级别等。 10. 在“Notification”选项卡中,选择刚刚添加的通知方式,并设置告警通知的频率、持续时间等。 11. 点击“Save”保存配置。 至此,你已经成功配置了Grafana中的Prometheus告警。当Prometheus监测到符合告警规则的情况时,会发送通知给你选择的通知方式。请确保配置的告警规则和通知方式都正确,并验证它们是否按预期工作。123 #### 引用[.reference_title] - *1* *2* [Prometheus + Grafana 监控和告警](https://blog.csdn.net/eyeofeagle/article/details/127526890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [Prometheus+Grafana监控告警](https://blog.csdn.net/dw_li/article/details/108440916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

shark_西瓜甜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值