6.prometheus监控技术与实践---告警处理(代码片段)

enlyhua enlyhua     2022-12-18     116

关键词:

第6章 告警处理 
	在 prometheus 监控体系中,指标的采集存储于告警是分开的。告警规则是在 prometheus server 端定义的,告警规则被触发后,才会将信息发送给独立组件
Alertmanager 上,经过对告警的处理后,最终通过接收器通知用户。

6.1 概述 

6.2 Alertmanager部署 
	6.2.1 Alertmanager机制 
		Prometheus server 和 Alertmanager 是互相分离的两个组件,我们使用 prometheus server 采集各类监控指标,然后基于 PromQL 对这些指标定义
	阈值告警规则(Rules)。prometheus server 对告警规则周期性的进行计算,如果满足触发条件,便生成一条告警信息,并将其推送到 Alertmanager 组件。收到
	告警信息后,Alertmanager 会处理告警,进行分组(grouping)并将它们最终路由(routing)到正确的接收器(receiver)。

		在prometheus 中,我们不仅可以对一条告警规则进行命名并通过 PromQL 定义规则,更多的时候是对相关的多条告警进行分组后统一定义。

		1.告警分组(Grouping)
			Alertmanager 将同类型的告警进行分组,合并多条告警到一个通知中。
		2.告警抑制(Inhibition)
			当某告警已经发出,停止重复发送由此告警引发的其他异常或故障的告警机制。
		3.告警静默(Silences)
			告警静默提供了一个简单的机制,可以根据标签快速对告警进行静默处理。对传入的告警进行匹配检查,如果接收到的告警符合静默的配置,Alertmanager不会发送
		告警通知。

	6.2.2 使用二进制文件方式安装 
		https://prometheus.io/download/  

	6.2.3 使用Docker安装 
		docker pull prom/alertmanager
		docker run -p 9093:9093 -v /Users/weijianhua/Sites/config_file/prometheus/alertmanager/simple.yml:/etc/alertmanager/simple.yml --name alertmanager prom/alertmanager

6.3 Alertmanager配置 
	6.3.1 global 	
		全局配置均为公共设置,可以作为其他配置下的默认值,也可以被其他配置项中的设置覆盖。
	6.3.2 templates 
		告警模板可以自定义告警通知的外观格式及其包含的对应告警数据。
	6.3.3 route 
		告警路由模块描述了在收到 prometheus server 生成的告警后,将告警发送到 receiver 指定的目的地址的规则。
	6.3.4 receivers 
		接收器是一个统称,每一个 receiver 需要设置一个全局唯一的名称,并且对应一个或者多个通知方式。
	6.3.5 inhibit_rules 
		在 inhibit_rule 模块中设置实现告警抑制功能,我们可以指定在特定条件下要忽略的告警条件。

	https://prometheus.io/webtools/alerting/routing-tree-editor/

6.4 Prometheus告警规则 
	6.4.1 与Alertmanager关联 
		prometheus 把生产的告警发送给 Alertmanager 进行告警处理时,需要在prometheus 使用的配置文件中添加关联 Alertmanager 组件的对应配置内容。

		1.编辑 prometheus.yml 文件中加入关联 Alertmanager 组件的访问地址。

alerting:
	alertmanagers:
	- static_configs:
		- targets:
			- 192.168.186.7:9093

		2.添加监控 Alertmanager 与监控 prometheus 操作过程一样,Alertmanager 公开了相关指标。可以在 prometheus.yml 文件中创建一个 prometheus job
	来监控 Alertmanager 组件示例地址,内容如下:

- job_name: 'Alertmanager'
	static_configs:
	- targets: ['192.168.186.7:9093']

	//查看配置内容
	http://localhost:9090/config 

	6.4.2 告警规则 
		告警规则文件使用yaml格式进行定义,在 prometheus server 中使用 PromQL 配置实际告警触发条件,prometheus 会根据告警规则及配置周期进行周期性的计算,
	若触发条件则会发告警通知。告警规则加载是在 prometheus.yml 文件中进行配置,默认情况下 prometheus 对设置的告警规则进行计算的时间间隔是 1分钟,可以使用global
	中的 evaluation_interval 配置项设置间隔时间。例如:
global:
	evaluation_interval: 15s

		告警规则可以直接指定文件,也可以指定到特定的目录下,为了方便管理可以把告警规则拆分成多个文件,以特定命名格式被 prometheus.yml 指定后加载,如:
rules_files:
	- '/data/prometheus/rules/*._rules.yml'
	- 'second_rules.yml'

		一个告警信息在生命周期内可能会有三种状态:
		1.Interval,没有满足触发条件,告警未激活状态
		2.Pending,已满足触发条件,但为满足告警持续时间的状态,即为满足告警中for子句中指定的持续时间
		3.Firing,已满足触发条件且已经超过for子句中指定的持续时间时的状态

		带有 for 子句的告警将首先转换为 pengding 状态,然后转换为 firing 状态,至少需要2个计算周期才触发告警。从pending状态到firing状态的转换,确保了告警的
	有效性。而没有for子句的告警自动会从 Inactive 状态转换为 Firing 状态,只需要一个计算周期即可被触发。

		prometheus 从收集监控目标开始,到触发一条告警的过程:
		1.定义规则
		2.周期计算
		3.告警状态转换

	6.4.3 使用模板 
		模板是在告警中使用时间序列数据的标签和值的一种方法,可以用于告警规则中的注释和标签。

6.5 告警接收器 
	6.5.1 Email接收告警 
		1.修改 Alertmanager 默认配置文件,在 global 中添加全局的 smtp 配置信息。
		2.在配置文件的 receivers 模块中配置 email_configs 内容

	6.5.2 企业微信接收告警 
	6.5.3基于Webhook的钉钉接收告警 
	6.5.4 告警通知模板 

6.6 告警临时静默 
	静默是使告警在给定时间内暂时静音的一种方法。我们可以通过两种方法来完成静默设置:一种是通过 Alertmanager Web 控制台控制;一种是通过 amtool 命令行设置。

	1.打开 http://localhost:9093/#/silences
	2.New Silence

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

直播回顾|告警全生命周期管理的思路与落地实践

在上一次的直播中,我们介绍了监控体系:可观测指标管理体系建设落地及插件功能设计和生态打造。本次主要和大家分享可观测领域内,告警事件管理系统的设计思路与落地实践。扫码查看直播回放(关注公众号获取PTT免费下... 查看详情

oneapm大讲堂|监控数据的可视化分析神器grafana的告警实践

...供应商 OneAPM 编译呈现。概览Grafana是一个开源的监控数据分析和可视化套件。最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用于其他需要数据可视化分析的领域。Grafana可以帮助你查询、可... 查看详情

监控告警平台的国产化选择—rancher与夜莺的集成(代码片段)

...在Kubernetes集群中搭建监控告警平台,普遍的选择都是Prometheus,这源于Prometheus早期与Kubernetes的不断演进以及后续良好发展的生态。实际上,我们有很多不错的选择,尤其是一些国内优秀团队的作品。本文以Rancher... 查看详情

携程实时智能检测平台建设实践

一、背景介绍1.规则告警带来的问题大部分监控平台是基于规则告警实现监控指标的预警。规则告警一般基于统计学,如某个指标同比、环比连续上升或下降到一定阈值进行告警。规则告警需要用户较为熟悉业务指标的形态,从... 查看详情

无效告警优化实践总结

对于7*24小时不间断运行的后台服务,监控告警是稳定性运行的基石。很多开发者都有过这样的经历,对服务的每一个指标都做了严格的监控和告警,唯恐漏掉告警导致问题无法发现,导致每天接收到大量的无效告... 查看详情

7.prometheus监控技术与实践---可视化(代码片段)

第7章 可视化7.1 概述 Grafana是一款比较流行的开源时间序列分析与可视化工具。7.2 Grafana安装 7.2.1 在CentOS上安装 1.yum方式安装vim/etc/yum.repos.d/grafana.repo[grafana]name=grafanabaseurl=https://packagecloud.io/grafana/stable/el/7/$b 查看详情

3.prometheus监控技术与实践---exporter(代码片段)

第3章 Exporter 在prometheus中,Exporter是重要的组成部分,在实际监控样本数据的收集是由Exporter完成的,prometheus服务器只需要定时从这些Exporter提供的http服务获取监控数据即可。3.1 概述 Exporter本质上是将收集的数据... 查看详情

企业实践|分布式系统可观测性之应用业务指标监控

本文主要讲述如何建立应用业务指标Metrics监控和如何实现精准告警。Metrics可以翻译为度量或者指标,指的是对于一些关键信息以可聚合的、数值的形式做定期统计,并绘制出各种趋势图表。透过它,我们可以观察系统的状态与... 查看详情

日志监控告警系统的设计与实现(代码片段)

日志监控告警系统基于的日志进行监控,监控需要一定规则,对触发监控规则的日志信息进行告警,告警的方式,是短信和邮件。log4j---->error,info,debug应用程序程序的日志 error级别TimeOutException角标越界IndexXXXExce... 查看详情

4.prometheus监控技术与实践---服务发现(代码片段)

第4章 服务发现 prometheus服务发现能够自动化检测分类,并且能够识别新目标和变更目标。也就是说,可以在容器平台或者云平台中,自动发现并监控新目标或变更目标,动态进行数据采集和处理。目前prometheus版... 查看详情

8.prometheus监控技术与实践---pushgateway(代码片段)

第8章 Pushgateway8.1 概述 目前为止prometheus都是基于pull的,即拉取模式。然后,某些情况下,会出现无法从中获取指标的目标场景。原因如下: 1.由于网络安全性或连接性,使得无法访问目标资源,也就... 查看详情

1.prometheus监控技术与实践---云计算时代的监控系统(代码片段)

第1章 云计算时代的监控系统1.1 云计算时代的应用系统 1.1.1企业“IT云化”实现数字化转型 1.1.2 云计算时代的IT架构特点 1.1.3 云计算时代的IT管理变革 1.企业IT投入模式改变 在传统的IT模式下,基础设施的投入占比最... 查看详情

8.携程架构实践---监控(代码片段)

第8章监控8.1指标监控和告警系统Hickwall Hickwall是xc在Metrics方面的主要监控系统,可以提供指标数据的采集,存储,展示和告警。 8.1.1指标监控的应用和挑战 指标监控系统是一个对时序指标进行采集... 查看详情

网站运维技术与实践之数据分析与报警

对于日益积累的监控数据,显然需要有规划地进行存储和分析,做到“故障没来时有预防,故障来临时有提示,故障到来时有解决方案”。一、时间序列存储对于大多数监控数据,都有一个天然的类似数据库主键的属性,那就是... 查看详情

久壳机房--动环监控系统你不能不知道的事

...心机房等蓬勃发展。而今日我们要讲的是智能机房的动环监控系统,动环监控系统又称机房动环、机房动力环境监控系统、动环监控等,是指对各机房的动力、环境、安防进行集中监测。可对监控系统、设备、安全运行状态进行... 查看详情

阿里可观测性数据引擎的技术实践

简介:相比传统的告警、监控,可观测性能够以更加“白盒”的方式看透整个复杂的系统,帮助我们更好的观察系统的运行状况,快速定位和解决问题。就像发动机而言,告警只是告诉你发动机是否有问题ÿ... 查看详情

2.prometheus监控技术与实践---prometheus基本概念及部署(代码片段)

2.1 Prometheus架构 关键工作流程可以总结如下: 1.Prometheus服务器周期性的或者在设定的时间段内,可以通过下面的方式获取内容。 a)从配置好的job或者exporter中拉取metric b)接收从Pushgateway推送过来的metric c)从其他的Pro... 查看详情

5.prometheus监控技术与实践---promql(代码片段)

第5章 PromQL5.1 时序数据库 时序数据库(TSDB)用于保存时间序列(按时间变化)的海量数据,是一种高性能,低成本,稳定可靠的专业化数据库。它可以提供高效读写,高压缩比低成本存储,降精度,插值ÿ... 查看详情