devops之prometheus实现优雅的告警

author author     2023-02-22     469

关键词:

参考技术A 目前prometheus的告警,常用的有grafana自带的告警和prometheus插件alertmanger的告警两种,这里测试下alertmanger的告警功能。

综合考虑,配合上prometheus operator,使用alertmanger,能够使监控告警这块的工作更加devops。

prometheus operator 在k8s中引入了自定义资源定义(CRSs)Prometheus、ServiceMonitor、PrometheusRule和Alertmanager。

所以在k8s中搭建好prometheus operator后,当我们需要监控一个项目时,我们的配置顺序是配置ServiceMonitor获取监控数据,配置PrometheusRule获取告警阈值,配置Alertmanager制定告警发送方式

如果我们已经完成了ServerMonitor的对象的编写,下面就要将监控好的重要数据,设置阈值,触发告警。

这里用spark 服务cpu使用率为例,介绍下PrometheusRule的写法

这样我们就完成一个PrometheusRule 资源对象的编写了,那么prometheus是怎么识别这个告警规则的呢。

我们先查看下prometheus的资源对象

kubectl get prometheus/k8s -n monitoring -o yaml

可以看到,prometheus会自动匹配标签为prometheus=k8s 和 role=alert-rules的prometheusRule的资源对象,这里我们可以体会到prometheus operator自动发现的魅力,我们只需要编写相应的告警规则yaml文件,然后apply一下,便可以制定告警。

在prometheus界面上面查看刚刚制定的告警规则

对于告警通知,需要考虑以下几点

及时性:邮件通知有时候不会注意,尤其是不在电脑面前,所以这里我们选择工作中使用的企业微信作为告警消息推送方式
简洁性:如果服务器性能等到达了一个warning值,会有很多相关的告警全部触发,所以这里我们需要配置分组、静默、抑制方案
容灾性:如果alermanger或者prometheus本身挂掉了,发不出告警怎么办,一般会采用另一个监控来监控prometheus,或者自定义一个持续不断的告警通知,哪一天这个告警通知不发了,说明监控出现问题了。很棒的一点是,prometheus operator已经考虑了这一点,本身携带一个watchdog,作为对自身的监控

创建一个alertmanger配置文件

删除之前的secret对象,并且创建新的

查看企业微信,这个时候会发现已经收到告警信息

这个watchdog便是对prometheus自身的监控。如果有需要,可以制定一条路由,匹配severity为none的告警,然后每24h重复一次,这样可以达到每天监控prometheus本身的效果,哪一天没收到watchdog,便可以知道prometheus挂了。

正常收到的告警信息

alertmanger也支持webhook告警,但是比如钉钉和企业微信机器人这类对消息头有特殊要求的,如果直接用webhook的话,需要安装一个插件封装下,才可以调用

Alertmanager还支持临时静默告警。有时候我们在处理告警,想要临时静默告警消息,或者测试环境中,进行压测,需要临时静默一段时间的告警,我们就可以直接通过Alertmanager的UI临时屏蔽特定的告警通知。通过定义标签的匹配规则(字符串或者正则表达式),如果新的告警通知满足静默规则的设置,则停止向receiver发送通知
目前Alertmanager只支持在UI上面进行临时静默告警

当静默规则生效以后,从Alertmanager的Alerts页面下用户将不会看到该规则匹配到的告警信息,微信机器人也不会发送响应的告警消息

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

3.prometheus+grafana实现可视化告警(代码片段)

3.Prometheus+Grafana实现可视化、告警3.1.什么是Grafana3.2.快速入门3.3.Grafana的下载3.4.启动grafana3.5.配置数据源3.6.配置面板3.7.邮件通道配置3.8.指标告警配置3.9.Dashboards模板下载3.Prometheus+Grafana实现可视化、告警转自:https://www.... 查看详情

使用prometheus实现邮件/企业微信告警(代码片段)

一、安装AlterManager如果没有安装Prometheus以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统[root@k8s-master01~]#wgethttps://github.com/prometheus/alertmanager/releases/download/v0.24.0/ 查看详情

使用prometheus实现邮件/企业微信告警(代码片段)

一、安装AlterManager如果没有安装Prometheus以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统[root@k8s-master01~]#wgethttps://github.com/prometheus/alertmanager/releases/download/v0.24.0/ 查看详情

prometheus基于alertmanager实现钉钉告警(代码片段)

1.安装prometheus-webhook-dingtalk插件wgethttps://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v0.3.0/prometheus-webhook-dingtalk-0.3.0.linux-amd64.tar.gztar-zxfprometheus-webhook-din 查看详情

如何使用prometheus和grafana优雅的实现服务器可视化(代码片段)

1Prometheus简介Prometheus是一个开源监控工具,实现了高维数据模型。Prometheus有多种数据可视化模式,其中一种是集成Grafana。Prometheus以高效的自定义格式将时间序列数据存储在内存和本地磁盘上。Prometheus有许多客户端可用于轻松... 查看详情

prometheus告警处理(代码片段)

在PrometheusServer中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。Alertmanager即Prometheus体系中告警的统一处理中心。Prometheus告警简介告警能力在Prometheus的架构中被划分成两个独立的部分。如下所... 查看详情

prometheus的工作原理是啥?

Prometheus最开始是由SoundCloud开发的开源监控告警系统,是GoogleBorgMon监控系统的开源版本。在2016年,Prometheus加入CNCF,成为继Kubernetes之后第二个被CNCF托管的项目。随着Kubernetes在容器编排领头羊地位的确立,Prometheus也成为Kubernetes... 查看详情

prometheus告警功能

prometheus告警功能Prometheus对指标的收集、存储同告警能力分属于PrometheusServer和AlertManager(通用的组件,可由企业自行开发)两个独立的组件,前者仅负责基于"告警规则"生成告警通知,具体的告警操作则由后者完成... 查看详情

使用thanos实现prometheus指标联邦(代码片段)

本文来自RancherLabs Prometheus是CNCF中已经毕业的项目之一,主要用于监控和告警。在Kubernetes生态中,它是应用最为广泛的监控和告警工具之一。Rancher用户可以通过使用内置的监控堆栈来快速利用Prometheus。 Prometheus将其指标... 查看详情

使用prometheus实现邮件/企业微信告警(代码片段)

一、安装AlterManager如果没有安装Prometheus以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统[root@k8s-master01~]#wgethttps://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linu... 查看详情

prometheus实战---告警模板编写

...可以格式化我们的告警信息,让告警内容更加易读和美观prometheus告警规则详解:https://www.dogfei.cn/archives/alertmanager-ruleprometheus配置文件参考与介绍:https://www.dogfei.cn/archives/prometheus-config告警模 查看详情

技术分享|如何使用prometheus实现系统监控报警邮件通知(代码片段)

上一篇关于Prometheus的文章中说到了Prometheus是如何实现进程监控。在实际的线上环境中,当系统进程出现异常后需要实时通知到值班运维人员,去检查系统是否还正常运转。下面我们就介绍下基于Prometheus如何实现监控报... 查看详情

小姐姐带你入门alertmanager与prometheus告警规则

一、prometheus告警介绍1.组件介绍prometheus整个监控系统中,prometheus只负责将数据采集和生成告警信息,而告警信息的处理是由Alertmanager负责处理。在Prometheus中定义好告警规则后,Prometheus会周期性的对告警规则进行计算,如果满... 查看详情

2,prometheus之部署alertmanager

1,部署Alertmanager启动端口为:90932,配置Prometheus与Alertmanager通信2-1在Alertmanager部署机器,设置Alertmanager告警的接受方式。[root@centos7alert]#catalertmanager.ymlglobal:resolve_timeout:5m#smtp_smarthost:‘smtp.163.com:25‘smtp_ 查看详情

源码角度了解skywalking之告警机制是怎么实现的(代码片段)

源码角度了解Skywalking之告警机制是怎么实现的我们在使用Skywalking的时候有没有想过它的告警机制是怎么实现的呢,本篇文章就介绍一下它的告警机制的实现机制skywalking插件的源码部分在server-alarm-plugin模块中告警初始化AlarmModule... 查看详情